ntts
Version:
A CLI tool for refactoring an existing NodeJs application to a fully functional TypeScript application.
33 lines (32 loc) • 1.85 kB
JavaScript
;
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_name_generator_1 = __importDefault(require("../../helpers/variable-name-generator/variable-name-generator"));
var variable_creator_1 = __importDefault(require("../helpers/variable-creator"));
var export_parser_1 = __importDefault(require("../helpers/export-parser"));
var NestedRefactor = /** @class */ (function () {
function NestedRefactor() {
}
NestedRefactor.refactorNestedExport = function (exportName, binary, accessExpression, exportedVariables, usedNames, defaultExport, sourceFile) {
var exported = export_parser_1.default.exportVariableExists(exportName, exportedVariables, defaultExport);
var exportedNames = exportedVariables.map(function (e) { return e.name; });
if (exported) {
sourceFile.getVariableStatementOrThrow(exported.name).setDeclarationKind(ts_morph_1.VariableDeclarationKind.Let);
accessExpression.replaceWithText(exported.name);
return exportedVariables;
}
var usableName = variable_name_generator_1.default.getUsableVariableName(exportName, usedNames.concat(exportedNames));
variable_creator_1.default.createEmptyVariable(usableName, export_parser_1.default.getSourceFileIndex(binary), ts_morph_1.VariableDeclarationKind.Let, sourceFile);
accessExpression.replaceWithText(usableName);
return exportedVariables.concat({
name: usableName,
alias: exportName !== usableName ? exportName : undefined,
defaultExport: defaultExport,
});
};
return NestedRefactor;
}());
exports.default = NestedRefactor;