UNPKG

openai

Version:

The official TypeScript library for the OpenAI API

30 lines (26 loc) 881 B
import { ZodPipelineDef } from 'zod/v3'; import { JsonSchema7Type, parseDef } from '../parseDef'; import { Refs } from '../Refs'; import { JsonSchema7AllOfType } from './intersection'; export const parsePipelineDef = ( def: ZodPipelineDef<any, any>, refs: Refs, forceResolution: boolean, ): JsonSchema7AllOfType | JsonSchema7Type | undefined => { if (refs.pipeStrategy === 'input') { return parseDef(def.in._def, refs, forceResolution); } else if (refs.pipeStrategy === 'output') { return parseDef(def.out._def, refs, forceResolution); } const a = parseDef(def.in._def, { ...refs, currentPath: [...refs.currentPath, 'allOf', '0'], }); const b = parseDef(def.out._def, { ...refs, currentPath: [...refs.currentPath, 'allOf', a ? '1' : '0'], }); return { allOf: [a, b].filter((x): x is JsonSchema7Type => x !== undefined), }; };