UNPKG

ntts

Version:

A CLI tool for refactoring an existing NodeJs application to a fully functional TypeScript application.

60 lines (59 loc) 3.09 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var ts_morph_1 = require("ts-morph"); var variable_parser_1 = __importDefault(require("../variable-parser/variable-parser")); var UsedNames = /** @class */ (function () { function UsedNames() { } var _a; _a = UsedNames; UsedNames.getDeclaredImportNames = function (sourceFile) { return sourceFile .getDescendantsOfKind(ts_morph_1.SyntaxKind.ImportClause) .reduce(function (names, clause) { return names.concat(_a.parseImportClause(clause)); }, []); }; UsedNames.getDeclaredNames = function (sourceFile) { return sourceFile .getDescendants() .reduce(function (variableNames, descendant) { if (ts_morph_1.Node.isImportClause(descendant)) { return variableNames.concat(_a.parseImportClause(descendant)); } if (ts_morph_1.Node.isClassDeclaration(descendant) || ts_morph_1.Node.isFunctionDeclaration(descendant) || ts_morph_1.Node.isInterfaceDeclaration(descendant)) return _a.parseFunctionOrClass(descendant, variableNames); if (ts_morph_1.Node.isParameterDeclaration(descendant) || ts_morph_1.Node.isVariableDeclaration(descendant)) return variableNames.concat(_a.parseParameterOrVariable(descendant)); return variableNames; }, []); }; UsedNames.parseImportClause = function (importClause) { var _b, _c; return __spreadArray([ ((_b = importClause.getDefaultImport()) === null || _b === void 0 ? void 0 : _b.getText()) || '', ((_c = importClause.getNamespaceImport()) === null || _c === void 0 ? void 0 : _c.getText()) || '' ], importClause.getNamedImports().map(function (named) { var _b; return ((_b = named.getAliasNode()) === null || _b === void 0 ? void 0 : _b.getText()) || named.getNameNode().getText(); }), true).filter(function (variableName) { return !!variableName; }); }; UsedNames.parseParameterOrVariable = function (variable) { if (ts_morph_1.Node.isIdentifier(variable.getNameNode())) { return variable.getNameNode().getText(); } return variable_parser_1.default.getIdentifiers(variable.getNameNode()).map(function (i) { return i.getText(); }); }; UsedNames.parseFunctionOrClass = function (declaration, variableNames) { var nodeName = declaration.getName(); return nodeName ? variableNames.concat(nodeName) : variableNames; }; return UsedNames; }()); exports.default = UsedNames;