@spec2ts/core
Version:
Core module for @spec2ts modules, includes codegen helpers and common parsing methods
40 lines (39 loc) • 2.53 kB
TypeScript
import * as ts from "typescript";
export declare function toExpression(ex: ts.Expression | string): ts.Expression;
export declare function toExpression(ex: ts.Expression | string | undefined): ts.Expression | undefined;
export declare function toIdentifier(ex: ts.Identifier | string): ts.Identifier;
export declare function toIdentifier(ex: ts.Identifier | string | undefined): ts.Identifier | undefined;
export declare function toLiteral(ex: ts.Expression | string | number | bigint): ts.Expression;
export declare function toLiteral(ex: ts.Expression | string | number | bigint | undefined): ts.Expression | undefined;
export declare function toPropertyName(ex: ts.PropertyName | string): ts.PropertyName;
export declare function toPropertyName(ex: ts.PropertyName | string | undefined): ts.PropertyName | undefined;
export declare function isValidIdentifier(str: string): boolean;
export declare function isIdentifier(n: unknown | null | undefined): n is ts.Identifier;
export declare function createCall(expression: ts.Expression | string, { typeArgs, args }?: {
typeArgs?: ts.TypeNode[];
args?: ts.Expression[];
}): ts.CallExpression;
export declare function createMethodCall(method: string, opts: {
typeArgs?: ts.TypeNode[];
args?: ts.Expression[];
}): ts.CallExpression;
export declare function createTemplateString(head: string, spans: Array<{
literal: string;
expression: ts.Expression;
}>): ts.Expression;
export declare function createObjectLiteral(props: Array<[string, string | ts.Expression]>): ts.ObjectLiteralExpression;
export declare function createArrowFunction(parameters: ts.ParameterDeclaration[], body: ts.ConciseBody, { modifiers, typeParameters, type, equalsGreaterThanToken }?: {
modifiers?: ts.Modifier[];
typeParameters?: ts.TypeParameterDeclaration[];
type?: ts.TypeNode;
equalsGreaterThanToken?: ts.EqualsGreaterThanToken;
}): ts.ArrowFunction;
export declare function createObjectBinding(elements: Array<{
name: string | ts.BindingName;
dotDotDotToken?: ts.DotDotDotToken;
propertyName?: string | ts.PropertyName;
initializer?: ts.Expression;
}>): ts.ObjectBindingPattern;
export declare function changePropertyValue(o: ts.ObjectLiteralExpression, property: string, value: ts.Expression): ts.ObjectLiteralExpression;
export declare function upsertPropertyValue(o: ts.ObjectLiteralExpression, property: string, value: ts.Expression): ts.ObjectLiteralExpression;
export declare function addComment<T extends ts.Node>(node: T, comment?: string): T;