@nx/angular 16.8.0-beta.4 → 16.8.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mf/mf.js +31 -36
- package/package.json +10 -10
- package/plugins/component-testing.js +48 -40
- package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +4 -6
- package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.js +4 -6
- package/src/builders/utilities/buildable-libs.js +1 -2
- package/src/builders/utilities/module-federation.js +2 -3
- package/src/builders/utilities/webpack.js +16 -21
- package/src/builders/webpack-browser/webpack-browser.impl.js +13 -13
- package/src/builders/webpack-dev-server/lib/normalize-options.js +8 -1
- package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +24 -18
- package/src/builders/webpack-server/webpack-server.impl.js +5 -7
- package/src/executors/browser-esbuild/browser-esbuild.impl.js +19 -23
- package/src/executors/browser-esbuild/lib/buildable-libs.js +1 -2
- package/src/executors/delegate-build/delegate-build.impl.js +9 -12
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +4 -7
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.transform.js +4 -5
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +158 -156
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/options.di.js +6 -3
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ngc/compile-source-files.js +118 -118
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/styles/stylesheet-processor.js +96 -103
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +20 -12
- package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +18 -21
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +6 -9
- package/src/executors/package/ng-packagr-adjustments/ng-package/options.di.js +6 -3
- package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +122 -122
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +96 -103
- package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +21 -13
- package/src/executors/package/ng-packagr-adjustments/utils/ng-compiler-cli.js +5 -8
- package/src/executors/package/package.impl.js +33 -38
- package/src/executors/utilities/angular-version-utils.js +1 -1
- package/src/executors/utilities/tailwindcss.js +2 -2
- package/src/executors/utilities/typescript.js +23 -28
- package/src/generators/add-linting/add-linting.js +76 -74
- package/src/generators/add-linting/lib/create-eslint-configuration.js +12 -4
- package/src/generators/application/application.js +56 -55
- package/src/generators/application/lib/add-e2e.js +36 -40
- package/src/generators/application/lib/add-linting.js +12 -15
- package/src/generators/application/lib/add-proxy-config.js +4 -1
- package/src/generators/application/lib/add-unit-test-runner.js +15 -18
- package/src/generators/application/lib/create-files.js +44 -47
- package/src/generators/application/lib/enable-strict-type-checking.js +2 -2
- package/src/generators/application/lib/normalize-options.js +37 -25
- package/src/generators/application/lib/set-app-strict-default.js +1 -2
- package/src/generators/application/lib/update-editor-tsconfig.js +1 -2
- package/src/generators/component/component.js +40 -43
- package/src/generators/component/lib/normalize-options.js +15 -5
- package/src/generators/component-cypress-spec/component-cypress-spec.js +25 -28
- package/src/generators/component-story/component-story.js +19 -22
- package/src/generators/convert-to-with-mf/convert-to-with-mf.js +19 -22
- package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +3 -4
- package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js +103 -106
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js +59 -62
- package/src/generators/directive/directive.js +21 -24
- package/src/generators/directive/lib/normalize-options.js +11 -5
- package/src/generators/host/host.js +77 -67
- package/src/generators/host/lib/add-ssr.js +32 -35
- package/src/generators/init/init.js +101 -92
- package/src/generators/library/lib/add-standalone-component.js +18 -13
- package/src/generators/library/lib/enable-strict-type-checking.js +17 -5
- package/src/generators/library/lib/normalize-options.js +68 -53
- package/src/generators/library/library.js +89 -92
- package/src/generators/library-secondary-entry-point/lib/add-files.js +5 -1
- package/src/generators/library-secondary-entry-point/lib/normalize-options.js +6 -3
- package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.js +1 -2
- package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +6 -9
- package/src/generators/move/lib/normalize-schema.js +5 -1
- package/src/generators/move/lib/update-module-name.js +1 -1
- package/src/generators/move/lib/update-ng-package.js +1 -2
- package/src/generators/move/lib/update-secondary-entry-points.js +1 -2
- package/src/generators/move/move.js +9 -12
- package/src/generators/ng-add/migrate-from-angular-cli.js +54 -53
- package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +4 -3
- package/src/generators/ng-add/migrators/builders/angular-devkit-ng-packagr.migrator.js +11 -12
- package/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js +39 -42
- package/src/generators/ng-add/migrators/builders/builder.migrator.js +1 -2
- package/src/generators/ng-add/migrators/migrator.js +7 -11
- package/src/generators/ng-add/migrators/projects/app.migrator.js +39 -43
- package/src/generators/ng-add/migrators/projects/e2e.migrator.js +115 -91
- package/src/generators/ng-add/migrators/projects/lib.migrator.js +23 -31
- package/src/generators/ng-add/migrators/projects/project.migrator.js +10 -14
- package/src/generators/ng-add/ng-add.js +5 -8
- package/src/generators/ng-add/utilities/dependencies.js +2 -3
- package/src/generators/ng-add/utilities/format-files-task.js +1 -1
- package/src/generators/ng-add/utilities/projects.js +1 -1
- package/src/generators/ng-add/utilities/workspace.js +25 -36
- package/src/generators/ngrx/lib/add-imports-to-module.js +1 -2
- package/src/generators/ngrx/lib/add-ngrx-to-package-json.js +1 -3
- package/src/generators/ngrx/lib/generate-files.js +11 -2
- package/src/generators/ngrx/lib/normalize-options.js +9 -4
- package/src/generators/ngrx/lib/validate-options.js +3 -3
- package/src/generators/ngrx/ngrx.js +18 -21
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.actions.ts__tmpl__ +1 -1
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.spec.ts__tmpl__ +2 -2
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.spec.ts__tmpl__ +6 -6
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.spec.ts__tmpl__ +3 -3
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__ +2 -2
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.spec.ts__tmpl__ +3 -3
- package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__ +1 -1
- package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
- package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
- package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +4 -1
- package/src/generators/ngrx-feature-store/lib/add-imports.js +1 -1
- package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js +1 -3
- package/src/generators/ngrx-feature-store/lib/generate-files.js +20 -4
- package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +1 -0
- package/src/generators/ngrx-feature-store/lib/normalize-options.js +22 -3
- package/src/generators/ngrx-feature-store/lib/validate-options.js +2 -2
- package/src/generators/ngrx-feature-store/ngrx-feature-store.js +18 -21
- package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js +8 -6
- package/src/generators/ngrx-root-store/lib/normalize-options.js +8 -4
- package/src/generators/ngrx-root-store/lib/validate-options.js +2 -2
- package/src/generators/ngrx-root-store/ngrx-root-store.js +27 -30
- package/src/generators/pipe/lib/normalize-options.js +9 -3
- package/src/generators/pipe/pipe.js +21 -24
- package/src/generators/remote/lib/add-ssr.js +46 -47
- package/src/generators/remote/lib/find-next-available-port.js +1 -2
- package/src/generators/remote/remote.js +52 -49
- package/src/generators/scam/lib/convert-component-to-scam.js +1 -2
- package/src/generators/scam/lib/normalize-options.js +11 -4
- package/src/generators/scam/scam.js +15 -12
- package/src/generators/scam-directive/lib/normalize-options.js +12 -4
- package/src/generators/scam-directive/scam-directive.js +13 -10
- package/src/generators/scam-pipe/lib/normalize-options.js +12 -4
- package/src/generators/scam-pipe/scam-pipe.js +13 -10
- package/src/generators/scam-to-standalone/scam-to-standalone.js +23 -26
- package/src/generators/setup-mf/lib/add-cypress-workaround.js +1 -1
- package/src/generators/setup-mf/lib/add-remote-to-host.js +4 -1
- package/src/generators/setup-mf/lib/change-build-target.js +10 -4
- package/src/generators/setup-mf/lib/generate-config.js +1 -1
- package/src/generators/setup-mf/lib/get-remotes-with-ports.js +1 -2
- package/src/generators/setup-mf/lib/normalize-options.js +5 -2
- package/src/generators/setup-mf/lib/set-tsconfig-target.js +7 -1
- package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +1 -2
- package/src/generators/setup-mf/lib/setup-serve-target.js +10 -3
- package/src/generators/setup-mf/setup-mf.js +32 -35
- package/src/generators/setup-ssr/lib/generate-files.js +8 -5
- package/src/generators/setup-ssr/lib/normalize-options.js +9 -10
- package/src/generators/setup-ssr/lib/update-project-config.js +21 -17
- package/src/generators/setup-ssr/setup-ssr.js +26 -27
- package/src/generators/setup-tailwind/lib/add-tailwind-config-path-to-project.js +6 -4
- package/src/generators/setup-tailwind/lib/detect-tailwind-installed-version.js +1 -2
- package/src/generators/setup-tailwind/lib/normalize-options.js +4 -1
- package/src/generators/setup-tailwind/lib/update-application-styles.js +5 -6
- package/src/generators/setup-tailwind/setup-tailwind.js +20 -23
- package/src/generators/stories/lib/get-e2e-project.js +1 -1
- package/src/generators/stories/stories.js +43 -50
- package/src/generators/storybook-configuration/lib/assert-compatible-storybook-version.js +1 -1
- package/src/generators/storybook-configuration/lib/generate-stories.js +10 -13
- package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +12 -15
- package/src/generators/storybook-configuration/storybook-configuration.js +20 -16
- package/src/generators/utils/create-ts-config.js +1 -1
- package/src/generators/utils/entry-point.js +1 -2
- package/src/generators/utils/export-scam.js +1 -1
- package/src/generators/utils/insert-ngmodule-import.js +1 -1
- package/src/generators/utils/path.js +3 -3
- package/src/generators/utils/project.js +2 -3
- package/src/generators/utils/selector.js +1 -1
- package/src/generators/utils/storybook-ast/component-info.js +1 -2
- package/src/generators/utils/storybook-ast/entry-point.js +1 -2
- package/src/generators/utils/storybook-ast/module-info.js +1 -2
- package/src/generators/utils/storybook-ast/tree-utilities.js +1 -1
- package/src/generators/utils/testing.js +141 -139
- package/src/generators/utils/validations.js +1 -1
- package/src/generators/utils/version-utils.js +5 -7
- package/src/generators/web-worker/lib/normalize-options.js +6 -3
- package/src/generators/web-worker/web-worker.js +25 -28
- package/src/migrations/update-14-2-0/remove-show-circular-dependencies-option.js +10 -13
- package/src/migrations/update-14-2-0/update-angular-cli.js +14 -18
- package/src/migrations/update-14-2-0/update-libraries-secondary-entrypoints.js +22 -26
- package/src/migrations/update-14-2-0/update-ngcc-target.js +10 -14
- package/src/migrations/update-14-2-0/update-router-initial-navigation.js +31 -39
- package/src/migrations/update-14-2-0/update-tsconfig-target.js +48 -56
- package/src/migrations/update-14-5-0/migrate-mfe-to-mf.js +14 -17
- package/src/migrations/update-14-5-2/update-angular-cli.js +14 -18
- package/src/migrations/update-14-6-0/update-angular-cli.js +14 -18
- package/src/migrations/update-15-0-0/add-karma-inputs.js +27 -32
- package/src/migrations/update-15-0-0/switch-to-jasmine-marbles.js +62 -68
- package/src/migrations/update-15-2-0/remove-browserlist-config.js +34 -37
- package/src/migrations/update-15-2-0/remove-platform-server-exports.js +49 -52
- package/src/migrations/update-15-2-0/update-angular-cli.js +14 -18
- package/src/migrations/update-15-2-0/update-karma-main-file.js +11 -12
- package/src/migrations/update-15-2-0/update-typescript-target.js +40 -39
- package/src/migrations/update-15-2-0/update-workspace-config.js +16 -19
- package/src/migrations/update-15-5-0/update-angular-cli.js +14 -18
- package/src/migrations/update-15-7-0/install-required-packages.js +26 -28
- package/src/migrations/update-15-8-0/update-angular-cli.js +14 -18
- package/src/migrations/update-15-9-0/update-file-server-executor.js +31 -35
- package/src/migrations/update-15-9-0/update-testing-tsconfig.js +17 -22
- package/src/migrations/update-16-0-0/remove-karma-defaults.js +15 -18
- package/src/migrations/update-16-0-0/remove-library-generator-simple-module-name-option.js +22 -25
- package/src/migrations/update-16-0-0/remove-protractor-defaults.js +15 -18
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +3 -6
- package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js +38 -42
- package/src/migrations/update-16-1-0/remove-ngcc-invocation.js +15 -19
- package/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.js +49 -52
- package/src/migrations/update-16-1-0/update-angular-cli.js +14 -18
- package/src/migrations/update-16-1-0/update-server-executor-config.js +13 -16
- package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +25 -29
- package/src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules.js +13 -16
- package/src/migrations/update-16-4-0/update-angular-cli.js +14 -18
- package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.js +19 -24
- package/src/migrations/update-16-7-0/update-angular-cli.js +14 -18
- package/src/migrations/utils/projects.js +9 -15
- package/src/utils/get-mf-projects.js +1 -2
- package/src/utils/mf/utils.js +43 -44
- package/src/utils/mf/with-module-federation-ssr.js +39 -24
- package/src/utils/mf/with-module-federation.js +40 -21
- package/src/utils/nx-devkit/ast-utils.js +2 -3
- package/src/utils/version-utils.js +2 -4
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.E2eMigrator = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const cypress_1 = require("@nx/cypress");
|
|
6
5
|
const cypress_preset_1 = require("@nx/cypress/plugins/cypress-preset");
|
|
7
6
|
const cypress_version_1 = require("@nx/cypress/src/utils/cypress-version");
|
|
@@ -36,7 +35,6 @@ const cypressConfig = {
|
|
|
36
35
|
};
|
|
37
36
|
class E2eMigrator extends project_migrator_1.ProjectMigrator {
|
|
38
37
|
constructor(tree, options, project, lintTargetName, logger) {
|
|
39
|
-
var _a;
|
|
40
38
|
super(tree, options, supportedTargets, project, 'apps', logger);
|
|
41
39
|
this.lintTargetName = lintTargetName;
|
|
42
40
|
this.appConfig = project.config;
|
|
@@ -44,39 +42,39 @@ class E2eMigrator extends project_migrator_1.ProjectMigrator {
|
|
|
44
42
|
// TODO(leo): temporary keep restriction to support projects with an "e2e" target,
|
|
45
43
|
// will be lifted soon when the migration is split per-builder and proper support
|
|
46
44
|
// for multiple targets for the same builder is added
|
|
47
|
-
this.targetNames.e2e =
|
|
45
|
+
this.targetNames.e2e = this.appConfig.targets?.e2e ? 'e2e' : undefined;
|
|
48
46
|
this.initialize();
|
|
49
47
|
}
|
|
50
|
-
migrate() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
(0,
|
|
72
|
-
|
|
73
|
-
json.compilerOptions
|
|
74
|
-
|
|
75
|
-
}
|
|
48
|
+
async migrate() {
|
|
49
|
+
if (!this.targetNames.e2e) {
|
|
50
|
+
this.logger.info('No e2e project was migrated because there was no "e2e" target declared in the "angular.json".');
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (this.shouldSkipTargetTypeMigration('e2e')) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (this.isProtractorE2eProject()) {
|
|
57
|
+
await this.migrateProtractorE2eProject();
|
|
58
|
+
}
|
|
59
|
+
else if (this.isCypressE2eProject()) {
|
|
60
|
+
await this.migrateCypressE2eProject();
|
|
61
|
+
}
|
|
62
|
+
const tsConfig = (0, devkit_1.joinPathFragments)(this.projectConfig.root, 'tsconfig.json');
|
|
63
|
+
if (!this.tree.exists(tsConfig)) {
|
|
64
|
+
this.logger.warn('A "tsconfig.json" file could not be found for the e2e project. Skipping updating the tsConfig file.');
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const rootOffset = (0, devkit_1.offsetFromRoot)(this.project.newRoot);
|
|
68
|
+
(0, devkit_1.updateJson)(this.tree, tsConfig, (json) => {
|
|
69
|
+
json.extends = `${rootOffset}${(0, js_1.getRootTsConfigPathInTree)(this.tree)}`;
|
|
70
|
+
json.compilerOptions = {
|
|
71
|
+
...json.compilerOptions,
|
|
72
|
+
outDir: `${rootOffset}dist/out-tsc`,
|
|
73
|
+
};
|
|
74
|
+
return json;
|
|
76
75
|
});
|
|
77
76
|
}
|
|
78
77
|
validate() {
|
|
79
|
-
var _a;
|
|
80
78
|
if (!this.targetNames.e2e) {
|
|
81
79
|
return null;
|
|
82
80
|
}
|
|
@@ -115,7 +113,7 @@ class E2eMigrator extends project_migrator_1.ProjectMigrator {
|
|
|
115
113
|
return null;
|
|
116
114
|
}
|
|
117
115
|
if (this.isCypressE2eProject()) {
|
|
118
|
-
const configFile =
|
|
116
|
+
const configFile = this.projectConfig.targets[this.targetNames.e2e].options?.configFile;
|
|
119
117
|
if (configFile === undefined && !this.getOldCypressConfigFilePath()) {
|
|
120
118
|
const expectedConfigFile = this.cypressInstalledVersion < 10
|
|
121
119
|
? 'cypress.json'
|
|
@@ -168,70 +166,86 @@ class E2eMigrator extends project_migrator_1.ProjectMigrator {
|
|
|
168
166
|
const newRoot = (0, devkit_1.joinPathFragments)('apps', name);
|
|
169
167
|
const newSourceRoot = (0, devkit_1.joinPathFragments)('apps', name, 'src');
|
|
170
168
|
if (this.isProtractorE2eProject()) {
|
|
171
|
-
this.project =
|
|
172
|
-
|
|
169
|
+
this.project = {
|
|
170
|
+
...this.project,
|
|
171
|
+
name,
|
|
172
|
+
oldRoot: (0, devkit_1.joinPathFragments)(this.project.oldRoot, 'e2e'),
|
|
173
|
+
newRoot,
|
|
174
|
+
newSourceRoot,
|
|
175
|
+
};
|
|
173
176
|
}
|
|
174
177
|
else if (this.isCypressE2eProject()) {
|
|
175
178
|
this.cypressInstalledVersion = (0, cypress_version_1.installedCypressVersion)();
|
|
176
|
-
this.project =
|
|
177
|
-
|
|
179
|
+
this.project = {
|
|
180
|
+
...this.project,
|
|
181
|
+
name,
|
|
182
|
+
oldSourceRoot: (0, devkit_1.joinPathFragments)(this.project.oldRoot, 'cypress'),
|
|
183
|
+
newRoot,
|
|
184
|
+
newSourceRoot,
|
|
185
|
+
};
|
|
178
186
|
}
|
|
179
187
|
}
|
|
180
|
-
migrateProtractorE2eProject() {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
this.
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
188
|
+
async migrateProtractorE2eProject() {
|
|
189
|
+
this.moveDir(this.project.oldRoot, this.project.newRoot);
|
|
190
|
+
this.projectConfig = {
|
|
191
|
+
root: this.project.newRoot,
|
|
192
|
+
sourceRoot: this.project.newSourceRoot,
|
|
193
|
+
projectType: 'application',
|
|
194
|
+
targets: {
|
|
195
|
+
e2e: {
|
|
196
|
+
...this.projectConfig.targets[this.targetNames.e2e],
|
|
197
|
+
options: {
|
|
198
|
+
...this.projectConfig.targets[this.targetNames.e2e].options,
|
|
199
|
+
protractorConfig: this.convertRootPath(this.projectConfig.targets[this.targetNames.e2e].options
|
|
200
|
+
.protractorConfig),
|
|
201
|
+
},
|
|
190
202
|
},
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
if (this.isProjectUsingEsLint) {
|
|
200
|
-
yield (0, linter_1.lintProjectGenerator)(this.tree, {
|
|
201
|
-
project: this.project.name,
|
|
202
|
-
linter: linter_1.Linter.EsLint,
|
|
203
|
-
eslintFilePatterns: [`${this.project.newRoot}/**/*.{js,ts}`],
|
|
204
|
-
unitTestRunner: this.options.unitTestRunner,
|
|
205
|
-
tsConfigPaths: [
|
|
206
|
-
(0, devkit_1.joinPathFragments)(this.project.newRoot, 'tsconfig.json'),
|
|
207
|
-
],
|
|
208
|
-
skipFormat: true,
|
|
209
|
-
});
|
|
210
|
-
}
|
|
203
|
+
},
|
|
204
|
+
implicitDependencies: [this.appName],
|
|
205
|
+
tags: [],
|
|
206
|
+
};
|
|
207
|
+
// remove e2e target from the app config
|
|
208
|
+
delete this.appConfig.targets[this.targetNames.e2e];
|
|
209
|
+
(0, devkit_1.updateProjectConfiguration)(this.tree, this.appName, {
|
|
210
|
+
...this.appConfig,
|
|
211
211
|
});
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
project: this.
|
|
219
|
-
linter:
|
|
220
|
-
|
|
212
|
+
// add e2e project config
|
|
213
|
+
(0, devkit_1.addProjectConfiguration)(this.tree, this.project.name, {
|
|
214
|
+
...this.projectConfig,
|
|
215
|
+
}, true);
|
|
216
|
+
if (this.isProjectUsingEsLint) {
|
|
217
|
+
await (0, linter_1.lintProjectGenerator)(this.tree, {
|
|
218
|
+
project: this.project.name,
|
|
219
|
+
linter: linter_1.Linter.EsLint,
|
|
220
|
+
eslintFilePatterns: [`${this.project.newRoot}/**/*.{js,ts}`],
|
|
221
|
+
unitTestRunner: this.options.unitTestRunner,
|
|
222
|
+
tsConfigPaths: [
|
|
223
|
+
(0, devkit_1.joinPathFragments)(this.project.newRoot, 'tsconfig.json'),
|
|
224
|
+
],
|
|
221
225
|
skipFormat: true,
|
|
222
226
|
});
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
async migrateCypressE2eProject() {
|
|
230
|
+
const oldCypressConfigFilePath = this.getOldCypressConfigFilePath();
|
|
231
|
+
await (0, cypress_1.cypressProjectGenerator)(this.tree, {
|
|
232
|
+
name: this.project.name,
|
|
233
|
+
project: this.appName,
|
|
234
|
+
linter: this.isProjectUsingEsLint ? linter_1.Linter.EsLint : linter_1.Linter.None,
|
|
235
|
+
standaloneConfig: true,
|
|
236
|
+
skipFormat: true,
|
|
237
|
+
});
|
|
238
|
+
const cypressConfigFilePath = this.updateOrCreateCypressConfigFile(oldCypressConfigFilePath);
|
|
239
|
+
this.updateCypressProjectConfiguration(cypressConfigFilePath);
|
|
240
|
+
// replace the generated tsconfig.json with the project one
|
|
241
|
+
const newTsConfigPath = (0, devkit_1.joinPathFragments)(this.project.newRoot, 'tsconfig.json');
|
|
242
|
+
this.tree.delete(newTsConfigPath);
|
|
243
|
+
this.moveFile((0, devkit_1.joinPathFragments)(this.project.oldSourceRoot, 'tsconfig.json'), newTsConfigPath);
|
|
244
|
+
// replace the generated source with the project source
|
|
245
|
+
(0, devkit_1.visitNotIgnoredFiles)(this.tree, this.project.newSourceRoot, (filePath) => {
|
|
246
|
+
this.tree.delete(filePath);
|
|
234
247
|
});
|
|
248
|
+
this.moveDir(this.project.oldSourceRoot, (0, devkit_1.joinPathFragments)(this.project.newSourceRoot));
|
|
235
249
|
}
|
|
236
250
|
updateOrCreateCypressConfigFile(configFile) {
|
|
237
251
|
if (!configFile) {
|
|
@@ -257,7 +271,7 @@ class E2eMigrator extends project_migrator_1.ProjectMigrator {
|
|
|
257
271
|
this.projectConfig.root = this.project.newRoot;
|
|
258
272
|
this.projectConfig.sourceRoot = this.project.newSourceRoot;
|
|
259
273
|
(0, devkit_1.removeProjectConfiguration)(this.tree, generatedProjectName);
|
|
260
|
-
(0, devkit_1.addProjectConfiguration)(this.tree, this.project.name,
|
|
274
|
+
(0, devkit_1.addProjectConfiguration)(this.tree, this.project.name, { ...this.projectConfig }, true);
|
|
261
275
|
}
|
|
262
276
|
else {
|
|
263
277
|
this.projectConfig = (0, devkit_1.readProjectConfiguration)(this.tree, this.project.name);
|
|
@@ -278,14 +292,25 @@ class E2eMigrator extends project_migrator_1.ProjectMigrator {
|
|
|
278
292
|
this.projectConfig.targets[target] = this.updateE2eCypressTarget(this.appConfig.targets[target], cypressConfigPath);
|
|
279
293
|
}
|
|
280
294
|
});
|
|
281
|
-
(0, devkit_1.updateProjectConfiguration)(this.tree, this.project.name,
|
|
295
|
+
(0, devkit_1.updateProjectConfiguration)(this.tree, this.project.name, {
|
|
296
|
+
...this.projectConfig,
|
|
297
|
+
});
|
|
282
298
|
delete this.appConfig.targets['cypress-run'];
|
|
283
299
|
delete this.appConfig.targets['cypress-open'];
|
|
284
300
|
delete this.appConfig.targets[this.targetNames.e2e];
|
|
285
|
-
(0, devkit_1.updateProjectConfiguration)(this.tree, this.appName,
|
|
301
|
+
(0, devkit_1.updateProjectConfiguration)(this.tree, this.appName, {
|
|
302
|
+
...this.appConfig,
|
|
303
|
+
});
|
|
286
304
|
}
|
|
287
305
|
updateE2eCypressTarget(existingTarget, cypressConfig) {
|
|
288
|
-
const updatedTarget =
|
|
306
|
+
const updatedTarget = {
|
|
307
|
+
...existingTarget,
|
|
308
|
+
executor: '@nx/cypress:cypress',
|
|
309
|
+
options: {
|
|
310
|
+
...existingTarget.options,
|
|
311
|
+
cypressConfig,
|
|
312
|
+
},
|
|
313
|
+
};
|
|
289
314
|
delete updatedTarget.options.configFile;
|
|
290
315
|
if (updatedTarget.options.tsConfig) {
|
|
291
316
|
updatedTarget.options.tsConfig = (0, devkit_1.joinPathFragments)(this.project.newRoot, 'tsconfig.json');
|
|
@@ -396,8 +421,7 @@ class E2eMigrator extends project_migrator_1.ProjectMigrator {
|
|
|
396
421
|
}
|
|
397
422
|
});
|
|
398
423
|
}
|
|
399
|
-
updateCypressE2EConfig(configFilePath, defineConfigNode, e2eNode, recorder,
|
|
400
|
-
var globalConfig = tslib_1.__rest(_a, []);
|
|
424
|
+
updateCypressE2EConfig(configFilePath, defineConfigNode, e2eNode, recorder, { ...globalConfig }) {
|
|
401
425
|
(0, ensure_typescript_1.ensureTypescript)();
|
|
402
426
|
const { tsquery } = require('@phenomnomnominal/tsquery');
|
|
403
427
|
const e2eConfig = {};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LibMigrator = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
6
5
|
const devkit_2 = require("@nx/devkit");
|
|
7
6
|
const utilities_1 = require("../../utilities");
|
|
@@ -16,45 +15,38 @@ class LibMigrator extends project_migrator_1.ProjectMigrator {
|
|
|
16
15
|
constructor(tree, options, project, logger) {
|
|
17
16
|
super(tree, options, {}, project, 'libs', logger, supportedBuilderMigrators);
|
|
18
17
|
}
|
|
19
|
-
migrate() {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
yield this.updateProjectConfiguration();
|
|
30
|
-
this.moveProjectFiles();
|
|
31
|
-
for (const builderMigrator of (_a = this.builderMigrators) !== null && _a !== void 0 ? _a : []) {
|
|
32
|
-
yield builderMigrator.migrate();
|
|
33
|
-
}
|
|
34
|
-
});
|
|
18
|
+
async migrate() {
|
|
19
|
+
if (this.skipMigration === true) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
await super.migrate();
|
|
23
|
+
await this.updateProjectConfiguration();
|
|
24
|
+
this.moveProjectFiles();
|
|
25
|
+
for (const builderMigrator of this.builderMigrators ?? []) {
|
|
26
|
+
await builderMigrator.migrate();
|
|
27
|
+
}
|
|
35
28
|
}
|
|
36
29
|
validate() {
|
|
37
|
-
|
|
38
|
-
const errors = [...((_a = super.validate()) !== null && _a !== void 0 ? _a : [])];
|
|
30
|
+
const errors = [...(super.validate() ?? [])];
|
|
39
31
|
for (const builderMigrator of this.builderMigrators) {
|
|
40
|
-
errors.push(...(
|
|
32
|
+
errors.push(...(builderMigrator.validate() ?? []));
|
|
41
33
|
}
|
|
42
34
|
return errors.length ? errors : null;
|
|
43
35
|
}
|
|
44
36
|
moveProjectFiles() {
|
|
45
37
|
this.moveDir(this.project.oldRoot, this.project.newRoot);
|
|
46
38
|
}
|
|
47
|
-
updateProjectConfiguration() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
39
|
+
async updateProjectConfiguration() {
|
|
40
|
+
(0, utilities_1.convertToNxProject)(this.tree, this.project.name);
|
|
41
|
+
this.moveFile((0, devkit_1.joinPathFragments)(this.project.oldRoot, 'project.json'), (0, devkit_1.joinPathFragments)(this.project.newRoot, 'project.json'));
|
|
42
|
+
this.projectConfig.root = this.project.newRoot;
|
|
43
|
+
this.projectConfig.sourceRoot = this.project.newSourceRoot;
|
|
44
|
+
if (!this.projectConfig.targets ||
|
|
45
|
+
!Object.keys(this.projectConfig.targets).length) {
|
|
46
|
+
this.logger.warn('The project does not have any targets configured. This might not be an issue. Skipping updating targets.');
|
|
47
|
+
}
|
|
48
|
+
(0, devkit_2.updateProjectConfiguration)(this.tree, this.project.name, {
|
|
49
|
+
...this.projectConfig,
|
|
58
50
|
});
|
|
59
51
|
}
|
|
60
52
|
}
|
|
@@ -12,8 +12,7 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
12
12
|
// TODO(leo): this will replace `targets` and become required once the full
|
|
13
13
|
// refactor is done.
|
|
14
14
|
supportedBuilderMigrators) {
|
|
15
|
-
|
|
16
|
-
super(tree, project.config, logger !== null && logger !== void 0 ? logger : new utilities_1.Logger(project.name));
|
|
15
|
+
super(tree, project.config, logger ?? new utilities_1.Logger(project.name));
|
|
17
16
|
this.options = options;
|
|
18
17
|
this.targets = targets;
|
|
19
18
|
// TODO(leo): need to handle targets until all are converted to builder migrators,
|
|
@@ -23,9 +22,9 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
23
22
|
this.targetNames = {};
|
|
24
23
|
this.project = {
|
|
25
24
|
name: project.name,
|
|
26
|
-
oldRoot:
|
|
25
|
+
oldRoot: this.projectConfig.root ?? '',
|
|
27
26
|
oldSourceRoot: this.projectConfig.sourceRoot ||
|
|
28
|
-
(0, devkit_1.joinPathFragments)(
|
|
27
|
+
(0, devkit_1.joinPathFragments)(this.projectConfig.root ?? '', 'src'),
|
|
29
28
|
newRoot: `${rootDir}/${project.name}`,
|
|
30
29
|
newSourceRoot: `${rootDir}/${project.name}/src`,
|
|
31
30
|
};
|
|
@@ -33,9 +32,8 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
33
32
|
this.createBuilderMigrators(supportedBuilderMigrators);
|
|
34
33
|
}
|
|
35
34
|
getWorkspaceRootFileTypesInfo() {
|
|
36
|
-
var _a;
|
|
37
35
|
const workspaceRootFileTypesInfo = {
|
|
38
|
-
eslint: Boolean(
|
|
36
|
+
eslint: Boolean(this.projectConfig.targets?.lint) ||
|
|
39
37
|
this.tree.exists(`${this.projectConfig.root}/.eslintrc.json`),
|
|
40
38
|
karma: this.builderMigrators.some((migrator) => migrator.rootFileType === 'karma' && migrator.isBuilderUsed()),
|
|
41
39
|
};
|
|
@@ -49,7 +47,6 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
49
47
|
this.logger.warn((0, utilities_1.getProjectValidationResultMessage)(validationResult));
|
|
50
48
|
}
|
|
51
49
|
validate() {
|
|
52
|
-
var _a, _b;
|
|
53
50
|
const errors = [];
|
|
54
51
|
// check project root
|
|
55
52
|
if (this.projectConfig.root === undefined ||
|
|
@@ -91,7 +88,7 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
91
88
|
];
|
|
92
89
|
allSupportedBuilders.push(...this.builderMigrators.map((migrator) => migrator.builderName));
|
|
93
90
|
const unsupportedBuilders = [];
|
|
94
|
-
Object.entries(
|
|
91
|
+
Object.entries(this.projectConfig.targets ?? {}).forEach(([targetName, target]) => {
|
|
95
92
|
if (!allSupportedBuilders.includes(target.executor)) {
|
|
96
93
|
unsupportedBuilders.push([targetName, target.executor]);
|
|
97
94
|
}
|
|
@@ -109,7 +106,7 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
109
106
|
}
|
|
110
107
|
// check for multiple targets for the same type of target
|
|
111
108
|
const targetTypes = Object.keys(this.targets);
|
|
112
|
-
const targetsByType = Object.entries(
|
|
109
|
+
const targetsByType = Object.entries(this.projectConfig.targets ?? {}).reduce((acc, [target, { executor }]) => {
|
|
113
110
|
targetTypes.forEach((targetType) => {
|
|
114
111
|
if (this.targets[targetType].builders.includes(executor)) {
|
|
115
112
|
acc[targetType].push(target);
|
|
@@ -117,7 +114,7 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
117
114
|
}
|
|
118
115
|
});
|
|
119
116
|
return acc;
|
|
120
|
-
}, targetTypes.reduce((acc, targetType) => (
|
|
117
|
+
}, targetTypes.reduce((acc, targetType) => ({ ...acc, [targetType]: [] }), {}));
|
|
121
118
|
targetTypes.forEach((targetType) => {
|
|
122
119
|
if (this.targets[targetType].acceptMultipleDefinitions ||
|
|
123
120
|
targetsByType[targetType].length <= 1) {
|
|
@@ -132,10 +129,10 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
132
129
|
return errors.length ? errors : null;
|
|
133
130
|
}
|
|
134
131
|
convertPath(originalPath) {
|
|
135
|
-
if (originalPath
|
|
132
|
+
if (originalPath?.startsWith(this.project.oldSourceRoot)) {
|
|
136
133
|
return (0, devkit_1.joinPathFragments)(this.project.newSourceRoot, originalPath.replace(this.project.oldSourceRoot, ''));
|
|
137
134
|
}
|
|
138
|
-
if (originalPath
|
|
135
|
+
if (originalPath?.startsWith(this.project.oldRoot)) {
|
|
139
136
|
return (0, devkit_1.joinPathFragments)(this.project.newRoot, originalPath.replace(this.project.oldRoot, ''));
|
|
140
137
|
}
|
|
141
138
|
return originalPath;
|
|
@@ -150,9 +147,8 @@ class ProjectMigrator extends migrator_1.Migrator {
|
|
|
150
147
|
this.skipMigration.includes(targetType));
|
|
151
148
|
}
|
|
152
149
|
collectTargetNames() {
|
|
153
|
-
var _a;
|
|
154
150
|
const targetTypes = Object.keys(this.targets);
|
|
155
|
-
Object.entries(
|
|
151
|
+
Object.entries(this.projectConfig.targets ?? {}).forEach(([targetName, target]) => {
|
|
156
152
|
targetTypes.forEach((targetType) => {
|
|
157
153
|
if (!this.targetNames[targetType] &&
|
|
158
154
|
this.targets[targetType].builders.includes(target.executor)) {
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ngAddGenerator = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const init_1 = require("../init/init");
|
|
6
5
|
const migrate_from_angular_cli_1 = require("./migrate-from-angular-cli");
|
|
7
6
|
function getWorkspaceType(tree) {
|
|
8
7
|
return tree.exists('nx.json') ? 'nx' : 'angular';
|
|
9
8
|
}
|
|
10
|
-
function ngAddGenerator(tree, options) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return yield (0, init_1.angularInitGenerator)(tree, options);
|
|
16
|
-
});
|
|
9
|
+
async function ngAddGenerator(tree, options) {
|
|
10
|
+
if (getWorkspaceType(tree) === 'angular') {
|
|
11
|
+
return await (0, migrate_from_angular_cli_1.migrateFromAngularCli)(tree, options);
|
|
12
|
+
}
|
|
13
|
+
return await (0, init_1.angularInitGenerator)(tree, options);
|
|
17
14
|
}
|
|
18
15
|
exports.ngAddGenerator = ngAddGenerator;
|
|
19
16
|
exports.default = ngAddGenerator;
|
|
@@ -5,21 +5,20 @@ const devkit_1 = require("@nx/devkit");
|
|
|
5
5
|
const version_utils_1 = require("../../../utils/version-utils");
|
|
6
6
|
const version_utils_2 = require("../../utils/version-utils");
|
|
7
7
|
function ensureAngularDevKitPeerDependenciesAreInstalled(tree) {
|
|
8
|
-
var _a;
|
|
9
8
|
const packagesToInstall = [
|
|
10
9
|
'@angular-devkit/core',
|
|
11
10
|
'@angular-devkit/schematics',
|
|
12
11
|
'@schematics/angular',
|
|
13
12
|
];
|
|
14
13
|
const { devDependencies, dependencies } = (0, devkit_1.readJson)(tree, 'package.json');
|
|
15
|
-
let angularCliVersion =
|
|
14
|
+
let angularCliVersion = devDependencies?.['@angular/cli'] ?? dependencies?.['@angular/cli'];
|
|
16
15
|
if (!angularCliVersion) {
|
|
17
16
|
const angularMajorVersion = (0, version_utils_2.getInstalledAngularMajorVersion)(tree);
|
|
18
17
|
const angularDevkitVersion = (0, version_utils_1.getPkgVersionForAngularMajorVersion)('angularDevkitVersion', angularMajorVersion);
|
|
19
18
|
angularCliVersion = angularDevkitVersion;
|
|
20
19
|
}
|
|
21
20
|
const filteredPackages = packagesToInstall
|
|
22
|
-
.filter((pkg) => !
|
|
21
|
+
.filter((pkg) => !devDependencies?.[pkg] && !dependencies?.[pkg])
|
|
23
22
|
.reduce((allPkgs, pkg) => {
|
|
24
23
|
allPkgs[pkg] = angularCliVersion;
|
|
25
24
|
return allPkgs;
|
|
@@ -30,6 +30,6 @@ function convertToNxProject(tree, projectName) {
|
|
|
30
30
|
project.name = projectName;
|
|
31
31
|
(0, devkit_1.addProjectConfiguration)(tree, projectName, project);
|
|
32
32
|
delete angularJson.projects[projectName];
|
|
33
|
-
(0, devkit_1.writeJson)(tree, 'angular.json',
|
|
33
|
+
(0, devkit_1.writeJson)(tree, 'angular.json', { ...angularJson, version: 1 });
|
|
34
34
|
}
|
|
35
35
|
exports.convertToNxProject = convertToNxProject;
|