25 lines
719 B
JavaScript
25 lines
719 B
JavaScript
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,
|
|
},
|
|
};
|
|
}
|