UNPKG

@taiga-ui/cdk

Version:

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

77 lines 3.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.migrateDocI18nTokens = migrateDocI18nTokens; const ng_morph_1 = require("ng-morph"); const file_globs_1 = require("../../../constants/file-globs"); 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 project_root_1 = require("../../../utils/project-root"); const ANGULAR_CORE = '@angular/core'; const SIGNAL = 'signal'; const DOC_I18N_TOKENS = [ 'TUI_DOC_DEMO_TEXTS', 'TUI_DOC_PREVIEW_TEXT', 'TUI_DOC_MENU_TEXT', 'TUI_DOC_SEARCH_TEXT', 'TUI_DOC_SEE_ALSO_TEXT', 'TUI_DOC_TOC_TEXT', 'TUI_DOC_SOURCE_CODE_TEXT', ]; /** * Migrates addon-doc i18n token providers from plain values to signal-wrapped values. * * These tokens changed their type from `string`/`[string, string, string]` * to `Signal<string>` in v5. * * Before: * { provide: TUI_DOC_SOURCE_CODE_TEXT, useValue: 'GitHub' } * * After: * { provide: TUI_DOC_SOURCE_CODE_TEXT, useValue: signal('GitHub') } */ function migrateDocI18nTokens(tree, options) { if (!options['skip-logs']) { (0, colored_log_1.infoLog)('Migrating addon-doc i18n token providers to signal-based values...'); } const project = (0, ng_morph_1.createProject)(tree, (0, project_root_1.projectRoot)(), file_globs_1.ALL_TS_FILES); (0, ng_morph_1.setActiveProject)(project); for (const tokenName of DOC_I18N_TOKENS) { const refs = (0, get_named_import_references_1.getNamedImportReferences)(tokenName, '@taiga-ui/addon-doc'); for (const ref of refs) { if (ref.wasForgotten()) { continue; } const parent = ref.getParent(); if (!parent || ng_morph_1.Node.isImportSpecifier(parent) || !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) { continue; } const initText = initializer.getText(); if (initText.startsWith(`${SIGNAL}(`)) { continue; } useValueProp.setInitializer(`${SIGNAL}(${initText})`); (0, add_unique_import_1.addUniqueImport)(ref.getSourceFile().getFilePath(), SIGNAL, ANGULAR_CORE); } } (0, ng_morph_1.saveActiveProject)(); if (!options['skip-logs']) { (0, colored_log_1.titleLog)('addon-doc i18n token migration completed!'); } } //# sourceMappingURL=migrate-doc-i18n-tokens.js.map