agsamantha/node_modules/zod-to-json-schema/dist/cjs/parsers/array.js

30 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-10-02 20:15:21 +00:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseArrayDef = void 0;
const zod_1 = require("zod");
const errorMessages_js_1 = require("../errorMessages.js");
const parseDef_js_1 = require("../parseDef.js");
function parseArrayDef(def, refs) {
const res = {
type: "array",
};
if (def.type?._def?.typeName !== zod_1.ZodFirstPartyTypeKind.ZodAny) {
res.items = (0, parseDef_js_1.parseDef)(def.type._def, {
...refs,
currentPath: [...refs.currentPath, "items"],
});
}
if (def.minLength) {
(0, errorMessages_js_1.setResponseValueAndErrors)(res, "minItems", def.minLength.value, def.minLength.message, refs);
}
if (def.maxLength) {
(0, errorMessages_js_1.setResponseValueAndErrors)(res, "maxItems", def.maxLength.value, def.maxLength.message, refs);
}
if (def.exactLength) {
(0, errorMessages_js_1.setResponseValueAndErrors)(res, "minItems", def.exactLength.value, def.exactLength.message, refs);
(0, errorMessages_js_1.setResponseValueAndErrors)(res, "maxItems", def.exactLength.value, def.exactLength.message, refs);
}
return res;
}
exports.parseArrayDef = parseArrayDef;