import { z } from "@deboxsoft/module-core"; import { Refs } from "../Refs.js"; export type JsonSchema7LiteralType = | { type: "string" | "number" | "integer" | "boolean"; const: string | number | boolean; } | { type: "object" | "array"; }; export function parseLiteralDef( def: z.ZodLiteralDef, refs: Refs, ): JsonSchema7LiteralType { const parsedType = typeof def.value; if ( parsedType !== "bigint" && parsedType !== "number" && parsedType !== "boolean" && parsedType !== "string" ) { return { type: Array.isArray(def.value) ? "array" : "object", }; } if (refs.target === "openApi3") { return { type: parsedType === "bigint" ? "integer" : parsedType, enum: [def.value], } as any; } return { type: parsedType === "bigint" ? "integer" : parsedType, const: def.value, }; }