@pulzar/core
Version:
Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support
107 lines • 3 kB
TypeScript
import { z } from "zod";
export interface OpenAPISchema {
type?: string;
format?: string;
description?: string;
example?: any;
enum?: any[];
items?: OpenAPISchema;
properties?: Record<string, OpenAPISchema>;
required?: string[];
additionalProperties?: boolean | OpenAPISchema;
oneOf?: OpenAPISchema[];
anyOf?: OpenAPISchema[];
allOf?: OpenAPISchema[];
not?: OpenAPISchema;
nullable?: boolean;
readOnly?: boolean;
writeOnly?: boolean;
deprecated?: boolean;
minLength?: number;
maxLength?: number;
pattern?: string;
minimum?: number;
maximum?: number;
exclusiveMinimum?: boolean | number;
exclusiveMaximum?: boolean | number;
multipleOf?: number;
minItems?: number;
maxItems?: number;
uniqueItems?: boolean;
minProperties?: number;
maxProperties?: number;
}
export interface OpenAPIParameter {
name: string;
in: "path" | "query" | "header" | "cookie";
required?: boolean;
description?: string;
schema: OpenAPISchema;
example?: any;
examples?: Record<string, any>;
style?: string;
explode?: boolean;
allowReserved?: boolean;
deprecated?: boolean;
}
export interface OpenAPIResponse {
description: string;
content?: Record<string, {
schema: OpenAPISchema;
example?: any;
examples?: Record<string, any>;
}>;
headers?: Record<string, any>;
links?: Record<string, any>;
}
export declare class ZodToOpenAPI {
private schemas;
private components;
/**
* Convert a Zod schema to OpenAPI schema
*/
convert(schema: z.ZodSchema, name?: string): OpenAPISchema;
private convertString;
private convertNumber;
private convertBoolean;
private convertArray;
private convertObject;
private convertEnum;
private convertUnion;
private convertIntersection;
private convertOptional;
private convertNullable;
private convertDefault;
private convertLiteral;
private convertDate;
private convertRecord;
private convertTuple;
private convertSet;
private convertMap;
private convertPromise;
private convertEffects;
private convertNativeEnum;
private convertDiscriminatedUnion;
private convertLazy;
private convertBranded;
private convertPipeline;
private convertReadonly;
private convertCatch;
/**
* Get all registered schemas
*/
getSchemas(): Record<string, OpenAPISchema>;
/**
* Get OpenAPI components
*/
getComponents(): Record<string, any>;
/**
* Clear all registered schemas
*/
clear(): void;
}
export declare const zodToOpenAPI: ZodToOpenAPI;
export declare function convertZodToOpenAPI(schema: z.ZodSchema, name?: string): OpenAPISchema;
export declare function getOpenAPISchemas(): Record<string, OpenAPISchema>;
export declare function getOpenAPIComponents(): Record<string, any>;
//# sourceMappingURL=zod-to-openapi.d.ts.map