dtsgenerator
Version:
TypeScript d.ts file generator for JSON Schema file
29 lines (28 loc) • 2.65 kB
TypeScript
import * as ts from 'typescript';
import { NormalizedSchema } from './jsonSchema';
import SchemaId from './schemaId';
import { Schema } from './type';
export declare function buildKeyword(kind: ts.KeywordTypeSyntaxKind): ts.KeywordTypeNode;
export declare function buildAnyKeyword(): ts.KeywordTypeNode;
export declare function buildNeverKeyword(): ts.KeywordTypeNode;
export declare function buildUnknownKeyword(): ts.KeywordTypeNode;
export declare function buildVoidKeyword(): ts.KeywordTypeNode;
export declare function buildStringKeyword(): ts.KeywordTypeNode;
export declare function buildSimpleArrayNode(element: ts.TypeNode): ts.ArrayTypeNode;
export declare function buildNullKeyword(): ts.LiteralTypeNode;
export declare function buildStringLiteralTypeNode(s: string): ts.LiteralTypeNode;
export declare function buildNumericLiteralTypeNode(n: string): ts.LiteralTypeNode;
export declare function buildBooleanLiteralTypeNode(b: boolean): ts.LiteralTypeNode;
export declare function buildNamespaceNode(name: string, statements: ts.Statement[], root: boolean): ts.ModuleDeclaration;
export declare function buildInterfaceNode(id: SchemaId, members: ts.TypeElement[], root: boolean): ts.InterfaceDeclaration;
export declare function buildTypeAliasNode(id: SchemaId, type: ts.TypeNode, root: boolean): ts.TypeAliasDeclaration;
export declare function buildPropertySignature(_schema: NormalizedSchema, propertyName: string, valueType: ts.TypeNode, required: string[] | undefined, isPattern: boolean | undefined): ts.PropertySignature | ts.IndexSignatureDeclaration;
export declare function buildIndexSignatureNode(name: string, indexType: ts.TypeNode, valueType: ts.TypeNode): ts.IndexSignatureDeclaration;
export declare function buildTypeLiteralNode(elements: ts.TypeElement[]): ts.TypeNode;
export declare function buildFreeFormObjectTypeLiteralNode(): ts.TypeNode;
export declare function buildUnionTypeNode<T>(types: T[], builder: (t: T, index: number) => ts.TypeNode, terminate: boolean): ts.TypeNode;
export declare function buildIntersectionTypeNode(types: readonly ts.TypeNode[], terminate: boolean): ts.TypeNode;
export declare function buildTupleTypeNode(types: ts.TypeNode | ts.TypeNode[], minItems?: number, maxItems?: number, additionalItems?: ts.TypeNode | false): ts.TypeNode;
export declare function buildTypeReferenceNode(schema: NormalizedSchema, currentSchema: Schema): ts.TypeReferenceNode;
export declare function addComment<T extends ts.Node>(node: T, schema: NormalizedSchema, terminate: boolean): T;
export declare function addOptionalInformation<T extends ts.Node>(node: T, schema: NormalizedSchema, terminate: boolean): T;