[6a3a178] | 1 | "use strict";
|
---|
| 2 | /**
|
---|
| 3 | * @license
|
---|
| 4 | * Copyright Google LLC All Rights Reserved.
|
---|
| 5 | *
|
---|
| 6 | * Use of this source code is governed by an MIT-style license that can be
|
---|
| 7 | * found in the LICENSE file at https://angular.io/license
|
---|
| 8 | */
|
---|
| 9 | Object.defineProperty(exports, "__esModule", { value: true });
|
---|
| 10 | const core_1 = require("@angular-devkit/core");
|
---|
| 11 | const workspace_1 = require("../../utility/workspace");
|
---|
| 12 | const BrowserBuilderOptions = [
|
---|
| 13 | ['aot', false, true],
|
---|
| 14 | ['vendorChunk', true, false],
|
---|
| 15 | ['extractLicenses', false, true],
|
---|
| 16 | ['buildOptimizer', false, true],
|
---|
| 17 | ['sourceMap', true, false],
|
---|
| 18 | ['optimization', false, true],
|
---|
| 19 | ['namedChunks', true, false],
|
---|
| 20 | ];
|
---|
| 21 | const ServerBuilderOptions = [
|
---|
| 22 | ['sourceMap', true, false],
|
---|
| 23 | ['optimization', false, true],
|
---|
| 24 | ];
|
---|
| 25 | function default_1() {
|
---|
| 26 | return (_tree, context) => workspace_1.updateWorkspace((workspace) => {
|
---|
| 27 | for (const [targetName, target, projectName] of workspace_1.allWorkspaceTargets(workspace)) {
|
---|
| 28 | if (!target.builder.startsWith('@angular-devkit/') &&
|
---|
| 29 | !target.builder.startsWith('@nguniversal/')) {
|
---|
| 30 | context.logger.warn(core_1.tags.stripIndent `
|
---|
| 31 | "${targetName}" target in "${projectName}" project is using a third-party builder.
|
---|
| 32 | You may need to adjust the options to retain the existing behavior.
|
---|
| 33 | For more information, see the breaking changes section within the release notes: https://github.com/angular/angular-cli/releases/tag/v12.0.0
|
---|
| 34 | `);
|
---|
| 35 | continue;
|
---|
| 36 | }
|
---|
| 37 | // Only interested in Angular Devkit browser and server builders
|
---|
| 38 | switch (target.builder) {
|
---|
| 39 | case '@angular-devkit/build-angular:server':
|
---|
| 40 | updateOptions(target, ServerBuilderOptions);
|
---|
| 41 | break;
|
---|
| 42 | case '@angular-devkit/build-angular:browser':
|
---|
| 43 | updateOptions(target, BrowserBuilderOptions);
|
---|
| 44 | break;
|
---|
| 45 | }
|
---|
| 46 | for (const [, options] of workspace_1.allTargetOptions(target)) {
|
---|
| 47 | delete options.experimentalRollupPass;
|
---|
| 48 | delete options.lazyModules;
|
---|
| 49 | delete options.forkTypeChecker;
|
---|
| 50 | }
|
---|
| 51 | }
|
---|
| 52 | });
|
---|
| 53 | }
|
---|
| 54 | exports.default = default_1;
|
---|
| 55 | function updateOptions(target, optionsToUpdate) {
|
---|
| 56 | // This is a hacky way to make this migration idempotent.
|
---|
| 57 | // `defaultConfiguration` was only introduced in v12 projects and hence v11 projects do not have this property.
|
---|
| 58 | // Setting it as an empty string will not cause any side-effect.
|
---|
| 59 | if (typeof target.defaultConfiguration === 'string') {
|
---|
| 60 | return;
|
---|
| 61 | }
|
---|
| 62 | target.defaultConfiguration = '';
|
---|
| 63 | if (!target.options) {
|
---|
| 64 | target.options = {};
|
---|
| 65 | }
|
---|
| 66 | const configurationOptions = target.configurations && Object.values(target.configurations);
|
---|
| 67 | for (const [optionName, oldDefault, newDefault] of optionsToUpdate) {
|
---|
| 68 | let value = target.options[optionName];
|
---|
| 69 | if (value === newDefault) {
|
---|
| 70 | // Value is same as new default
|
---|
| 71 | delete target.options[optionName];
|
---|
| 72 | }
|
---|
| 73 | else if (value === undefined) {
|
---|
| 74 | // Value is not defined, hence the default in the builder was used.
|
---|
| 75 | target.options[optionName] = oldDefault;
|
---|
| 76 | value = oldDefault;
|
---|
| 77 | }
|
---|
| 78 | // Remove overrides in configurations which are no longer needed.
|
---|
| 79 | configurationOptions === null || configurationOptions === void 0 ? void 0 : configurationOptions.filter((o) => o && o[optionName] === value).forEach((o) => o && delete o[optionName]);
|
---|
| 80 | }
|
---|
| 81 | }
|
---|