@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
82 lines • 3.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.migrateRoot = void 0;
const ng_morph_1 = require("ng-morph");
const add_unique_import_1 = require("../../../utils/add-unique-import");
const get_named_import_references_1 = require("../../../utils/get-named-import-references");
const import_manipulations_1 = require("../../../utils/import-manipulations");
function migrateRoot(fileSystem, options) {
!options['skip-logs'] &&
(0, ng_morph_1.infoLog)(`${ng_morph_1.SMALL_TAB_SYMBOL}${ng_morph_1.REPLACE_SYMBOL} updating TuiRoot`);
const refs = [
...(0, get_named_import_references_1.getNamedImportReferences)('TuiRootModule', '@taiga-ui/core'),
...(0, get_named_import_references_1.getNamedImportReferences)('TuiProprietaryRootModule', '@taiga-ui/proprietary-core'),
...(0, get_named_import_references_1.getNamedImportReferences)('TuiProprietaryRoot2023Module', '@taiga-ui/proprietary-core'),
];
for (const ref of refs) {
if (ref.wasForgotten()) {
return;
}
const parent = ref.getParent();
if (ng_morph_1.Node.isImportSpecifier(parent)) {
(0, import_manipulations_1.removeImport)(parent);
(0, add_unique_import_1.addUniqueImport)(parent.getSourceFile().getFilePath(), 'TuiRoot', '@taiga-ui/core');
}
else {
replaceRootIdentifier(ref, fileSystem);
}
}
}
exports.migrateRoot = migrateRoot;
function replaceRootIdentifier(ref, fileSystem) {
const callExpression = ref.getParentWhile(ng_morph_1.Node.isCallExpression);
if (callExpression &&
callExpression.getExpression().getText() === 'importProvidersFrom') {
const node = callExpression
.getArguments()
.find((arg) => arg.getText() === ref.getText());
if (node) {
callExpression.removeArgument(node);
addProviders({ callExpression, fileSystem });
}
}
else {
ref.replaceWithText('TuiRoot');
addProviders({ fileSystem, modulePath: ref.getSourceFile().getFilePath() });
}
}
function addProviders({ callExpression, fileSystem, modulePath, }) {
var _a;
const providersArray = callExpression === null || callExpression === void 0 ? void 0 : callExpression.getParentWhile(ng_morph_1.Node.isArrayLiteralExpression);
const module = modulePath && ((_a = (0, ng_morph_1.getNgModules)(modulePath)) === null || _a === void 0 ? void 0 : _a[0]);
if (!providersArray && !modulePath) {
return;
}
const path = providersArray
? providersArray.getSourceFile().getFilePath()
: modulePath || '';
if (providersArray) {
providersArray.addElement('provideEventPlugins()');
}
else if (module) {
(0, ng_morph_1.addProviderToNgModule)(module, 'provideEventPlugins()', { unique: true });
}
if (providersArray || module) {
(0, add_unique_import_1.addUniqueImport)(path, 'provideEventPlugins', '@taiga-ui/event-plugins');
}
(0, ng_morph_1.getActiveProject)();
const proprietary = (0, ng_morph_1.getPackageJsonDependency)(fileSystem.tree, '@taiga-ui/proprietary-core') ||
(0, ng_morph_1.getPackageJsonDependency)(fileSystem.tree, '@taiga-ui/proprietary');
if (proprietary) {
if (providersArray) {
providersArray.addElement('TBANK_PROVIDERS');
}
else if (module) {
(0, ng_morph_1.addProviderToNgModule)(module, 'TBANK_PROVIDERS', { unique: true });
}
if (providersArray || module) {
(0, add_unique_import_1.addUniqueImport)(path, 'TBANK_PROVIDERS', '@taiga-ui/proprietary');
}
}
}
//# sourceMappingURL=migrate-root.js.map