UNPKG

@asteasolutions/zod-to-openapi

Version:
70 lines (69 loc) 2.48 kB
import type { OpenAPIObject } from 'openapi3-ts/oas30'; import { OpenAPIDefinitions } from './openapi-registry'; declare const openApiVersions: readonly ["3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0"]; export declare type OpenApiVersion = typeof openApiVersions[number]; export declare type OpenAPIObjectConfig = Omit<OpenAPIObject, 'paths' | 'components' | 'webhooks' | 'openapi'>; export declare class OpenAPIGenerator { private definitions; private openAPIVersion; private schemaRefs; private paramRefs; private pathRefs; private webhookRefs; private rawComponents; constructor(definitions: OpenAPIDefinitions[], openAPIVersion: OpenApiVersion); generateDocument(config: OpenAPIObjectConfig): OpenAPIObject; generateComponents(): Pick<OpenAPIObject, 'components'>; private buildComponents; private sortDefinitions; private generateSingle; private generateParameterDefinition; private getParameterRef; private generateInlineParameters; private generateParameter; /** * Generates an OpenAPI SchemaObject or a ReferenceObject with all the provided metadata applied */ private generateSimpleSchema; private generateSchemaDefinition; private generateSchemaRef; private getRequestBody; private getParameters; private generatePath; private generateSingleRoute; private generateSingleWebhook; private getResponse; private getBodyContent; private getZodStringCheck; /** * Attempts to map Zod strings to known formats * https://json-schema.org/understanding-json-schema/reference/string.html#built-in-formats */ private mapStringFormat; private mapDiscriminator; private openApiVersionSatisfies; private mapNullableOfArray; private mapNullableType; private getNumberChecks; private constructReferencedOpenAPISchema; private toOpenAPISchema; private isOptionalSchema; private getDefaultValue; private requiredKeysOf; private toOpenAPIObjectSchema; private flattenUnionTypes; private flattenIntersectionTypes; private unwrapChained; /** * A method that omits all custom keys added to the regular OpenAPI * metadata properties */ private buildSchemaMetadata; private buildParameterMetadata; private getMetadata; private getInternalMetadata; private getRefId; private applySchemaMetadata; private enhanceMissingParametersError; } export {};