UNPKG

@taiga-ui/cdk

Version:

Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance

71 lines 2.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.migrateI18nLanguageSignal = migrateI18nLanguageSignal; const ng_morph_1 = require("ng-morph"); const add_unique_import_1 = require("../../../utils/add-unique-import"); const colored_log_1 = require("../../../utils/colored-log"); const get_named_import_references_1 = require("../../../utils/get-named-import-references"); const ANGULAR_CORE = '@angular/core'; const SIGNAL = 'signal'; /** * Migrates i18n language providers from of(TUI_*_LANGUAGE) to signal(TUI_*_LANGUAGE). * * Before: * { * provide: TUI_LANGUAGE, * useValue: of(TUI_ENGLISH_LANGUAGE), * } * * After: * { * provide: TUI_LANGUAGE, * useValue: signal(TUI_ENGLISH_LANGUAGE), * } */ function migrateI18nLanguageSignal(tree, options) { var _a; if (!options['skip-logs']) { (0, colored_log_1.infoLog)('Migrating i18n language providers to signal-based values...'); } const refs = (0, get_named_import_references_1.getNamedImportReferences)('TUI_LANGUAGE', '@taiga-ui/i18n'); for (const ref of refs) { if (ref.wasForgotten()) { continue; } const parent = ref.getParent(); if (!parent || ng_morph_1.Node.isImportSpecifier(parent)) { continue; } // We are looking for { provide: TUI_LANGUAGE, useValue: of(...) } if (!ng_morph_1.Node.isPropertyAssignment(parent) || parent.getName() !== 'provide') { continue; } const objectLiteral = parent.getParent(); if (!objectLiteral || !ng_morph_1.Node.isObjectLiteralExpression(objectLiteral)) { continue; } const useValueProp = objectLiteral.getProperty('useValue'); if (!useValueProp || !ng_morph_1.Node.isPropertyAssignment(useValueProp)) { continue; } const initializer = useValueProp.getInitializer(); if (!initializer || !ng_morph_1.Node.isCallExpression(initializer)) { continue; } const expression = initializer.getExpression(); if (expression.getText() !== 'of') { continue; } const args = initializer.getArguments(); if (args.length !== 1) { continue; } const argText = (_a = args[0]) === null || _a === void 0 ? void 0 : _a.getText(); if ((argText === null || argText === void 0 ? void 0 : argText.startsWith('TUI_')) && argText.endsWith('_LANGUAGE')) { useValueProp.setInitializer(`${SIGNAL}(${argText})`); (0, add_unique_import_1.addUniqueImport)(ref.getSourceFile().getFilePath(), SIGNAL, ANGULAR_CORE); } } (0, ng_morph_1.saveActiveProject)(); } //# sourceMappingURL=migrate-i18n-language-signal.js.map