@angular/core
Version:
Angular - the core framework
85 lines (80 loc) • 3.23 kB
JavaScript
;
/**
* @license Angular v21.0.5
* (c) 2010-2025 Google LLC. https://angular.io/
* License: MIT
*/
;
var migrations = require('@angular/compiler-cli/private/migrations');
var apply_import_manager = require('./apply_import_manager-1Zs_gpB6.cjs');
require('@angular/compiler-cli');
require('typescript');
require('node:path');
var project_paths = require('./project_paths-DvD50ouC.cjs');
var imports = require('./imports-DP72APSx.cjs');
require('@angular-devkit/core');
require('node:path/posix');
require('@angular-devkit/schematics');
require('./project_tsconfig_paths-CDVxT6Ov.cjs');
/** Migration that moves the import of `ApplicationConfig` from `platform-browser` to `core`. */
class ApplicationConfigCoreMigration extends project_paths.TsurgeFunnelMigration {
async analyze(info) {
const replacements = [];
let importManager = null;
for (const sourceFile of info.sourceFiles) {
const specifier = imports.getImportSpecifier(sourceFile, '@angular/platform-browser', 'ApplicationConfig');
if (!specifier) {
continue;
}
importManager ??= new migrations.ImportManager({
// Prevent the manager from trying to generate a non-conflicting import.
generateUniqueIdentifier: () => null,
shouldUseSingleQuotes: () => true,
});
importManager.removeImport(sourceFile, 'ApplicationConfig', '@angular/platform-browser');
importManager.addImport({
exportSymbolName: 'ApplicationConfig',
exportModuleSpecifier: '@angular/core',
requestedFile: sourceFile,
unsafeAliasOverride: specifier.propertyName ? specifier.name.text : undefined,
});
}
if (importManager !== null) {
apply_import_manager.applyImportManagerChanges(importManager, replacements, info.sourceFiles, info);
}
return project_paths.confirmAsSerializable({ replacements });
}
async migrate(globalData) {
return project_paths.confirmAsSerializable(globalData);
}
async combine(unitA, unitB) {
const seen = new Set();
const combined = [];
[unitA.replacements, unitB.replacements].forEach((replacements) => {
replacements.forEach((current) => {
const { position, end, toInsert } = current.update.data;
const key = current.projectFile.id + '/' + position + '/' + end + '/' + toInsert;
if (!seen.has(key)) {
seen.add(key);
combined.push(current);
}
});
});
return project_paths.confirmAsSerializable({ replacements: combined });
}
async globalMeta(combinedData) {
return project_paths.confirmAsSerializable(combinedData);
}
async stats() {
return project_paths.confirmAsSerializable({});
}
}
function migrate() {
return async (tree) => {
await project_paths.runMigrationInDevkit({
tree,
getMigration: () => new ApplicationConfigCoreMigration(),
});
};
}
exports.migrate = migrate;