agsamantha/node_modules/zod-to-json-schema/dist/esm/parsers/map.js

26 lines
719 B
JavaScript
Raw Normal View History

2024-10-02 15:15:21 -05:00
import { parseDef } from "../parseDef.js";
import { parseRecordDef } from "./record.js";
export function parseMapDef(def, refs) {
if (refs.mapStrategy === "record") {
return parseRecordDef(def, refs);
}
const keys = parseDef(def.keyType._def, {
...refs,
currentPath: [...refs.currentPath, "items", "items", "0"],
}) || {};
const values = parseDef(def.valueType._def, {
...refs,
currentPath: [...refs.currentPath, "items", "items", "1"],
}) || {};
return {
type: "array",
maxItems: 125,
items: {
type: "array",
items: [keys, values],
minItems: 2,
maxItems: 2,
},
};
}