UNPKG

@langchain/core

Version:
1 lines 2.76 kB
{"version":3,"file":"date.cjs","names":[],"sources":["../../../../src/utils/zod-to-json-schema/parsers/date.ts"],"sourcesContent":["import { ZodDateDef } from \"zod/v3\";\nimport { Refs } from \"../Refs.js\";\nimport { ErrorMessages, setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { JsonSchema7NumberType } from \"./number.js\";\nimport { DateStrategy } from \"../Options.js\";\n\nexport type JsonSchema7DateType =\n | {\n type: \"integer\" | \"string\";\n format: \"unix-time\" | \"date-time\" | \"date\";\n minimum?: number;\n maximum?: number;\n errorMessage?: ErrorMessages<JsonSchema7NumberType>;\n }\n | {\n anyOf: JsonSchema7DateType[];\n };\n\nexport function parseDateDef(\n def: ZodDateDef,\n refs: Refs,\n overrideDateStrategy?: DateStrategy\n): JsonSchema7DateType {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item) => parseDateDef(def, refs, item)),\n };\n }\n\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\",\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\",\n };\n case \"integer\":\n return integerDateParser(def, refs);\n }\n}\n\nconst integerDateParser = (def: ZodDateDef, refs: Refs) => {\n const res: JsonSchema7DateType = {\n type: \"integer\",\n format: \"unix-time\",\n };\n\n if (refs.target === \"openApi3\") {\n return res;\n }\n\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(\n res,\n \"minimum\",\n check.value, // This is in milliseconds\n check.message,\n refs\n );\n break;\n case \"max\":\n setResponseValueAndErrors(\n res,\n \"maximum\",\n check.value, // This is in milliseconds\n check.message,\n refs\n );\n break;\n }\n }\n\n return res;\n};\n"],"mappings":";;AAkBA,SAAgB,aACd,KACA,MACA,sBACqB;CACrB,MAAM,WAAW,wBAAwB,KAAK;AAE9C,KAAI,MAAM,QAAQ,SAAS,CACzB,QAAO,EACL,OAAO,SAAS,KAAK,SAAS,aAAa,KAAK,MAAM,KAAK,CAAC,EAC7D;AAGH,SAAQ,UAAR;EACE,KAAK;EACL,KAAK,mBACH,QAAO;GACL,MAAM;GACN,QAAQ;GACT;EACH,KAAK,cACH,QAAO;GACL,MAAM;GACN,QAAQ;GACT;EACH,KAAK,UACH,QAAO,kBAAkB,KAAK,KAAK;;;AAIzC,MAAM,qBAAqB,KAAiB,SAAe;CACzD,MAAM,MAA2B;EAC/B,MAAM;EACN,QAAQ;EACT;AAED,KAAI,KAAK,WAAW,WAClB,QAAO;AAGT,MAAK,MAAM,SAAS,IAAI,OACtB,SAAQ,MAAM,MAAd;EACE,KAAK;AACH,yBAAA,0BACE,KACA,WACA,MAAM,OACN,MAAM,SACN,KACD;AACD;EACF,KAAK;AACH,yBAAA,0BACE,KACA,WACA,MAAM,OACN,MAAM,SACN,KACD;AACD;;AAIN,QAAO"}