ts-bakery
Version:
Baked dependency injection for Typescript.
87 lines • 3.48 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const path = require("path");
const typescript = require("typescript");
class TsNodeConverter {
convertToSourceFile(filePath) {
return typescript.createSourceFile(path.basename(filePath), fs.readFileSync(filePath, 'utf-8'), typescript.ScriptTarget.Latest);
}
convertToIdentifier(node) {
return this.convertTo(node, typescript.SyntaxKind.Identifier);
}
convertToComputedPropertyName(node) {
return this.convertTo(node, typescript.SyntaxKind.ComputedPropertyName);
}
convertToNamespaceImport(node) {
return this.convertTo(node, typescript.SyntaxKind.NamespaceImport);
}
convertToNamedImports(node) {
return this.convertTo(node, typescript.SyntaxKind.NamedImports);
}
convertToStringLiteral(node) {
return this.convertTo(node, typescript.SyntaxKind.StringLiteral);
}
convertToDecorator(node) {
return this.convertTo(node, typescript.SyntaxKind.Decorator);
}
convertToCallExpression(node) {
return this.convertTo(node, typescript.SyntaxKind.CallExpression);
}
convertToTypeReferenceNode(node) {
return this.convertTo(node, typescript.SyntaxKind.TypeReference);
}
convertToImportDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.ImportDeclaration);
}
convertToImportSpecifier(node) {
return this.convertTo(node, typescript.SyntaxKind.ImportSpecifier);
}
convertToEnumDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.EnumDeclaration);
}
convertToInterfaceDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.InterfaceDeclaration);
}
convertToGetAccessorDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.GetAccessor);
}
convertToSetAccessorDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.SetAccessor);
}
convertToPropertySignature(node) {
return this.convertTo(node, typescript.SyntaxKind.PropertySignature);
}
convertToMethodSignature(node) {
return this.convertTo(node, typescript.SyntaxKind.MethodSignature);
}
convertToClassDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.ClassDeclaration);
}
convertToConstructorDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.Constructor);
}
convertToPropertyDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.PropertyDeclaration);
}
convertToMethodDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.MethodDeclaration);
}
convertToHeritageClause(node) {
return this.convertTo(node, typescript.SyntaxKind.HeritageClause);
}
convertToFunctionDeclaration(node) {
return this.convertTo(node, typescript.SyntaxKind.FunctionDeclaration);
}
convertToExportAssignment(node) {
return this.convertTo(node, typescript.SyntaxKind.ExportAssignment);
}
convertTo(node, expectedKind) {
if (node.kind == expectedKind) {
return node;
}
throw new Error('Unable to convert node of kind ' + typescript.SyntaxKind[node.kind] + ' to ' + typescript.SyntaxKind[expectedKind]);
}
}
exports.default = TsNodeConverter;
//# sourceMappingURL=TsNodeConverter.js.map