UNPKG

ntts

Version:

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

33 lines (32 loc) 1.85 kB
"use strict"; 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;