ntts
Version:
A CLI tool for refactoring an existing NodeJs application to a fully functional TypeScript application.
37 lines (36 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var ts_morph_1 = require("ts-morph");
var VariableParser = /** @class */ (function () {
function VariableParser() {
}
var _a;
_a = VariableParser;
VariableParser.getIdentifiers = function (nameNode, result) {
if (result === void 0) { result = []; }
if (ts_morph_1.Node.isObjectBindingPattern(nameNode)) {
return _a.parseBindingPattern(nameNode, result);
}
if (ts_morph_1.Node.isArrayBindingPattern(nameNode)) {
return _a.parseBindingPattern(nameNode, result);
}
if (ts_morph_1.Node.isIdentifier(nameNode)) {
return result.concat(nameNode);
}
return [];
};
VariableParser.parseBindingPattern = function (nameNode, result) {
var arrayIdentifiers = nameNode
.getElements()
.reduce(function (identifiers, element) {
if (ts_morph_1.Node.isBindingElement(element)) {
var res = _a.getIdentifiers(element.getNameNode(), result);
return identifiers.concat(res);
}
return identifiers;
}, []);
return result.concat(arrayIdentifiers);
};
return VariableParser;
}());
exports.default = VariableParser;