@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
42 lines • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeModules = removeModules;
exports.removeModule = removeModule;
const ng_morph_1 = require("ng-morph");
const colored_log_1 = require("./colored-log");
const get_named_import_references_1 = require("./get-named-import-references");
const import_manipulations_1 = require("./import-manipulations");
function removeModules(options, modules) {
!options['skip-logs'] &&
(0, colored_log_1.infoLog)(`${colored_log_1.SMALL_TAB_SYMBOL}${colored_log_1.REPLACE_SYMBOL} removing modules...`);
modules.forEach(({ name, moduleSpecifier }) => removeModule(name, moduleSpecifier));
!options['skip-logs'] &&
(0, colored_log_1.successLog)(`${colored_log_1.SMALL_TAB_SYMBOL}${colored_log_1.SUCCESS_SYMBOL} modules removed \n`);
}
function removeModule(name, moduleSpecifier) {
const references = (0, get_named_import_references_1.getNamedImportReferences)(name, moduleSpecifier);
references.forEach((ref) => {
if (ref.wasForgotten()) {
return;
}
const parent = ref.getParent();
if (ng_morph_1.Node.isImportSpecifier(parent)) {
(0, import_manipulations_1.removeImport)(parent);
}
else if (ng_morph_1.Node.isArrayLiteralExpression(parent)) {
const index = parent.getElements().findIndex((el) => el.getText() === name);
parent.removeElement(index);
}
else if (ng_morph_1.Node.isCallExpression(parent)) {
const array = parent.getParent();
if (!ng_morph_1.Node.isArrayLiteralExpression(array)) {
return;
}
const index = array
.getElements()
.findIndex((el) => el.getText() === parent.getText());
array.removeElement(index);
}
});
}
//# sourceMappingURL=remove-module.js.map