@nrwl/angular 14.0.5 → 14.1.0

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.
Files changed (34) hide show
  1. package/package.json +7 -7
  2. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +40 -2
  3. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js.map +1 -1
  4. package/src/executors/file-server/file-server.impl.js +0 -3
  5. package/src/executors/file-server/file-server.impl.js.map +1 -1
  6. package/src/generators/application/lib/normalize-options.js +3 -3
  7. package/src/generators/application/lib/normalize-options.js.map +1 -1
  8. package/src/generators/application/lib/update-config-files.js +3 -0
  9. package/src/generators/application/lib/update-config-files.js.map +1 -1
  10. package/src/generators/library/lib/normalize-options.js +5 -4
  11. package/src/generators/library/lib/normalize-options.js.map +1 -1
  12. package/src/generators/library/lib/update-project.js +3 -0
  13. package/src/generators/library/lib/update-project.js.map +1 -1
  14. package/src/generators/ng-add/migrate-from-angular-cli.js +0 -4
  15. package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -1
  16. package/src/generators/ng-add/utilities/app.migrator.d.ts +16 -2
  17. package/src/generators/ng-add/utilities/app.migrator.js +278 -83
  18. package/src/generators/ng-add/utilities/app.migrator.js.map +1 -1
  19. package/src/generators/ng-add/utilities/e2e.migrator.d.ts +6 -2
  20. package/src/generators/ng-add/utilities/e2e.migrator.js +112 -70
  21. package/src/generators/ng-add/utilities/e2e.migrator.js.map +1 -1
  22. package/src/generators/ng-add/utilities/lib.migrator.d.ts +3 -5
  23. package/src/generators/ng-add/utilities/lib.migrator.js +26 -108
  24. package/src/generators/ng-add/utilities/lib.migrator.js.map +1 -1
  25. package/src/generators/ng-add/utilities/project.migrator.d.ts +9 -5
  26. package/src/generators/ng-add/utilities/project.migrator.js +120 -11
  27. package/src/generators/ng-add/utilities/project.migrator.js.map +1 -1
  28. package/src/generators/ng-add/utilities/types.d.ts +4 -0
  29. package/src/generators/utils/project.d.ts +1 -0
  30. package/src/generators/utils/project.js +13 -4
  31. package/src/generators/utils/project.js.map +1 -1
  32. package/src/utils/mfe/with-module-federation.js +6 -1
  33. package/src/utils/mfe/with-module-federation.js.map +1 -1
  34. package/src/utils/versions.js +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.E2eProjectMigrator = void 0;
3
+ exports.E2eMigrator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const cypress_1 = require("@nrwl/cypress");
6
6
  const devkit_1 = require("@nrwl/devkit");
@@ -8,17 +8,32 @@ const linter_1 = require("@nrwl/linter");
8
8
  const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
9
9
  const path_1 = require("path");
10
10
  const project_migrator_1 = require("./project.migrator");
11
- class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
12
- constructor(tree, options, project) {
13
- super(tree, options, project, 'apps');
11
+ const supportedTargets = {
12
+ e2e: {
13
+ acceptMultipleDefinitions: true,
14
+ builders: [
15
+ '@angular-devkit/build-angular:protractor',
16
+ '@cypress/schematic:cypress',
17
+ ],
18
+ },
19
+ };
20
+ class E2eMigrator extends project_migrator_1.ProjectMigrator {
21
+ constructor(tree, options, project, lintTargetName, logger) {
22
+ var _a;
23
+ super(tree, options, supportedTargets, project, 'apps', logger);
24
+ this.lintTargetName = lintTargetName;
14
25
  this.appConfig = project.config;
15
26
  this.appName = this.project.name;
27
+ // TODO(leo): temporary keep restriction to support projects with an "e2e" target,
28
+ // will be lifted soon when the migration is split per-builder and proper support
29
+ // for multiple targets for the same builder is added
30
+ this.targetNames.e2e = ((_a = this.appConfig.targets) === null || _a === void 0 ? void 0 : _a.e2e) ? 'e2e' : undefined;
16
31
  this.initialize();
17
32
  }
18
33
  migrate() {
19
34
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
20
- if (!this.project) {
21
- this.logger.warn('No e2e project was migrated because there was none declared in angular.json.');
35
+ if (!this.targetNames.e2e) {
36
+ this.logger.info('No e2e project was migrated because there was no "e2e" target declared in the "angular.json".');
22
37
  return;
23
38
  }
24
39
  if (this.isProtractorE2eProject()) {
@@ -28,6 +43,10 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
28
43
  yield this.migrateCypressE2eProject();
29
44
  }
30
45
  const tsConfig = (0, devkit_1.joinPathFragments)(this.projectConfig.root, 'tsconfig.json');
46
+ if (!this.tree.exists(tsConfig)) {
47
+ this.logger.warn('A "tsconfig.json" file could not be found for the e2e project. Skipping updating the tsConfig file.');
48
+ return;
49
+ }
31
50
  const rootOffset = (0, devkit_1.offsetFromRoot)(this.project.newRoot);
32
51
  (0, devkit_1.updateJson)(this.tree, tsConfig, (json) => {
33
52
  json.extends = `${rootOffset}${(0, typescript_1.getRootTsConfigPathInTree)(this.tree)}`;
@@ -37,59 +56,82 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
37
56
  });
38
57
  }
39
58
  validate() {
40
- if (!this.project) {
59
+ var _a;
60
+ if (!this.targetNames.e2e) {
41
61
  return null;
42
62
  }
43
- if (this.isProtractorE2eProject()) {
44
- if (this.tree.exists(this.projectConfig.targets.e2e.options.protractorConfig)) {
45
- return null;
46
- }
63
+ const e2eTarget = this.projectConfig.targets[this.targetNames.e2e];
64
+ if (!e2eTarget.options) {
47
65
  return [
48
66
  {
49
- message: `The "e2e" target is using a Protractor builder but the Protractor config file ` +
50
- `"${this.projectConfig.targets.e2e.options.protractorConfig}" could not be found.`,
51
- hint: `Make sure the "${this.appName}.architect.e2e.options.protractorConfig" is set to a valid path ` +
67
+ message: `The "${this.targetNames.e2e}" target is not specifying any options.`,
68
+ hint: `Make sure the "${this.appName}.architect.e2e.options" is correctly set ` +
52
69
  `or remove the "${this.appName}.architect.e2e" target if it is not valid.`,
53
70
  },
54
71
  ];
55
72
  }
56
- else if (this.isCypressE2eProject()) {
57
- const configFile = this.getCypressConfigFile();
58
- if (configFile && !this.tree.exists(configFile)) {
73
+ if (this.isProtractorE2eProject()) {
74
+ if (!e2eTarget.options.protractorConfig) {
75
+ return [
76
+ {
77
+ message: 'The "e2e" target is using the "@angular-devkit/build-angular:protractor" builder but the Protractor config file is not specified.',
78
+ hint: `Make sure the "${this.appName}.architect.e2e.options.protractorConfig" is correctly set ` +
79
+ `or remove the "${this.appName}.architect.e2e" target if it is not valid.`,
80
+ },
81
+ ];
82
+ }
83
+ if (!this.tree.exists(e2eTarget.options.protractorConfig)) {
84
+ return [
85
+ {
86
+ message: `The specified Protractor config file "${e2eTarget.options.protractorConfig}" in the "e2e" target could not be found.`,
87
+ hint: `Make sure the "${this.appName}.architect.e2e.options.protractorConfig" is set to a valid path ` +
88
+ `or remove the "${this.appName}.architect.e2e" target if it is not valid.`,
89
+ },
90
+ ];
91
+ }
92
+ return null;
93
+ }
94
+ if (this.isCypressE2eProject()) {
95
+ const configFile = (_a = this.projectConfig.targets[this.targetNames.e2e].options) === null || _a === void 0 ? void 0 : _a.configFile;
96
+ if (configFile === undefined &&
97
+ !this.tree.exists((0, devkit_1.joinPathFragments)(this.project.oldRoot, 'cypress.json'))) {
59
98
  return [
60
99
  {
61
- message: `The "e2e" target is using a Cypress builder but the Cypress config file "${configFile}" could not be found.`,
100
+ message: `The "e2e" target is using the "@cypress/schematic:cypress" builder but the "configFile" option is not specified ` +
101
+ `and a "cypress.json" file could not be found at the project root.`,
62
102
  hint: `Make sure the "${this.appName}.architect.e2e.options.configFile" option is set to a valid path, ` +
63
- `or that a "cypress.json" file exists in the workspace root, ` +
64
- `or remove the "${this.appName}.architect.e2e" target if it its not valid.`,
103
+ `or that a "cypress.json" file exists at the project root, ` +
104
+ `or remove the "${this.appName}.architect.e2e" target if it is not valid.`,
105
+ },
106
+ ];
107
+ }
108
+ else if (configFile && !this.tree.exists(configFile)) {
109
+ return [
110
+ {
111
+ message: `The specified Cypress config file "${configFile}" in the "e2e" target could not be found.`,
112
+ hint: `Make sure the "${this.appName}.architect.e2e.options.configFile" option is set to a valid path ` +
113
+ `or remove the "${this.appName}.architect.e2e" target if it is not valid.`,
65
114
  },
66
115
  ];
67
116
  }
68
- if (!this.tree.exists('cypress')) {
117
+ if (!this.tree.exists((0, devkit_1.joinPathFragments)(this.project.oldRoot, 'cypress'))) {
69
118
  return [
70
119
  {
71
- message: `The "e2e" target is using a Cypress builder but the "cypress" directory could not be found.`,
72
- hint: 'Make sure the "cypress" directory exists in the workspace root or remove the "e2e" target if it is not valid.',
120
+ message: `The "e2e" target is using the "@cypress/schematic:cypress" builder but the "cypress" directory could not be found at the project root.`,
121
+ hint: 'Make sure the "cypress" directory exists in the project root or remove the "e2e" target if it is not valid.',
73
122
  },
74
123
  ];
75
124
  }
76
125
  return null;
77
126
  }
78
- return [
79
- {
80
- message: `The "e2e" target is using an unsupported builder "${this.projectConfig.targets.e2e.executor}".`,
81
- hint: `The supported builders are "@cypress/schematic:cypress" and "@angular-devkit/build-angular:protractor".`,
82
- },
83
- ];
127
+ return null;
84
128
  }
85
129
  initialize() {
86
- var _a;
87
- if (!((_a = this.projectConfig.targets) === null || _a === void 0 ? void 0 : _a.e2e)) {
88
- this.project = null;
130
+ if (!this.targetNames.e2e) {
89
131
  return;
90
132
  }
91
133
  this.isProjectUsingEsLint =
92
- Boolean(this.appConfig.targets.lint) ||
134
+ Boolean(this.lintTargetName) ||
93
135
  this.tree.exists((0, devkit_1.joinPathFragments)(this.appConfig.root, '.eslintrc.json'));
94
136
  const name = this.project.name.endsWith('-e2e')
95
137
  ? this.project.name
@@ -101,7 +143,7 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
101
143
  newSourceRoot });
102
144
  }
103
145
  else if (this.isCypressE2eProject()) {
104
- this.project = Object.assign(Object.assign({}, this.project), { name, oldRoot: 'cypress', newRoot,
146
+ this.project = Object.assign(Object.assign({}, this.project), { name, oldSourceRoot: (0, devkit_1.joinPathFragments)(this.project.oldRoot, 'cypress'), newRoot,
105
147
  newSourceRoot });
106
148
  }
107
149
  }
@@ -110,13 +152,19 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
110
152
  this.moveDir(this.project.oldRoot, this.project.newRoot);
111
153
  this.projectConfig = {
112
154
  root: this.project.newRoot,
155
+ sourceRoot: this.project.newSourceRoot,
113
156
  projectType: 'application',
114
157
  targets: {
115
- e2e: Object.assign(Object.assign({}, this.projectConfig.targets.e2e), { options: Object.assign(Object.assign({}, this.projectConfig.targets.e2e.options), { protractorConfig: (0, devkit_1.joinPathFragments)(this.project.newRoot, (0, path_1.basename)(this.projectConfig.targets.e2e.options.protractorConfig)) }) }),
158
+ e2e: Object.assign(Object.assign({}, this.projectConfig.targets[this.targetNames.e2e]), { options: Object.assign(Object.assign({}, this.projectConfig.targets[this.targetNames.e2e].options), { protractorConfig: this.convertRootPath(this.projectConfig.targets[this.targetNames.e2e].options
159
+ .protractorConfig) }) }),
116
160
  },
117
161
  implicitDependencies: [this.appName],
118
162
  tags: [],
119
163
  };
164
+ // remove e2e target from the app config
165
+ delete this.appConfig.targets[this.targetNames.e2e];
166
+ (0, devkit_1.updateProjectConfiguration)(this.tree, this.appName, Object.assign({}, this.appConfig));
167
+ // add e2e project config
120
168
  (0, devkit_1.addProjectConfiguration)(this.tree, this.project.name, Object.assign({}, this.projectConfig), true);
121
169
  if (this.isProjectUsingEsLint) {
122
170
  yield (0, linter_1.lintProjectGenerator)(this.tree, {
@@ -129,9 +177,6 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
129
177
  skipFormat: true,
130
178
  });
131
179
  }
132
- // remove e2e target from the app config
133
- delete this.appConfig.targets.e2e;
134
- (0, devkit_1.updateProjectConfiguration)(this.tree, this.appName, Object.assign({}, this.appConfig));
135
180
  });
136
181
  }
137
182
  migrateCypressE2eProject() {
@@ -149,12 +194,12 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
149
194
  // replace the generated tsconfig.json with the project one
150
195
  const newTsConfigPath = (0, devkit_1.joinPathFragments)(this.project.newRoot, 'tsconfig.json');
151
196
  this.tree.delete(newTsConfigPath);
152
- this.moveFile((0, devkit_1.joinPathFragments)(this.project.oldRoot, 'tsconfig.json'), newTsConfigPath);
197
+ this.moveFile((0, devkit_1.joinPathFragments)(this.project.oldSourceRoot, 'tsconfig.json'), newTsConfigPath);
153
198
  // replace the generated source with the project source
154
199
  (0, devkit_1.visitNotIgnoredFiles)(this.tree, this.project.newSourceRoot, (filePath) => {
155
200
  this.tree.delete(filePath);
156
201
  });
157
- this.moveDir(this.project.oldRoot, (0, devkit_1.joinPathFragments)(this.project.newSourceRoot));
202
+ this.moveDir(this.project.oldSourceRoot, (0, devkit_1.joinPathFragments)(this.project.newSourceRoot));
158
203
  });
159
204
  }
160
205
  updateOrCreateCypressConfigFile(configFile) {
@@ -167,7 +212,7 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
167
212
  }
168
213
  else {
169
214
  cypressConfigFilePath = (0, devkit_1.joinPathFragments)(this.project.newRoot, 'cypress.json');
170
- this.tree.write(cypressConfigFilePath, JSON.stringify({
215
+ (0, devkit_1.writeJson)(this.tree, cypressConfigFilePath, {
171
216
  fileServerFolder: '.',
172
217
  fixturesFolder: './src/fixtures',
173
218
  integrationFolder: './src/integration',
@@ -178,7 +223,7 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
178
223
  videosFolder: `../../dist/cypress/${this.project.newRoot}/videos`,
179
224
  screenshotsFolder: `../../dist/cypress/${this.project.newRoot}/screenshots`,
180
225
  chromeWebSecurity: false,
181
- }));
226
+ });
182
227
  }
183
228
  return cypressConfigFilePath;
184
229
  }
@@ -187,7 +232,7 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
187
232
  * The `cypressProjectGenerator` function normalizes the project name. The
188
233
  * migration keeps the names for existing projects as-is to avoid any
189
234
  * confusion. The e2e project is technically new, but it's associated
190
- * to an existing application.
235
+ * to an existing application, so we keep it familiar.
191
236
  */
192
237
  const generatedProjectName = (0, devkit_1.names)(this.project.name).fileName;
193
238
  if (this.project.name !== generatedProjectName) {
@@ -202,40 +247,36 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
202
247
  this.projectConfig = (0, devkit_1.readProjectConfiguration)(this.tree, this.project.name);
203
248
  }
204
249
  if (this.isProjectUsingEsLint) {
205
- this.projectConfig.targets.lint.options.lintFilePatterns =
206
- this.projectConfig.targets.lint.options.lintFilePatterns.map((pattern) => pattern.replace(`apps/${generatedProjectName}`, this.project.newRoot));
250
+ // the generated cypress project always generates a "lint" target,
251
+ // in case the app was using a different name for it, we use it
252
+ const lintTarget = this.projectConfig.targets.lint;
253
+ if (this.lintTargetName && this.lintTargetName !== 'lint') {
254
+ this.projectConfig.targets[this.lintTargetName] =
255
+ this.projectConfig.targets.lint;
256
+ }
257
+ lintTarget.options.lintFilePatterns =
258
+ lintTarget.options.lintFilePatterns.map((pattern) => pattern.replace(`apps/${generatedProjectName}`, this.project.newRoot));
207
259
  }
208
- ['e2e', 'cypress-run', 'cypress-open'].forEach((target) => {
260
+ [this.targetNames.e2e, 'cypress-run', 'cypress-open'].forEach((target) => {
209
261
  if (this.appConfig.targets[target]) {
210
- this.projectConfig.targets[target] = this.updateE2eCypressTarget(this.appConfig.targets[target], this.projectConfig.targets[target], cypressConfigPath);
262
+ this.projectConfig.targets[target] = this.updateE2eCypressTarget(this.appConfig.targets[target], cypressConfigPath);
211
263
  }
212
264
  });
213
265
  (0, devkit_1.updateProjectConfiguration)(this.tree, this.project.name, Object.assign({}, this.projectConfig));
214
266
  delete this.appConfig.targets['cypress-run'];
215
267
  delete this.appConfig.targets['cypress-open'];
216
- delete this.appConfig.targets.e2e;
268
+ delete this.appConfig.targets[this.targetNames.e2e];
217
269
  (0, devkit_1.updateProjectConfiguration)(this.tree, this.appName, Object.assign({}, this.appConfig));
218
270
  }
219
- updateE2eCypressTarget(existingTarget, generatedTarget, cypressConfig) {
271
+ updateE2eCypressTarget(existingTarget, cypressConfig) {
220
272
  const updatedTarget = Object.assign(Object.assign({}, existingTarget), { executor: '@nrwl/cypress:cypress', options: Object.assign(Object.assign({}, existingTarget.options), { cypressConfig }) });
221
273
  delete updatedTarget.options.configFile;
222
- if (generatedTarget &&
223
- !generatedTarget.options.tsConfig &&
224
- updatedTarget.options.tsConfig) {
225
- // if what we generate doesn't have a tsConfig, we don't need it
226
- delete updatedTarget.options.tsConfig;
227
- }
228
- else if (updatedTarget.options.tsConfig) {
274
+ if (updatedTarget.options.tsConfig) {
229
275
  updatedTarget.options.tsConfig = (0, devkit_1.joinPathFragments)(this.project.newRoot, 'tsconfig.json');
230
276
  }
231
- if (updatedTarget.options.headless && updatedTarget.options.watch) {
232
- updatedTarget.options.headed = false;
233
- }
234
- else if (updatedTarget.options.headless === false &&
235
- !updatedTarget.options.watch) {
236
- updatedTarget.options.headed = true;
277
+ else {
278
+ delete updatedTarget.options.tsConfig;
237
279
  }
238
- delete updatedTarget.options.headless;
239
280
  return updatedTarget;
240
281
  }
241
282
  updateCypressConfigFilePaths(configFilePath) {
@@ -251,12 +292,12 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
251
292
  cypressConfig.fileServerFolder = '.';
252
293
  srcFoldersAndFiles.forEach((folderOrFile) => {
253
294
  if (cypressConfig[folderOrFile]) {
254
- cypressConfig[folderOrFile] = `./src/${(0, path_1.relative)(this.project.oldRoot, cypressConfig[folderOrFile])}`;
295
+ cypressConfig[folderOrFile] = `./src/${(0, path_1.relative)(this.project.oldSourceRoot, cypressConfig[folderOrFile])}`;
255
296
  }
256
297
  });
257
298
  distFolders.forEach((folder) => {
258
299
  if (cypressConfig[folder]) {
259
- cypressConfig[folder] = `../../dist/cypress/${this.project.newRoot}/${(0, path_1.relative)(this.project.oldRoot, cypressConfig[folder])}`;
300
+ cypressConfig[folder] = `../../dist/cypress/${this.project.newRoot}/${(0, path_1.relative)(this.project.oldSourceRoot, cypressConfig[folder])}`;
260
301
  }
261
302
  });
262
303
  stringOrArrayGlobs.forEach((stringOrArrayGlob) => {
@@ -273,10 +314,10 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
273
314
  (0, devkit_1.writeJson)(this.tree, configFilePath, cypressConfig);
274
315
  }
275
316
  replaceCypressGlobConfig(globPattern) {
276
- return globPattern.replace(new RegExp(`^(\\.\\/|\\/)?${this.project.oldRoot}\\/`), './src/');
317
+ return globPattern.replace(new RegExp(`^(\\.\\/|\\/)?${this.project.oldSourceRoot}\\/`), './src/');
277
318
  }
278
319
  getCypressConfigFile() {
279
- let cypressConfig = 'cypress.json';
320
+ let cypressConfig = (0, devkit_1.joinPathFragments)(this.project.oldRoot, 'cypress.json');
280
321
  const configFileOption = this.projectConfig.targets.e2e.options.configFile;
281
322
  if (configFileOption === false) {
282
323
  cypressConfig = undefined;
@@ -287,12 +328,13 @@ class E2eProjectMigrator extends project_migrator_1.ProjectMigrator {
287
328
  return cypressConfig;
288
329
  }
289
330
  isCypressE2eProject() {
290
- return (this.projectConfig.targets.e2e.executor === '@cypress/schematic:cypress');
331
+ return (this.projectConfig.targets[this.targetNames.e2e].executor ===
332
+ '@cypress/schematic:cypress');
291
333
  }
292
334
  isProtractorE2eProject() {
293
- return (this.projectConfig.targets.e2e.executor ===
335
+ return (this.projectConfig.targets[this.targetNames.e2e].executor ===
294
336
  '@angular-devkit/build-angular:protractor');
295
337
  }
296
338
  }
297
- exports.E2eProjectMigrator = E2eProjectMigrator;
339
+ exports.E2eMigrator = E2eMigrator;
298
340
  //# sourceMappingURL=e2e.migrator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"e2e.migrator.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ng-add/utilities/e2e.migrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"e2e.migrator.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ng-add/utilities/e2e.migrator.ts"],"names":[],"mappings":"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"}
@@ -3,24 +3,22 @@ import { GeneratorOptions } from '../schema';
3
3
  import { Logger } from './logger';
4
4
  import { ProjectMigrator } from './project.migrator';
5
5
  import { MigrationProjectConfiguration, ValidationResult } from './types';
6
- export declare class LibMigrator extends ProjectMigrator {
7
- private readonly supportedBuilders;
8
- private readonly targetNames;
6
+ declare type SupportedTargets = 'build' | 'test' | 'lint';
7
+ export declare class LibMigrator extends ProjectMigrator<SupportedTargets> {
9
8
  private oldEsLintConfigPath;
10
9
  private newEsLintConfigPath;
11
10
  constructor(tree: Tree, options: GeneratorOptions, project: MigrationProjectConfiguration, logger?: Logger);
12
11
  migrate(): Promise<void>;
13
12
  validate(): ValidationResult;
14
- private collectTargetNames;
15
13
  private moveProjectFiles;
16
14
  private updateProjectConfiguration;
17
15
  private updateNgPackageJson;
18
16
  private updateTsConfigs;
19
17
  private updateEsLintConfig;
20
- private updateCacheableOperations;
21
18
  private updateBuildTargetConfiguration;
22
19
  private updateLintTargetConfiguration;
23
20
  private updateTestTargetConfiguration;
24
21
  private updateTsConfigFileUsedByBuildTarget;
25
22
  private updateTsConfigFileUsedByTestTarget;
26
23
  }
24
+ export {};
@@ -9,18 +9,15 @@ const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
9
9
  const path_1 = require("path");
10
10
  const dependencies_1 = require("../../utils/dependencies");
11
11
  const project_migrator_1 = require("./project.migrator");
12
- const validation_logging_1 = require("./validation-logging");
12
+ const supportedTargets = {
13
+ build: { builders: ['@angular-devkit/build-angular:ng-packagr'] },
14
+ test: { builders: ['@angular-devkit/build-angular:karma'] },
15
+ lint: { builders: ['@angular-eslint/builder:lint'] },
16
+ };
13
17
  class LibMigrator extends project_migrator_1.ProjectMigrator {
14
18
  constructor(tree, options, project, logger) {
15
19
  var _a, _b;
16
- super(tree, options, project, 'libs', logger);
17
- this.supportedBuilders = {
18
- build: '@angular-devkit/build-angular:ng-packagr',
19
- test: '@angular-devkit/build-angular:karma',
20
- lint: '@angular-eslint/builder:lint',
21
- };
22
- this.targetNames = {};
23
- this.collectTargetNames();
20
+ super(tree, options, supportedTargets, project, 'libs', logger);
24
21
  if (this.targetNames.lint) {
25
22
  this.oldEsLintConfigPath =
26
23
  (_b = (_a = this.projectConfig.targets[this.targetNames.lint].options) === null || _a === void 0 ? void 0 : _a.eslintConfig) !== null && _b !== void 0 ? _b : (0, devkit_1.joinPathFragments)(this.project.oldRoot, '.eslintrc.json');
@@ -34,91 +31,16 @@ class LibMigrator extends project_migrator_1.ProjectMigrator {
34
31
  this.updateNgPackageJson();
35
32
  this.updateTsConfigs();
36
33
  this.updateEsLintConfig();
37
- this.updateCacheableOperations();
34
+ this.updateCacheableOperations([
35
+ this.targetNames.build,
36
+ this.targetNames.lint,
37
+ this.targetNames.test,
38
+ ].filter(Boolean));
38
39
  (0, dependencies_1.addBuildableLibrariesPostCssDependencies)(this.tree);
39
40
  });
40
41
  }
41
42
  validate() {
42
- var _a, _b;
43
- const result = [];
44
- // check project root
45
- if (!this.tree.exists(this.projectConfig.root)) {
46
- result.push({
47
- message: `The project root "${this.project.oldRoot}" could not be found.`,
48
- hint: `Make sure the value for "projects.${this.project.name}.root" is correct ` +
49
- `or remove the project if it is not valid.`,
50
- });
51
- }
52
- // check project source root
53
- if (this.projectConfig.sourceRoot &&
54
- !this.tree.exists(this.projectConfig.sourceRoot)) {
55
- result.push({
56
- message: `The project source root "${this.project.oldSourceRoot}" could not be found.`,
57
- hint: `Make sure the value for "projects.${this.project.name}.sourceRoot" is correct ` +
58
- `or remove the project if it is not valid.`,
59
- });
60
- }
61
- // check for usage of unsupported builders
62
- const allSupportedBuilders = [
63
- this.supportedBuilders.build,
64
- this.supportedBuilders.test,
65
- this.supportedBuilders.lint,
66
- ];
67
- const unsupportedBuilders = [];
68
- Object.entries((_a = this.projectConfig.targets) !== null && _a !== void 0 ? _a : {}).forEach(([targetName, target]) => {
69
- if (!allSupportedBuilders.includes(target.executor)) {
70
- unsupportedBuilders.push([targetName, target.executor]);
71
- }
72
- });
73
- if (unsupportedBuilders.length) {
74
- result.push({
75
- messageGroup: {
76
- title: 'Unsupported builders',
77
- messages: unsupportedBuilders.map(([target, builder]) => `The "${target}" target is using an unsupported builder "${builder}".`),
78
- },
79
- hint: `The supported builders for libraries are: ${(0, validation_logging_1.arrayToString)(allSupportedBuilders)}.`,
80
- });
81
- }
82
- // check for multiple targets for the same type of target
83
- const targetsByType = Object.entries((_b = this.projectConfig.targets) !== null && _b !== void 0 ? _b : {}).reduce((acc, [target, { executor }]) => {
84
- if (this.supportedBuilders.build === executor) {
85
- acc.build.push(target);
86
- }
87
- else if (this.supportedBuilders.test === executor) {
88
- acc.test.push(target);
89
- }
90
- else if (this.supportedBuilders.lint === executor) {
91
- acc.lint.push(target);
92
- }
93
- return acc;
94
- }, { build: [], lint: [], test: [] });
95
- ['build', 'lint', 'test'].forEach((targetType) => {
96
- if (targetsByType[targetType].length <= 1) {
97
- return;
98
- }
99
- result.push({
100
- message: `There is more than one target using a builder that is used to ${targetType} the project (${(0, validation_logging_1.arrayToString)(targetsByType[targetType])}).`,
101
- hint: `Make sure the project only has one target with a builder that is used to ${targetType} the project.`,
102
- });
103
- });
104
- return result.length ? result : null;
105
- }
106
- collectTargetNames() {
107
- var _a;
108
- Object.entries((_a = this.projectConfig.targets) !== null && _a !== void 0 ? _a : {}).forEach(([targetName, target]) => {
109
- if (!this.targetNames.build &&
110
- this.supportedBuilders.build === target.executor) {
111
- this.targetNames.build = targetName;
112
- }
113
- else if (!this.targetNames.test &&
114
- this.supportedBuilders.test === target.executor) {
115
- this.targetNames.test = targetName;
116
- }
117
- else if (!this.targetNames.lint &&
118
- this.supportedBuilders.lint === target.executor) {
119
- this.targetNames.lint = targetName;
120
- }
121
- });
43
+ return super.validate();
122
44
  }
123
45
  moveProjectFiles() {
124
46
  this.moveDir(this.project.oldRoot, this.project.newRoot);
@@ -196,23 +118,6 @@ class LibMigrator extends project_migrator_1.ProjectMigrator {
196
118
  return json;
197
119
  });
198
120
  }
199
- updateCacheableOperations() {
200
- var _a;
201
- const workspaceConfig = (0, devkit_1.readWorkspaceConfiguration)(this.tree);
202
- Object.keys((_a = workspaceConfig.tasksRunnerOptions) !== null && _a !== void 0 ? _a : {}).forEach((taskRunnerName) => {
203
- var _a;
204
- const taskRunner = workspaceConfig.tasksRunnerOptions[taskRunnerName];
205
- taskRunner.options.cacheableOperations = Array.from(new Set([
206
- ...((_a = taskRunner.options.cacheableOperations) !== null && _a !== void 0 ? _a : []),
207
- ...[
208
- this.targetNames.build,
209
- this.targetNames.lint,
210
- this.targetNames.test,
211
- ].filter(Boolean),
212
- ]));
213
- });
214
- (0, devkit_1.updateWorkspaceConfiguration)(this.tree, workspaceConfig);
215
- }
216
121
  updateBuildTargetConfiguration() {
217
122
  var _a, _b, _c, _d, _e;
218
123
  if (!this.targetNames.build) {
@@ -272,7 +177,20 @@ class LibMigrator extends project_migrator_1.ProjectMigrator {
272
177
  (0, devkit_1.joinPathFragments)(this.project.newRoot, (0, path_1.basename)(lintOptions.eslintConfig));
273
178
  lintOptions.lintFilePatterns =
274
179
  lintOptions.lintFilePatterns &&
275
- lintOptions.lintFilePatterns.map((pattern) => this.convertPath(pattern));
180
+ lintOptions.lintFilePatterns.map((pattern) => {
181
+ // replace the old source root with the new root, we want to lint all
182
+ // matching files in the project, not just the ones in the source root
183
+ if (pattern.startsWith(this.project.oldSourceRoot)) {
184
+ return (0, devkit_1.joinPathFragments)(this.project.newRoot, pattern.replace(this.project.oldSourceRoot, ''));
185
+ }
186
+ // replace the old root with the new root
187
+ if (pattern.startsWith(this.project.oldRoot)) {
188
+ return (0, devkit_1.joinPathFragments)(this.project.newRoot, pattern.replace(this.project.oldRoot, ''));
189
+ }
190
+ // do nothing, warn about the pattern
191
+ this.logger.warn(`The lint file pattern "${pattern}" specified in the "${this.targetNames.lint}" target is not contained in the project root or source root. The pattern will not be updated.`);
192
+ return pattern;
193
+ });
276
194
  if (!existEsLintConfigPath) {
277
195
  return;
278
196
  }