UNPKG

@langchain/core

Version:
1 lines 1.44 kB
{"version":3,"file":"nativeEnum.cjs","names":["def: ZodNativeEnumDef","key: string","values: string | number"],"sources":["../../../../src/utils/zod-to-json-schema/parsers/nativeEnum.ts"],"sourcesContent":["import { ZodNativeEnumDef } from \"zod/v3\";\n\nexport type JsonSchema7NativeEnumType = {\n type: \"string\" | \"number\" | [\"string\", \"number\"];\n enum: (string | number)[];\n};\n\nexport function parseNativeEnumDef(\n def: ZodNativeEnumDef\n): JsonSchema7NativeEnumType {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key: string) => {\n return typeof object[object[key]] !== \"number\";\n });\n\n const actualValues = actualKeys.map((key: string) => object[key]);\n\n const parsedTypes = Array.from(\n new Set(actualValues.map((values: string | number) => typeof values))\n );\n\n return {\n type:\n parsedTypes.length === 1\n ? parsedTypes[0] === \"string\"\n ? \"string\"\n : \"number\"\n : [\"string\", \"number\"],\n enum: actualValues,\n };\n}\n"],"mappings":";;AAOA,SAAgB,mBACdA,KAC2B;CAC3B,MAAM,SAAS,IAAI;CACnB,MAAM,aAAa,OAAO,KAAK,IAAI,OAAO,CAAC,OAAO,CAACC,QAAgB;AACjE,SAAO,OAAO,OAAO,OAAO,UAAU;CACvC,EAAC;CAEF,MAAM,eAAe,WAAW,IAAI,CAACA,QAAgB,OAAO,KAAK;CAEjE,MAAM,cAAc,MAAM,KACxB,IAAI,IAAI,aAAa,IAAI,CAACC,WAA4B,OAAO,OAAO,EACrE;AAED,QAAO;EACL,MACE,YAAY,WAAW,IACnB,YAAY,OAAO,WACjB,WACA,WACF,CAAC,UAAU,QAAS;EAC1B,MAAM;CACP;AACF"}