UNPKG

@spec2ts/core

Version:

Core module for @spec2ts modules, includes codegen helpers and common parsing methods

90 lines (89 loc) 4.54 kB
import * as ts from "typescript"; export declare function createTypeAliasDeclaration({ modifiers, name, typeParameters, type }: { modifiers?: ts.Modifier[]; name: string | ts.Identifier; typeParameters?: ts.TypeParameterDeclaration[]; type: ts.TypeNode; }): ts.TypeAliasDeclaration; export declare function createFunctionDeclaration(name: string | ts.Identifier | undefined, { modifiers, asteriskToken, typeParameters, type }: { modifiers?: ts.Modifier[]; asteriskToken?: ts.AsteriskToken; typeParameters?: ts.TypeParameterDeclaration[]; type?: ts.TypeNode; }, parameters: ts.ParameterDeclaration[], body?: ts.Block): ts.FunctionDeclaration; export declare function createInterfaceDeclaration({ modifiers, name, typeParameters, heritageClauses, members }: { modifiers?: ts.Modifier[]; name: string | ts.Identifier; typeParameters?: ts.TypeParameterDeclaration[]; heritageClauses?: ts.HeritageClause[]; members: readonly ts.TypeElement[]; }): ts.InterfaceDeclaration; export declare function createClassDeclaration({ modifiers, name, typeParameters, heritageClauses, members }: { modifiers?: ts.Modifier[]; name?: string | ts.Identifier; typeParameters?: ts.TypeParameterDeclaration[]; heritageClauses?: ts.HeritageClause[]; members: ts.ClassElement[]; }): ts.ClassDeclaration; export declare function createConstructor({ modifiers, parameters, body }: { modifiers?: ts.Modifier[]; parameters: ts.ParameterDeclaration[]; body?: ts.Block; }): ts.ConstructorDeclaration; export declare function createMethod(name: string | ts.Identifier | ts.StringLiteral | ts.NumericLiteral | ts.ComputedPropertyName, { modifiers, asteriskToken, questionToken, typeParameters, type }?: { modifiers?: ts.Modifier[]; asteriskToken?: ts.AsteriskToken; questionToken?: ts.QuestionToken | boolean; typeParameters?: ts.TypeParameterDeclaration[]; type?: ts.TypeNode; }, parameters?: ts.ParameterDeclaration[], body?: ts.Block): ts.MethodDeclaration; export declare function createParameter(name: string | ts.BindingName, { modifiers, dotDotDotToken, questionToken, type, initializer }: { modifiers?: ts.Modifier[]; dotDotDotToken?: ts.DotDotDotToken; questionToken?: ts.QuestionToken | boolean; type?: ts.TypeNode; initializer?: ts.Expression; }): ts.ParameterDeclaration; export declare function createPropertySignature({ modifiers, name, questionToken, type, }: { modifiers?: ts.Modifier[]; name: ts.PropertyName | string; questionToken?: ts.QuestionToken | boolean; type?: ts.TypeNode; }): ts.PropertySignature; export declare function createPropertyAssignment(name: string, expression: ts.Expression): ts.PropertyAssignment | ts.ShorthandPropertyAssignment; export declare function createIndexSignature(type: ts.TypeNode, { modifiers, indexName, indexType }?: { indexName?: string; indexType?: ts.TypeNode; modifiers?: ts.Modifier[]; }): ts.IndexSignatureDeclaration; export declare function createNamedImportDeclaration({ modifiers, bindings, isTypeOnly, moduleSpecifier }: { modifiers?: ts.Modifier[]; bindings: Array<ts.Identifier | string | ImportSpecifier>; isTypeOnly?: boolean; moduleSpecifier: string | ts.Expression; }): ts.ImportDeclaration; export declare function createDefaultImportDeclaration({ modifiers, name, bindings, isTypeOnly, moduleSpecifier }: { modifiers?: ts.Modifier[]; name: ts.Identifier | string; bindings?: Array<ts.Identifier | string | ImportSpecifier>; isTypeOnly?: boolean; moduleSpecifier: string | ts.Expression; }): ts.ImportDeclaration; export declare function createNamespaceImportDeclaration({ modifiers, name, isTypeOnly, moduleSpecifier }: { modifiers?: ts.Modifier[]; name: ts.Identifier | string; isTypeOnly?: boolean; moduleSpecifier: string | ts.Expression; }): ts.ImportDeclaration; export declare function createTypeOrInterfaceDeclaration({ modifiers, name, type }: { modifiers?: ts.Modifier[]; name: string | ts.Identifier; type: ts.TypeNode; }): ts.InterfaceDeclaration | ts.TypeAliasDeclaration; export declare function updateVariableDeclarationInitializer(declaration: ts.VariableDeclaration, initializer: ts.Expression): ts.VariableDeclaration; export type ImportSpecifier = { name: ts.Identifier | string; propertyName: ts.Identifier | string; type?: boolean; }; export declare function createImportSpecifier(binding: ts.Identifier | string | ImportSpecifier): ts.ImportSpecifier;