UNPKG

@scalar/oas-utils

Version:

Open API spec and Yaml handling utilities

41 lines (38 loc) 1.15 kB
import { z } from 'zod'; const parameterTypeSchema = z.enum(['path', 'query', 'header', 'cookie']); const parameterStyleSchema = z.enum([ 'matrix', 'simple', 'form', 'label', 'spaceDelimited', 'pipeDelimited', 'deepObject', ]); /** * OpenAPI compliant parameters object */ const oasParameterSchema = z.object({ in: parameterTypeSchema, name: z.string(), description: z.string().optional(), /** Defaulted to false */ required: z.boolean().optional().default(false), /** Defaulted to false */ deprecated: z.boolean().optional().default(false), schema: z.unknown().optional(), content: z.unknown().optional(), /** Defaulted according to @url https://spec.openapis.org/oas/v3.1.0#parameter-object */ style: parameterStyleSchema.optional(), example: z.unknown().optional(), examples: z .union([ z.record(z.string(), z.object({ value: z.unknown(), summary: z.string().optional(), })), z.array(z.unknown()), ]) .optional(), }); export { oasParameterSchema, parameterStyleSchema, parameterTypeSchema };