openapi-typescript
Version:
Convert OpenAPI 3.0 & 3.1 schemas to TypeScript
70 lines (69 loc) • 3.47 kB
TypeScript
import ts from "typescript";
export declare const JS_PROPERTY_INDEX_RE: RegExp;
export declare const JS_ENUM_INVALID_CHARS_RE: RegExp;
export declare const JS_PROPERTY_INDEX_INVALID_CHARS_RE: RegExp;
export declare const SPECIAL_CHARACTER_MAP: Record<string, string>;
export declare const BOOLEAN: ts.KeywordTypeNode<ts.SyntaxKind.BooleanKeyword>;
export declare const FALSE: ts.LiteralTypeNode;
export declare const NEVER: ts.KeywordTypeNode<ts.SyntaxKind.NeverKeyword>;
export declare const NULL: ts.LiteralTypeNode;
export declare const NUMBER: ts.KeywordTypeNode<ts.SyntaxKind.NumberKeyword>;
export declare const QUESTION_TOKEN: ts.PunctuationToken<ts.SyntaxKind.QuestionToken>;
export declare const STRING: ts.KeywordTypeNode<ts.SyntaxKind.StringKeyword>;
export declare const TRUE: ts.LiteralTypeNode;
export declare const UNDEFINED: ts.KeywordTypeNode<ts.SyntaxKind.UndefinedKeyword>;
export declare const UNKNOWN: ts.KeywordTypeNode<ts.SyntaxKind.UnknownKeyword>;
export interface AnnotatedSchemaObject {
const?: unknown;
default?: unknown;
deprecated?: boolean;
description?: string;
enum?: unknown[];
example?: string;
format?: string;
nullable?: boolean;
summary?: string;
title?: string;
type?: string | string[];
}
export declare function addJSDocComment(schemaObject: AnnotatedSchemaObject, node: ts.PropertySignature): void;
export declare function oapiRef(path: string): ts.TypeNode;
export interface AstToStringOptions {
fileName?: string;
sourceText?: string;
formatOptions?: ts.PrinterOptions;
}
export declare function astToString(ast: ts.Node | ts.Node[] | ts.TypeElement | ts.TypeElement[], options?: AstToStringOptions): string;
export declare function stringToAST(source: string): unknown[];
export declare function tsDedupe(types: ts.TypeNode[]): ts.TypeNode[];
export declare const enumCache: Map<string, ts.EnumDeclaration>;
export declare function tsEnum(name: string, members: (string | number)[], metadata?: {
name?: string;
description?: string;
}[], options?: {
export?: boolean;
shouldCache?: boolean;
}): ts.EnumDeclaration;
export declare function tsArrayLiteralExpression(name: string, elementType: ts.TypeNode, values: (string | number)[], options?: {
export?: boolean;
readonly?: boolean;
injectFooter?: ts.Node[];
}): ts.VariableStatement;
export declare function tsEnumMember(value: string | number, metadata?: {
name?: string;
description?: string;
}): ts.EnumMember;
export declare function tsIntersection(types: ts.TypeNode[]): ts.TypeNode;
export declare function tsIsPrimitive(type: ts.TypeNode): boolean;
export declare function tsLiteral(value: unknown): ts.TypeNode;
export declare function tsModifiers(modifiers: {
readonly?: boolean;
export?: boolean;
}): ts.Modifier[];
export declare function tsNullable(types: ts.TypeNode[]): ts.TypeNode;
export declare function tsOmit(type: ts.TypeNode, keys: string[]): ts.TypeNode;
export declare function tsRecord(key: ts.TypeNode, value: ts.TypeNode): ts.TypeReferenceNode;
export declare function tsPropertyIndex(index: string | number): ts.Identifier | ts.NumericLiteral | ts.StringLiteral;
export declare function tsUnion(types: ts.TypeNode[]): ts.TypeNode;
export declare function tsWithRequired(type: ts.TypeNode, keys: string[], injectFooter: ts.Node[]): ts.TypeNode;
export declare function tsReadonlyArray(type: ts.TypeNode, injectFooter?: ts.Node[]): ts.TypeNode;