UNPKG

@spec2ts/openapi

Version:

Utility to convert OpenAPI v3 specifications to Typescript using TypeScript native compiler

40 lines (39 loc) 2.68 kB
import * as ts from "typescript"; import type { SchemaObject, ReferenceObject, PathItemObject, OperationObject, ParameterObject, ContentObject } from "openapi3-ts/oas31"; import { ParserContext, ParsedReference } from "@spec2ts/jsonschema/lib/core-parser"; import type { ParseOpenApiOptions } from "./openapi-parser"; export interface ParseOpenApiResult { import: ts.Statement[]; params: ts.Statement[]; query: ts.Statement[]; headers: ts.Statement[]; body: ts.Statement[]; responses: ts.Statement[]; models: ts.Statement[]; cookie: ts.Statement[]; all: ts.Statement[]; } export interface OApiParserContext extends ParserContext { options: ParseOpenApiOptions; } export declare function parsePathItem(path: string, item: PathItemObject, context: OApiParserContext, result: ParseOpenApiResult): void; export declare function parseOperation(path: string, verb: string, operation: OperationObject, baseParams: ParsedParams | undefined, context: OApiParserContext, result: ParseOpenApiResult): void; export type ParamType = "params" | "headers" | "query" | "cookie"; export declare function parseParameters(baseName: string, data: Array<ReferenceObject | ParameterObject>, baseParams: ParsedParams | undefined, context: OApiParserContext, result: ParseOpenApiResult): ParsedParams; export declare function parseReference(ref: ParsedReference, context: ParserContext): void; export declare function getContentDeclaration(name: string, content: ReferenceObject | ContentObject | undefined, context: OApiParserContext): ts.Statement | undefined; export declare function getParamType(paramType: ParamType, data: ParameterObject[], baseType: ts.TypeReferenceNode | undefined, context: OApiParserContext): ts.TypeNode; export declare function getSchemaFromContent(content: ContentObject): SchemaObject | ReferenceObject | undefined; export declare function getResponseName(operationName: string, statusCode: string, context: OApiParserContext): string; export declare function getOperationName(verb: string, path: string, operationId: string | undefined, context: OApiParserContext): string; export declare function getPathName(path: string, context: OApiParserContext): string; export declare function getOperationIdentifier(id?: string): string | void; export declare function addToOpenApiResult(result: ParseOpenApiResult, prop: keyof ParseOpenApiResult, statement: ts.Statement | ts.Statement[]): void; export declare function createOpenApiResult(): ParseOpenApiResult; interface ParsedParams { params?: ts.TypeReferenceNode; query?: ts.TypeReferenceNode; headers?: ts.TypeReferenceNode; cookie?: ts.TypeReferenceNode; } export {};