@langchain/core
Version:
Core LangChain.js abstractions and schemas
46 lines (44 loc) • 1.13 kB
JavaScript
import { primitiveMappings } from "./union.js";
import { parseDef } from "../parseDef.js";
//#region src/utils/zod-to-json-schema/parsers/nullable.ts
function parseNullableDef(def, refs) {
if ([
"ZodString",
"ZodNumber",
"ZodBigInt",
"ZodBoolean",
"ZodNull"
].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
if (refs.target === "openApi3") return {
type: primitiveMappings[def.innerType._def.typeName],
nullable: true
};
return { type: [primitiveMappings[def.innerType._def.typeName], "null"] };
}
if (refs.target === "openApi3") {
const base$1 = parseDef(def.innerType._def, {
...refs,
currentPath: [...refs.currentPath]
});
if (base$1 && "$ref" in base$1) return {
allOf: [base$1],
nullable: true
};
return base$1 && {
...base$1,
nullable: true
};
}
const base = parseDef(def.innerType._def, {
...refs,
currentPath: [
...refs.currentPath,
"anyOf",
"0"
]
});
return base && { anyOf: [base, { type: "null" }] };
}
//#endregion
export { parseNullableDef };
//# sourceMappingURL=nullable.js.map