ntts
Version:
A CLI tool for refactoring an existing NodeJs application to a fully functional TypeScript application.
60 lines (59 loc) • 3.09 kB
JavaScript
;
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;