@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
43 lines (42 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.saveAddedImports = exports.addImportToClosestModule = void 0;
const ng_morph_1 = require("ng-morph");
const file_globs_1 = require("../constants/file-globs");
const add_unique_import_1 = require("./add-unique-import");
const importsToAdd = new Map();
function addImportToClosestModule(componentPath, moduleName, moduleSpecifier) {
importsToAdd.set(`${componentPath}_${moduleName}_${moduleSpecifier}`, {
componentPath,
moduleName,
moduleSpecifier,
});
}
exports.addImportToClosestModule = addImportToClosestModule;
function saveAddedImports(options) {
importsToAdd.forEach(({ componentPath, moduleName, moduleSpecifier }) => {
!options['skip-logs'] &&
(0, ng_morph_1.infoLog)(`${ng_morph_1.SMALL_TAB_SYMBOL}${ng_morph_1.REPLACE_SYMBOL} add ${moduleName} declaration from ${moduleSpecifier} to ${componentPath}`);
const [ngComponent] = (0, ng_morph_1.getNgComponents)(componentPath);
if (!ngComponent) {
return;
}
if ((0, ng_morph_1.isStandaloneComponent)(ngComponent)) {
(0, ng_morph_1.addImportToComponent)(ngComponent, moduleName, { unique: true });
(0, add_unique_import_1.addUniqueImport)(ngComponent.getSourceFile().getFilePath(), moduleName, moduleSpecifier);
!options['skip-logs'] &&
(0, ng_morph_1.successLog)(`${ng_morph_1.SMALL_TAB_SYMBOL}${ng_morph_1.SUCCESS_SYMBOL} ${moduleName} added to\n`);
return;
}
const ngModule = (0, ng_morph_1.findNgModule)(ngComponent, file_globs_1.ALL_TS_FILES);
if (ngModule) {
(0, ng_morph_1.addImportToNgModule)(ngModule, moduleName, {
unique: true,
});
(0, add_unique_import_1.addUniqueImport)(ngModule.getSourceFile().getFilePath(), moduleName, moduleSpecifier);
!options['skip-logs'] &&
(0, ng_morph_1.successLog)(`${ng_morph_1.SMALL_TAB_SYMBOL}${ng_morph_1.SUCCESS_SYMBOL} ${moduleName} added to\n`);
}
});
}
exports.saveAddedImports = saveAddedImports;