UNPKG

@ai-sdk/provider-utils

Version:
30 lines (26 loc) 674 B
import type { ZodLiteralDef } from 'zod/v3'; export type JsonSchema7LiteralType = | { type: 'string' | 'number' | 'integer' | 'boolean'; const: string | number | boolean; } | { type: 'object' | 'array'; }; export function parseLiteralDef(def: ZodLiteralDef): JsonSchema7LiteralType { const parsedType = typeof def.value; if ( parsedType !== 'bigint' && parsedType !== 'number' && parsedType !== 'boolean' && parsedType !== 'string' ) { return { type: Array.isArray(def.value) ? 'array' : 'object', }; } return { type: parsedType === 'bigint' ? 'integer' : parsedType, const: def.value, }; }