array.js 1010 B

1234567891011121314151617181920212223242526
  1. import { ZodFirstPartyTypeKind } from "zod";
  2. import { setResponseValueAndErrors } from "../errorMessages.js";
  3. import { parseDef } from "../parseDef.js";
  4. export function parseArrayDef(def, refs) {
  5. const res = {
  6. type: "array",
  7. };
  8. if (def.type?._def &&
  9. def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {
  10. res.items = parseDef(def.type._def, {
  11. ...refs,
  12. currentPath: [...refs.currentPath, "items"],
  13. });
  14. }
  15. if (def.minLength) {
  16. setResponseValueAndErrors(res, "minItems", def.minLength.value, def.minLength.message, refs);
  17. }
  18. if (def.maxLength) {
  19. setResponseValueAndErrors(res, "maxItems", def.maxLength.value, def.maxLength.message, refs);
  20. }
  21. if (def.exactLength) {
  22. setResponseValueAndErrors(res, "minItems", def.exactLength.value, def.exactLength.message, refs);
  23. setResponseValueAndErrors(res, "maxItems", def.exactLength.value, def.exactLength.message, refs);
  24. }
  25. return res;
  26. }