UNPKG

openai

Version:

The official TypeScript library for the OpenAI API

43 lines (39 loc) 1.01 kB
import { ZodMapDef } from 'zod'; import { JsonSchema7Type, parseDef } from '../parseDef'; import { Refs } from '../Refs'; import { JsonSchema7RecordType, parseRecordDef } from './record'; export type JsonSchema7MapType = { type: 'array'; maxItems: 125; items: { type: 'array'; items: [JsonSchema7Type, JsonSchema7Type]; minItems: 2; maxItems: 2; }; }; export function parseMapDef(def: ZodMapDef, refs: Refs): JsonSchema7MapType | JsonSchema7RecordType { 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, }, }; }