@nx/angular 16.1.3 → 16.2.0-beta.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 (160) hide show
  1. package/generators.d.ts +2 -0
  2. package/generators.js +2 -0
  3. package/generators.js.map +1 -1
  4. package/generators.json +14 -2
  5. package/migrations.json +21 -0
  6. package/package.json +10 -11
  7. package/src/builders/webpack-dev-server/schema.json +1 -1
  8. package/src/builders/webpack-server/schema.json +1 -1
  9. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +3 -4
  10. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js.map +1 -1
  11. package/src/generators/add-linting/schema.json +1 -1
  12. package/src/generators/application/lib/add-unit-test-runner.d.ts +1 -1
  13. package/src/generators/application/lib/add-unit-test-runner.js +13 -0
  14. package/src/generators/application/lib/add-unit-test-runner.js.map +1 -1
  15. package/src/generators/application/lib/normalize-options.js +3 -2
  16. package/src/generators/application/lib/normalize-options.js.map +1 -1
  17. package/src/generators/component/lib/validate-options.js +1 -2
  18. package/src/generators/component/lib/validate-options.js.map +1 -1
  19. package/src/generators/convert-to-with-mf/schema.json +1 -1
  20. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +30 -28
  21. package/src/generators/cypress-component-configuration/cypress-component-configuration.js.map +1 -1
  22. package/src/generators/directive/lib/validate-options.js +1 -2
  23. package/src/generators/directive/lib/validate-options.js.map +1 -1
  24. package/src/generators/host/host.js +1 -0
  25. package/src/generators/host/host.js.map +1 -1
  26. package/src/generators/host/schema.json +1 -1
  27. package/src/generators/init/schema.json +4 -4
  28. package/src/generators/library/files/base/package.json__tpl__ +1 -1
  29. package/src/generators/library/lib/create-files.js +1 -2
  30. package/src/generators/library/lib/create-files.js.map +1 -1
  31. package/src/generators/library/lib/normalize-options.js +6 -4
  32. package/src/generators/library/lib/normalize-options.js.map +1 -1
  33. package/src/generators/library/library.js +12 -0
  34. package/src/generators/library/library.js.map +1 -1
  35. package/src/generators/move/schema.json +1 -1
  36. package/src/generators/ng-add/migrate-from-angular-cli.d.ts +1 -1
  37. package/src/generators/ng-add/migrate-from-angular-cli.js +1 -2
  38. package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -1
  39. package/src/generators/ng-add/schema.d.ts +3 -1
  40. package/src/generators/ng-add/schema.json +1 -1
  41. package/src/generators/ng-add/utilities/index.d.ts +0 -1
  42. package/src/generators/ng-add/utilities/index.js +0 -1
  43. package/src/generators/ng-add/utilities/index.js.map +1 -1
  44. package/src/generators/ng-add/utilities/workspace.js +11 -6
  45. package/src/generators/ng-add/utilities/workspace.js.map +1 -1
  46. package/src/generators/ngrx/lib/add-imports-to-module.js +20 -4
  47. package/src/generators/ngrx/lib/add-imports-to-module.js.map +1 -1
  48. package/src/generators/ngrx/schema.json +5 -4
  49. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.actions.ts__tmpl__ +16 -0
  50. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.spec.ts__tmpl__ +37 -0
  51. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.ts__tmpl__ +22 -0
  52. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.spec.ts__tmpl__ +99 -0
  53. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.ts__tmpl__ +27 -0
  54. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.models.ts__tmpl__ +7 -0
  55. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.spec.ts__tmpl__ +37 -0
  56. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__ +41 -0
  57. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.spec.ts__tmpl__ +58 -0
  58. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__ +38 -0
  59. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +22 -0
  60. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +27 -0
  61. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.d.ts +3 -0
  62. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +39 -0
  63. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js.map +1 -0
  64. package/src/generators/ngrx-feature-store/lib/add-imports.d.ts +3 -0
  65. package/src/generators/ngrx-feature-store/lib/add-imports.js +103 -0
  66. package/src/generators/ngrx-feature-store/lib/add-imports.js.map +1 -0
  67. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.d.ts +3 -0
  68. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js +28 -0
  69. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js.map +1 -0
  70. package/src/generators/ngrx-feature-store/lib/generate-files.d.ts +3 -0
  71. package/src/generators/ngrx-feature-store/lib/generate-files.js +20 -0
  72. package/src/generators/ngrx-feature-store/lib/generate-files.js.map +1 -0
  73. package/src/generators/ngrx-feature-store/lib/index.d.ts +6 -0
  74. package/src/generators/ngrx-feature-store/lib/index.js +10 -0
  75. package/src/generators/ngrx-feature-store/lib/index.js.map +1 -0
  76. package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +7 -0
  77. package/src/generators/ngrx-feature-store/lib/normalize-options.js +20 -0
  78. package/src/generators/ngrx-feature-store/lib/normalize-options.js.map +1 -0
  79. package/src/generators/ngrx-feature-store/lib/validate-options.d.ts +3 -0
  80. package/src/generators/ngrx-feature-store/lib/validate-options.js +35 -0
  81. package/src/generators/ngrx-feature-store/lib/validate-options.js.map +1 -0
  82. package/src/generators/ngrx-feature-store/ngrx-feature-store.d.ts +5 -0
  83. package/src/generators/ngrx-feature-store/ngrx-feature-store.js +30 -0
  84. package/src/generators/ngrx-feature-store/ngrx-feature-store.js.map +1 -0
  85. package/src/generators/ngrx-feature-store/schema.d.ts +12 -0
  86. package/src/generators/ngrx-feature-store/schema.json +72 -0
  87. package/src/generators/ngrx-root-store/lib/add-imports.d.ts +3 -0
  88. package/src/generators/ngrx-root-store/lib/add-imports.js +80 -0
  89. package/src/generators/ngrx-root-store/lib/add-imports.js.map +1 -0
  90. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.d.ts +3 -0
  91. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js +28 -0
  92. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js.map +1 -0
  93. package/src/generators/ngrx-root-store/lib/index.d.ts +4 -0
  94. package/src/generators/ngrx-root-store/lib/index.js +8 -0
  95. package/src/generators/ngrx-root-store/lib/index.js.map +1 -0
  96. package/src/generators/ngrx-root-store/lib/normalize-options.d.ts +7 -0
  97. package/src/generators/ngrx-root-store/lib/normalize-options.js +37 -0
  98. package/src/generators/ngrx-root-store/lib/normalize-options.js.map +1 -0
  99. package/src/generators/ngrx-root-store/lib/validate-options.d.ts +3 -0
  100. package/src/generators/ngrx-root-store/lib/validate-options.js +33 -0
  101. package/src/generators/ngrx-root-store/lib/validate-options.js.map +1 -0
  102. package/src/generators/ngrx-root-store/ngrx-root-store.d.ts +5 -0
  103. package/src/generators/ngrx-root-store/ngrx-root-store.js +40 -0
  104. package/src/generators/ngrx-root-store/ngrx-root-store.js.map +1 -0
  105. package/src/generators/ngrx-root-store/schema.d.ts +10 -0
  106. package/src/generators/ngrx-root-store/schema.json +66 -0
  107. package/src/generators/pipe/lib/validate-options.js +1 -2
  108. package/src/generators/pipe/lib/validate-options.js.map +1 -1
  109. package/src/generators/remote/remote.js +1 -0
  110. package/src/generators/remote/remote.js.map +1 -1
  111. package/src/generators/remote/schema.json +1 -1
  112. package/src/generators/scam/lib/validate-options.js +1 -2
  113. package/src/generators/scam/lib/validate-options.js.map +1 -1
  114. package/src/generators/scam/schema.json +1 -1
  115. package/src/generators/scam-directive/lib/validate-options.js +1 -2
  116. package/src/generators/scam-directive/lib/validate-options.js.map +1 -1
  117. package/src/generators/scam-directive/schema.json +1 -1
  118. package/src/generators/scam-pipe/lib/validate-options.js +1 -2
  119. package/src/generators/scam-pipe/lib/validate-options.js.map +1 -1
  120. package/src/generators/scam-pipe/schema.json +1 -1
  121. package/src/generators/setup-mf/lib/add-remote-entry.js +0 -3
  122. package/src/generators/setup-mf/lib/add-remote-entry.js.map +1 -1
  123. package/src/generators/setup-mf/lib/index.d.ts +1 -0
  124. package/src/generators/setup-mf/lib/index.js +1 -0
  125. package/src/generators/setup-mf/lib/index.js.map +1 -1
  126. package/src/generators/setup-mf/lib/normalize-options.d.ts +3 -0
  127. package/src/generators/setup-mf/lib/normalize-options.js +10 -0
  128. package/src/generators/setup-mf/lib/normalize-options.js.map +1 -0
  129. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +1 -1
  130. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +9 -13
  131. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js.map +1 -1
  132. package/src/generators/setup-mf/schema.d.ts +8 -1
  133. package/src/generators/setup-mf/setup-mf.d.ts +1 -1
  134. package/src/generators/setup-mf/setup-mf.js +3 -4
  135. package/src/generators/setup-mf/setup-mf.js.map +1 -1
  136. package/src/generators/utils/path.d.ts +0 -1
  137. package/src/generators/utils/path.js +1 -16
  138. package/src/generators/utils/path.js.map +1 -1
  139. package/src/generators/utils/project.d.ts +3 -1
  140. package/src/generators/utils/project.js +17 -7
  141. package/src/generators/utils/project.js.map +1 -1
  142. package/src/generators/utils/selector.js +2 -2
  143. package/src/generators/utils/selector.js.map +1 -1
  144. package/src/generators/utils/testing.js +24 -7
  145. package/src/generators/utils/testing.js.map +1 -1
  146. package/src/generators/utils/validations.d.ts +1 -0
  147. package/src/generators/utils/validations.js +17 -1
  148. package/src/generators/utils/validations.js.map +1 -1
  149. package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js +45 -25
  150. package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js.map +1 -1
  151. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.d.ts +2 -0
  152. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +124 -0
  153. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js.map +1 -0
  154. package/src/utils/versions.d.ts +1 -1
  155. package/src/utils/versions.js +1 -1
  156. package/src/generators/cypress-component-configuration/files/cypress/support/commands.ts__tpl__ +0 -42
  157. package/src/generators/cypress-component-configuration/files/cypress.config.ts__tpl__ +0 -6
  158. package/src/generators/ng-add/utilities/normalize-options.d.ts +0 -4
  159. package/src/generators/ng-add/utilities/normalize-options.js +0 -30
  160. package/src/generators/ng-add/utilities/normalize-options.js.map +0 -1
@@ -5,6 +5,7 @@ export * from './change-build-target';
5
5
  export * from './fix-bootstrap';
6
6
  export * from './generate-config';
7
7
  export * from './get-remotes-with-ports';
8
+ export * from './normalize-options';
8
9
  export * from './set-tsconfig-target';
9
10
  export * from './setup-host-if-dynamic';
10
11
  export * from './setup-serve-target';
@@ -8,6 +8,7 @@ tslib_1.__exportStar(require("./change-build-target"), exports);
8
8
  tslib_1.__exportStar(require("./fix-bootstrap"), exports);
9
9
  tslib_1.__exportStar(require("./generate-config"), exports);
10
10
  tslib_1.__exportStar(require("./get-remotes-with-ports"), exports);
11
+ tslib_1.__exportStar(require("./normalize-options"), exports);
11
12
  tslib_1.__exportStar(require("./set-tsconfig-target"), exports);
12
13
  tslib_1.__exportStar(require("./setup-host-if-dynamic"), exports);
13
14
  tslib_1.__exportStar(require("./setup-serve-target"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC;AACzC,6DAAmC;AACnC,+DAAqC;AACrC,gEAAsC;AACtC,0DAAgC;AAChC,4DAAkC;AAClC,mEAAyC;AACzC,gEAAsC;AACtC,kEAAwC;AACxC,+DAAqC;AACrC,mEAAyC;AACzC,yEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC;AACzC,6DAAmC;AACnC,+DAAqC;AACrC,gEAAsC;AACtC,0DAAgC;AAChC,4DAAkC;AAClC,mEAAyC;AACzC,8DAAoC;AACpC,gEAAsC;AACtC,kEAAwC;AACxC,+DAAqC;AACrC,mEAAyC;AACzC,yEAA+C"}
@@ -0,0 +1,3 @@
1
+ import type { Tree } from '@nx/devkit';
2
+ import type { NormalizedOptions, Schema } from '../schema';
3
+ export declare function normalizeOptions(tree: Tree, options: Schema): NormalizedOptions;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeOptions = void 0;
4
+ const project_1 = require("../../utils/project");
5
+ function normalizeOptions(tree, options) {
6
+ var _a, _b;
7
+ return Object.assign(Object.assign({}, options), { federationType: (_a = options.federationType) !== null && _a !== void 0 ? _a : 'static', prefix: (_b = options.prefix) !== null && _b !== void 0 ? _b : (0, project_1.getProjectPrefix)(tree, options.appName) });
8
+ }
9
+ exports.normalizeOptions = normalizeOptions;
10
+ //# sourceMappingURL=normalize-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/normalize-options.ts"],"names":[],"mappings":";;;AACA,iDAAuD;AAGvD,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAAe;;IAEf,uCACK,OAAO,KACV,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,QAAQ,EAClD,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAA,0BAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IACjE;AACJ,CAAC;AATD,4CASC"}
@@ -1,3 +1,3 @@
1
- import { Tree } from 'nx/src/generators/tree';
1
+ import type { Tree } from '@nx/devkit';
2
2
  import { Schema } from '../schema';
3
3
  export declare function removeDeadCodeFromRemote(tree: Tree, options: Schema): void;
@@ -1,23 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.removeDeadCodeFromRemote = void 0;
4
- const project_configuration_1 = require("nx/src/generators/utils/project-configuration");
5
- const path_1 = require("nx/src/utils/path");
6
4
  const devkit_1 = require("@nx/devkit");
7
5
  function removeDeadCodeFromRemote(tree, options) {
8
- var _a;
9
6
  const projectName = options.appName;
10
- const project = (0, project_configuration_1.readProjectConfiguration)(tree, projectName);
7
+ const project = (0, devkit_1.readProjectConfiguration)(tree, projectName);
11
8
  ['css', 'less', 'scss', 'sass'].forEach((style) => {
12
- const pathToComponentStyle = (0, path_1.joinPathFragments)(project.sourceRoot, `app/app.component.${style}`);
9
+ const pathToComponentStyle = (0, devkit_1.joinPathFragments)(project.sourceRoot, `app/app.component.${style}`);
13
10
  if (tree.exists(pathToComponentStyle)) {
14
11
  tree.delete(pathToComponentStyle);
15
12
  }
16
13
  });
17
- tree.rename((0, path_1.joinPathFragments)(project.sourceRoot, 'app/nx-welcome.component.ts'), (0, path_1.joinPathFragments)(project.sourceRoot, 'app/remote-entry/nx-welcome.component.ts'));
18
- tree.delete((0, path_1.joinPathFragments)(project.sourceRoot, 'app/app.component.spec.ts'));
19
- tree.delete((0, path_1.joinPathFragments)(project.sourceRoot, 'app/app.component.html'));
20
- const pathToAppComponent = (0, path_1.joinPathFragments)(project.sourceRoot, 'app/app.component.ts');
14
+ tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/nx-welcome.component.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/remote-entry/nx-welcome.component.ts'));
15
+ tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.spec.ts'));
16
+ tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.html'));
17
+ const pathToAppComponent = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.ts');
21
18
  if (!options.standalone) {
22
19
  const componentContents = tree.read(pathToAppComponent, 'utf-8');
23
20
  const isInlineTemplate = !componentContents.includes('templateUrl');
@@ -27,7 +24,7 @@ function removeDeadCodeFromRemote(tree, options) {
27
24
  })
28
25
  export class AppComponent {}`;
29
26
  tree.write(pathToAppComponent, component);
30
- tree.write((0, path_1.joinPathFragments)(project.sourceRoot, 'app/app.module.ts'), `import { NgModule } from '@angular/core';
27
+ tree.write((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.module.ts'), `import { NgModule } from '@angular/core';
31
28
  import { BrowserModule } from '@angular/platform-browser';
32
29
  import { RouterModule } from '@angular/router';
33
30
  import { AppComponent } from './app.component';
@@ -48,11 +45,10 @@ export class AppModule {}`);
48
45
  }
49
46
  else {
50
47
  tree.delete(pathToAppComponent);
51
- const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : (0, devkit_1.readNxJson)(tree).npmScope;
52
- const remoteEntrySelector = `${prefix}-${projectName}-entry`;
53
48
  const pathToIndexHtml = project.targets.build.options.index;
54
49
  const indexContents = tree.read(pathToIndexHtml, 'utf-8');
55
- const rootSelectorRegex = new RegExp(`${prefix}-root`, 'ig');
50
+ const rootSelectorRegex = new RegExp(`${options.prefix || 'app'}-root`, 'ig');
51
+ const remoteEntrySelector = `${options.prefix || 'app'}-${projectName}-entry`;
56
52
  const newIndexContents = indexContents.replace(rootSelectorRegex, remoteEntrySelector);
57
53
  tree.write(pathToIndexHtml, newIndexContents);
58
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remove-dead-code-from-remote.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/remove-dead-code-from-remote.ts"],"names":[],"mappings":";;;AAEA,yFAAyF;AACzF,4CAAsD;AACtD,uCAAwC;AAExC,SAAgB,wBAAwB,CAAC,IAAU,EAAE,OAAe;;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,MAAM,OAAO,GAAG,IAAA,gDAAwB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE5D,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAChD,MAAM,oBAAoB,GAAG,IAAA,wBAAiB,EAC5C,OAAO,CAAC,UAAU,EAClB,qBAAqB,KAAK,EAAE,CAC7B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SACnC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CACT,IAAA,wBAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,6BAA6B,CAAC,EACpE,IAAA,wBAAiB,EACf,OAAO,CAAC,UAAU,EAClB,0CAA0C,CAC3C,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CACT,IAAA,wBAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,2BAA2B,CAAC,CACnE,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,IAAA,wBAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE7E,MAAM,kBAAkB,GAAG,IAAA,wBAAiB,EAC1C,OAAO,CAAC,UAAU,EAClB,sBAAsB,CACvB,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEpE,MAAM,SAAS,GACb,iBAAiB,CAAC,KAAK,CACrB,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAC9C,CAAC,CAAC,CAAC;YACJ;;;6BAGuB,CAAC;QAE1B,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAE1C,IAAI,CAAC,KAAK,CACR,IAAA,wBAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAC1D;;;;;;;;;;;;;;;;;0BAiBoB,CACrB,CAAC;KACH;SAAM;QACL,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC3D,MAAM,mBAAmB,GAAG,GAAG,MAAM,IAAI,WAAW,QAAQ,CAAC;QAE7D,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAC5C,iBAAiB,EACjB,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;KAC/C;AACH,CAAC;AAnFD,4DAmFC"}
1
+ {"version":3,"file":"remove-dead-code-from-remote.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/remove-dead-code-from-remote.ts"],"names":[],"mappings":";;;AACA,uCAAyE;AAGzE,SAAgB,wBAAwB,CAAC,IAAU,EAAE,OAAe;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,MAAM,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE5D,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAChD,MAAM,oBAAoB,GAAG,IAAA,0BAAiB,EAC5C,OAAO,CAAC,UAAU,EAClB,qBAAqB,KAAK,EAAE,CAC7B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SACnC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CACT,IAAA,0BAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,6BAA6B,CAAC,EACpE,IAAA,0BAAiB,EACf,OAAO,CAAC,UAAU,EAClB,0CAA0C,CAC3C,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CACT,IAAA,0BAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,2BAA2B,CAAC,CACnE,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE7E,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAC1C,OAAO,CAAC,UAAU,EAClB,sBAAsB,CACvB,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEpE,MAAM,SAAS,GACb,iBAAiB,CAAC,KAAK,CACrB,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAC9C,CAAC,CAAC,CAAC;YACJ;;;6BAGuB,CAAC;QAE1B,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAE1C,IAAI,CAAC,KAAK,CACR,IAAA,0BAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAC1D;;;;;;;;;;;;;;;;;0BAiBoB,CACrB,CAAC;KACH;SAAM;QACL,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEhC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,OAAO,EACjC,IAAI,CACL,CAAC;QACF,MAAM,mBAAmB,GAAG,GAC1B,OAAO,CAAC,MAAM,IAAI,KACpB,IAAI,WAAW,QAAQ,CAAC;QACxB,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAC5C,iBAAiB,EACjB,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;KAC/C;AACH,CAAC;AArFD,4DAqFC"}
@@ -1,10 +1,12 @@
1
+ type FederationType = 'static' | 'dynamic';
2
+
1
3
  export interface Schema {
2
4
  appName: string;
3
5
  mfType: 'host' | 'remote';
4
6
  port?: number;
5
7
  remotes?: string[];
6
8
  host?: string;
7
- federationType?: 'static' | 'dynamic';
9
+ federationType?: FederationType;
8
10
  routing?: boolean;
9
11
  skipFormat?: boolean;
10
12
  skipPackageJson?: boolean;
@@ -13,3 +15,8 @@ export interface Schema {
13
15
  standalone?: boolean;
14
16
  skipE2E?: boolean;
15
17
  }
18
+
19
+ export interface NormalizedOptions extends Schema {
20
+ federationType: FederationType;
21
+ prefix: string | undefined;
22
+ }
@@ -1,4 +1,4 @@
1
1
  import type { Tree } from '@nx/devkit';
2
2
  import type { Schema } from './schema';
3
- export declare function setupMf(tree: Tree, options: Schema): Promise<() => void>;
3
+ export declare function setupMf(tree: Tree, rawOptions: Schema): Promise<() => void>;
4
4
  export default setupMf;
@@ -7,15 +7,14 @@ const lib_1 = require("./lib");
7
7
  const version_utils_1 = require("../utils/version-utils");
8
8
  const versions_1 = require("../../utils/versions");
9
9
  const semver_1 = require("semver");
10
- function setupMf(tree, options) {
11
- var _a;
10
+ function setupMf(tree, rawOptions) {
12
11
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
12
  const installedAngularInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
14
- if ((0, semver_1.lt)(installedAngularInfo.version, '14.1.0') && options.standalone) {
13
+ if ((0, semver_1.lt)(installedAngularInfo.version, '14.1.0') && rawOptions.standalone) {
15
14
  throw new Error(`The --standalone flag is not supported in your current version of Angular (${installedAngularInfo.version}). Please update to a version of Angular that supports Standalone Components (>= 14.1.0).`);
16
15
  }
16
+ const options = (0, lib_1.normalizeOptions)(tree, rawOptions);
17
17
  const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
18
- options.federationType = (_a = options.federationType) !== null && _a !== void 0 ? _a : 'static';
19
18
  if (options.mfType === 'host') {
20
19
  (0, lib_1.setupHostIfDynamic)(tree, options);
21
20
  (0, lib_1.updateHostAppRoutes)(tree, options);
@@ -1 +1 @@
1
- {"version":3,"file":"setup-mf.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/setup-mf/setup-mf.ts"],"names":[],"mappings":";;;;AACA,uCAIoB;AAGpB,+BAae;AACf,0DAAwE;AACxE,mDAAiD;AACjD,mCAA4B;AAE5B,SAAsB,OAAO,CAAC,IAAU,EAAE,OAAe;;;QACvD,MAAM,oBAAoB,GAAG,IAAA,8CAA8B,EAAC,IAAI,CAAC,CAAC;QAElE,IAAI,IAAA,WAAE,EAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;YACpE,MAAM,IAAI,KAAK,CACb,8EAA8E,oBAAoB,CAAC,OAAO,2FAA2F,CACtM,CAAC;SACH;QACD,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEtE,OAAO,CAAC,cAAc,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,QAAQ,CAAC;QAE5D,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;YAC7B,IAAA,wBAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClC,IAAA,yBAAmB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACpC;QAED,IAAI,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC/B,IAAA,qBAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAA,oBAAc,EAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;YAClD,IAAA,8BAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxC,WAAW,GAAG,IAAA,qCAA4B,EACxC,IAAI,EACJ,EAAE,EACF,EAAE,SAAS,EAAE,oBAAS,EAAE,CACzB,CAAC;SACH;QAED,MAAM,gBAAgB,GAAG,IAAA,yBAAmB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE5D,IAAA,2BAAqB,EAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAE3E,IAAA,uBAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAA,0BAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpC,IAAA,sBAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhC,IAAA,kBAAY,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,IAAA,iCAA2B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC5C;QAED,eAAe;QACf,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,WAAW,CAAC;;CACpB;AAjDD,0BAiDC;AAED,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"setup-mf.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/setup-mf/setup-mf.ts"],"names":[],"mappings":";;;;AACA,uCAIoB;AAGpB,+BAce;AACf,0DAAwE;AACxE,mDAAiD;AACjD,mCAA4B;AAE5B,SAAsB,OAAO,CAAC,IAAU,EAAE,UAAkB;;QAC1D,MAAM,oBAAoB,GAAG,IAAA,8CAA8B,EAAC,IAAI,CAAC,CAAC;QAClE,IAAI,IAAA,WAAE,EAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE;YACvE,MAAM,IAAI,KAAK,CACb,8EAA8E,oBAAoB,CAAC,OAAO,2FAA2F,CACtM,CAAC;SACH;QAED,MAAM,OAAO,GAAG,IAAA,sBAAgB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEtE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;YAC7B,IAAA,wBAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClC,IAAA,yBAAmB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACpC;QAED,IAAI,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC/B,IAAA,qBAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAA,oBAAc,EAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;YAClD,IAAA,8BAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxC,WAAW,GAAG,IAAA,qCAA4B,EACxC,IAAI,EACJ,EAAE,EACF,EAAE,SAAS,EAAE,oBAAS,EAAE,CACzB,CAAC;SACH;QAED,MAAM,gBAAgB,GAAG,IAAA,yBAAmB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE5D,IAAA,2BAAqB,EAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAE3E,IAAA,uBAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAA,0BAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpC,IAAA,sBAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhC,IAAA,kBAAY,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,IAAA,iCAA2B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC5C;QAED,eAAe;QACf,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CAAA;AAhDD,0BAgDC;AAED,kBAAe,OAAO,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import type { Tree } from '@nx/devkit';
2
2
  export declare function pathStartsWith(path1: string, path2: string): boolean;
3
3
  export declare function getRelativeImportToFile(sourceFilePath: string, targetFilePath: string): string;
4
- export declare function checkPathUnderProjectRoot(tree: Tree, projectName: string, path: string): void;
5
4
  export type PathGenerationOptions = {
6
5
  name: string;
7
6
  project: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeNameAndPaths = exports.checkPathUnderProjectRoot = exports.getRelativeImportToFile = exports.pathStartsWith = void 0;
3
+ exports.normalizeNameAndPaths = exports.getRelativeImportToFile = exports.pathStartsWith = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const path_1 = require("path");
6
6
  const names_1 = require("./names");
@@ -15,21 +15,6 @@ function getRelativeImportToFile(sourceFilePath, targetFilePath) {
15
15
  return `./${(0, devkit_1.joinPathFragments)(relativeDirToTarget, (0, path_1.basename)(targetFilePath, '.ts'))}`;
16
16
  }
17
17
  exports.getRelativeImportToFile = getRelativeImportToFile;
18
- function checkPathUnderProjectRoot(tree, projectName, path) {
19
- if (!path) {
20
- return;
21
- }
22
- const { root } = (0, devkit_1.readProjectConfiguration)(tree, projectName);
23
- let pathToComponent = (0, devkit_1.normalizePath)(path);
24
- pathToComponent = pathToComponent.startsWith('/')
25
- ? pathToComponent.slice(1)
26
- : pathToComponent;
27
- if (!pathStartsWith(pathToComponent, root)) {
28
- throw new Error(`The path provided (${path}) does not exist under the project root (${root}). ` +
29
- `Please make sure to provide a path that exists under the project root.`);
30
- }
31
- }
32
- exports.checkPathUnderProjectRoot = checkPathUnderProjectRoot;
33
18
  function normalizeNameAndPaths(tree, options) {
34
19
  var _a;
35
20
  const { root, sourceRoot, projectType } = (0, devkit_1.readProjectConfiguration)(tree, options.project);
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/path.ts"],"names":[],"mappings":";;;AACA,uCAMoB;AACpB,+BAAmD;AACnD,mCAA4C;AAE5C,SAAgB,cAAc,CAAC,KAAa,EAAE,KAAa;IACzD,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,sBAAa,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,sBAAa,EAAE,KAAK,CAAC,CAAC;IAEhE,OAAO,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACrD,CAAC;AALD,wCAKC;AAED,SAAgB,uBAAuB,CACrC,cAAsB,EACtB,cAAsB;IAEtB,MAAM,mBAAmB,GAAG,IAAA,eAAQ,EAClC,IAAA,cAAO,EAAC,cAAc,CAAC,EACvB,IAAA,cAAO,EAAC,cAAc,CAAC,CACxB,CAAC;IAEF,OAAO,KAAK,IAAA,0BAAiB,EAC3B,mBAAmB,EACnB,IAAA,eAAQ,EAAC,cAAc,EAAE,KAAK,CAAC,CAChC,EAAE,CAAC;AACN,CAAC;AAbD,0DAaC;AAED,SAAgB,yBAAyB,CACvC,IAAU,EACV,WAAmB,EACnB,IAAY;IAEZ,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;KACR;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE7D,IAAI,eAAe,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC;IAC1C,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;QAC/C,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,eAAe,CAAC;IAEpB,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE;QAC1C,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,4CAA4C,IAAI,KAAK;YAC7E,wEAAwE,CAC3E,CAAC;KACH;AACH,CAAC;AAtBD,8DAsBC;AAoBD,SAAgB,qBAAqB,CACnC,IAAU,EACV,OAA8B;;IAE9B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAA,iCAAwB,EAChE,IAAI,EACJ,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,MAAM,iBAAiB,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAA,0BAAiB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,MAAM,IAAI,GACR,MAAA,OAAO,CAAC,IAAI,mCACZ,IAAA,0BAAiB,EACf,iBAAiB,EACjB,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAC7C,QAAQ,CACT,CAAC;IAEJ,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI;QAC5B,CAAC,CAAC,IAAA,sBAAa,EAAC,IAAI,CAAC;QACrB,CAAC,CAAC,IAAA,0BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;QAC3B,CAAC,CAAC,GAAG,IAAI,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC3C,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,QAAQ,GAAG,IAAA,0BAAiB,EAAC,SAAS,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;IAEhE,OAAO;QACL,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,UAAU;KACX,CAAC;AACJ,CAAC;AAvCD,sDAuCC"}
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/path.ts"],"names":[],"mappings":";;;AACA,uCAMoB;AACpB,+BAAmD;AACnD,mCAA4C;AAE5C,SAAgB,cAAc,CAAC,KAAa,EAAE,KAAa;IACzD,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,sBAAa,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,sBAAa,EAAE,KAAK,CAAC,CAAC;IAEhE,OAAO,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACrD,CAAC;AALD,wCAKC;AAED,SAAgB,uBAAuB,CACrC,cAAsB,EACtB,cAAsB;IAEtB,MAAM,mBAAmB,GAAG,IAAA,eAAQ,EAClC,IAAA,cAAO,EAAC,cAAc,CAAC,EACvB,IAAA,cAAO,EAAC,cAAc,CAAC,CACxB,CAAC;IAEF,OAAO,KAAK,IAAA,0BAAiB,EAC3B,mBAAmB,EACnB,IAAA,eAAQ,EAAC,cAAc,EAAE,KAAK,CAAC,CAChC,EAAE,CAAC;AACN,CAAC;AAbD,0DAaC;AAoBD,SAAgB,qBAAqB,CACnC,IAAU,EACV,OAA8B;;IAE9B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAA,iCAAwB,EAChE,IAAI,EACJ,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,MAAM,iBAAiB,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAA,0BAAiB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,MAAM,IAAI,GACR,MAAA,OAAO,CAAC,IAAI,mCACZ,IAAA,0BAAiB,EACf,iBAAiB,EACjB,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAC7C,QAAQ,CACT,CAAC;IAEJ,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI;QAC5B,CAAC,CAAC,IAAA,sBAAa,EAAC,IAAI,CAAC;QACrB,CAAC,CAAC,IAAA,0BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;QAC3B,CAAC,CAAC,GAAG,IAAI,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC3C,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,QAAQ,GAAG,IAAA,0BAAiB,EAAC,SAAS,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;IAEhE,OAAO;QACL,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,UAAU;KACX,CAAC;AACJ,CAAC;AAvCD,sDAuCC"}
@@ -1,3 +1,5 @@
1
+ import type { Tree } from '@nx/devkit';
1
2
  export declare function normalizeDirectory(appName: string, directoryName: string): string;
2
3
  export declare function normalizeProjectName(appName: string, directoryName: string): string;
3
- export declare function normalizePrefix(prefix: string | undefined, npmScope: string | undefined): string;
4
+ export declare function normalizeNewProjectPrefix(prefix: string | undefined, npmScope: string | undefined, fallbackPrefix: string): string;
5
+ export declare function getProjectPrefix(tree: Tree, project: string): string | undefined;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizePrefix = exports.normalizeProjectName = exports.normalizeDirectory = void 0;
3
+ exports.getProjectPrefix = exports.normalizeNewProjectPrefix = exports.normalizeProjectName = exports.normalizeDirectory = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
+ const get_npm_scope_1 = require("@nx/js/src/utils/package-json/get-npm-scope");
5
6
  function normalizeDirectory(appName, directoryName) {
6
7
  return directoryName
7
8
  ? `${(0, devkit_1.names)(directoryName).fileName}/${(0, devkit_1.names)(appName).fileName}`
@@ -12,14 +13,17 @@ function normalizeProjectName(appName, directoryName) {
12
13
  return normalizeDirectory(appName, directoryName).replace(/\//g, '-');
13
14
  }
14
15
  exports.normalizeProjectName = normalizeProjectName;
15
- function normalizePrefix(prefix, npmScope) {
16
- if (prefix) {
17
- return prefix;
18
- }
16
+ function normalizeNewProjectPrefix(prefix, npmScope, fallbackPrefix) {
19
17
  // Prefix needs to be a valid html selector, if npmScope it's not valid, we don't default
20
18
  // to it and let it fall through to the Angular schematic to handle it
21
19
  // https://github.com/angular/angular-cli/blob/1c634cd327e5a850553b258aa2d5e6a6b2c75c65/packages/schematics/angular/component/index.ts#L130
22
20
  const htmlSelectorRegex = /^[a-zA-Z][.0-9a-zA-Z]*(:?-[a-zA-Z][.0-9a-zA-Z]*)*$/;
21
+ if (prefix) {
22
+ if (!htmlSelectorRegex.test(prefix)) {
23
+ throw new Error('The provided "prefix" is invalid. The prefix must start with a letter, and must contain only alphanumeric characters or dashes. When adding a dash the segment after the dash must also start with a letter.');
24
+ }
25
+ return prefix;
26
+ }
23
27
  if (npmScope && !htmlSelectorRegex.test(npmScope)) {
24
28
  throw new Error(`The "--prefix" option was not provided, therefore attempted to use the "npmScope" defined in "nx.json" to set the application's selector prefix, but it is invalid.
25
29
 
@@ -31,7 +35,13 @@ If you encountered this error when creating a new Nx Workspace, the workspace na
31
35
 
32
36
  Valid selector prefixes must start with a letter, and must contain only alphanumeric characters or dashes. When adding a dash the segment after the dash must also start with a letter.`);
33
37
  }
34
- return npmScope || 'app';
38
+ return npmScope || fallbackPrefix;
39
+ }
40
+ exports.normalizeNewProjectPrefix = normalizeNewProjectPrefix;
41
+ function getProjectPrefix(tree, project) {
42
+ var _a;
43
+ return ((_a = (0, devkit_1.readProjectConfiguration)(tree, project)
44
+ .prefix) !== null && _a !== void 0 ? _a : (0, get_npm_scope_1.getNpmScope)(tree));
35
45
  }
36
- exports.normalizePrefix = normalizePrefix;
46
+ exports.getProjectPrefix = getProjectPrefix;
37
47
  //# sourceMappingURL=project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/project.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAEnC,SAAgB,kBAAkB,CAChC,OAAe,EACf,aAAqB;IAErB,OAAO,aAAa;QAClB,CAAC,CAAC,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC,QAAQ,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;QAC/D,CAAC,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;AAC9B,CAAC;AAPD,gDAOC;AAED,SAAgB,oBAAoB,CAClC,OAAe,EACf,aAAqB;IAErB,OAAO,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxE,CAAC;AALD,oDAKC;AAED,SAAgB,eAAe,CAC7B,MAA0B,EAC1B,QAA4B;IAE5B,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC;KACf;IAED,yFAAyF;IACzF,sEAAsE;IACtE,2IAA2I;IAC3I,MAAM,iBAAiB,GACrB,oDAAoD,CAAC;IACvD,IAAI,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC;;;;;;;;wLAQoK,CAAC,CAAC;KACvL;IAED,OAAO,QAAQ,IAAI,KAAK,CAAC;AAC3B,CAAC;AA1BD,0CA0BC"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/project.ts"],"names":[],"mappings":";;;AACA,uCAAyE;AAEzE,+EAA0E;AAE1E,SAAgB,kBAAkB,CAChC,OAAe,EACf,aAAqB;IAErB,OAAO,aAAa;QAClB,CAAC,CAAC,GAAG,IAAA,cAAK,EAAC,aAAa,CAAC,CAAC,QAAQ,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;QAC/D,CAAC,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;AAC9B,CAAC;AAPD,gDAOC;AAED,SAAgB,oBAAoB,CAClC,OAAe,EACf,aAAqB;IAErB,OAAO,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxE,CAAC;AALD,oDAKC;AAED,SAAgB,yBAAyB,CACvC,MAA0B,EAC1B,QAA4B,EAC5B,cAAsB;IAEtB,yFAAyF;IACzF,sEAAsE;IACtE,2IAA2I;IAC3I,MAAM,iBAAiB,GACrB,oDAAoD,CAAC;IAEvD,IAAI,MAAM,EAAE;QACV,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CACb,8MAA8M,CAC/M,CAAC;SACH;QAED,OAAO,MAAM,CAAC;KACf;IAED,IAAI,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC;;;;;;;;wLAQoK,CAAC,CAAC;KACvL;IAED,OAAO,QAAQ,IAAI,cAAc,CAAC;AACpC,CAAC;AAlCD,8DAkCC;AAED,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAAe;;IAEf,OAAO,CACL,MAAC,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAiC;SACrE,MAAM,mCAAI,IAAA,2BAAW,EAAC,IAAI,CAAC,CAC/B,CAAC;AACJ,CAAC;AARD,4CAQC"}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildSelector = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
+ const get_npm_scope_1 = require("@nx/js/src/utils/package-json/get-npm-scope");
5
6
  function buildSelector(tree, name, prefix, projectPrefix, casing) {
6
- var _a;
7
7
  let selector = name;
8
- prefix !== null && prefix !== void 0 ? prefix : (prefix = projectPrefix !== null && projectPrefix !== void 0 ? projectPrefix : (_a = (0, devkit_1.readNxJson)(tree)) === null || _a === void 0 ? void 0 : _a.npmScope);
8
+ prefix !== null && prefix !== void 0 ? prefix : (prefix = projectPrefix !== null && projectPrefix !== void 0 ? projectPrefix : (0, get_npm_scope_1.getNpmScope)(tree));
9
9
  if (prefix) {
10
10
  selector = `${prefix}-${selector}`;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/selector.ts"],"names":[],"mappings":";;;AACA,uCAA+C;AAE/C,SAAgB,aAAa,CAC3B,IAAU,EACV,IAAY,EACZ,MAA0B,EAC1B,aAAiC,EACjC,MAAyE;;IAEzE,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,MAAA,IAAA,mBAAU,EAAC,IAAI,CAAC,0CAAE,QAAQ,EAAC;IACvD,IAAI,MAAM,EAAE;QACV,QAAQ,GAAG,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;KACpC;IAED,OAAO,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAdD,sCAcC"}
1
+ {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/selector.ts"],"names":[],"mappings":";;;AACA,uCAAmC;AAEnC,+EAA0E;AAE1E,SAAgB,aAAa,CAC3B,IAAU,EACV,IAAY,EACZ,MAA0B,EAC1B,aAAiC,EACjC,MAAyE;IAEzE,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAA,2BAAW,EAAC,IAAI,CAAC,EAAC;IAC9C,IAAI,MAAM,EAAE;QACV,QAAQ,GAAG,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;KACpC;IAED,OAAO,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAdD,sCAcC"}
@@ -49,8 +49,6 @@ function createStorybookTestWorkspaceForLib(libName) {
49
49
  let tree = (0, testing_1.createTreeWithEmptyWorkspace)({ layout: 'apps-libs' });
50
50
  addAngularPluginPeerDeps(tree);
51
51
  tree.write('.gitignore', '');
52
- const { wrapAngularDevkitSchematic } = require('@nx/devkit/ngcli-adapter');
53
- const moduleGenerator = wrapAngularDevkitSchematic('@schematics/angular', 'module');
54
52
  yield (0, library_1.libraryGenerator)(tree, {
55
53
  name: libName,
56
54
  buildable: false,
@@ -84,7 +82,7 @@ export class TestButtonComponent {
84
82
  tree.write(modulePath, `import * as ButtonExports from './test-button/test-button.component';
85
83
  ${tree.read(modulePath)}`);
86
84
  // create a module with component that gets exported in a barrel file
87
- yield moduleGenerator(tree, {
85
+ generateModule(tree, {
88
86
  name: 'barrel',
89
87
  project: libName,
90
88
  });
@@ -105,7 +103,7 @@ import { BarrelButtonComponent } from './barrel-button';
105
103
  })
106
104
  export class BarrelModule {}`);
107
105
  // create a module with components that get Angular exported and declared by variable
108
- yield moduleGenerator(tree, {
106
+ generateModule(tree, {
109
107
  name: 'variable-declare',
110
108
  project: libName,
111
109
  });
@@ -138,7 +136,7 @@ const COMPONENTS = [
138
136
  })
139
137
  export class VariableDeclareModule {}`);
140
138
  // create a module with components that get Angular exported and declared by variable
141
- yield moduleGenerator(tree, {
139
+ generateModule(tree, {
142
140
  name: 'variable-spread-declare',
143
141
  project: libName,
144
142
  });
@@ -177,7 +175,7 @@ const COMPONENTS = [
177
175
  })
178
176
  export class VariableSpreadDeclareModule {}`);
179
177
  // create a module where declared components are pulled from a static member of the module
180
- yield moduleGenerator(tree, {
178
+ generateModule(tree, {
181
179
  name: 'static-member-declarations',
182
180
  project: libName,
183
181
  });
@@ -207,7 +205,7 @@ export class StaticMemberDeclarationsModule {
207
205
  static readonly COMPONENTS = [Cmp1Component, Cmp2Component];
208
206
  }`);
209
207
  // create another button in a nested subpath
210
- yield moduleGenerator(tree, {
208
+ generateModule(tree, {
211
209
  name: 'nested',
212
210
  project: libName,
213
211
  path: `libs/${libName}/src/lib`,
@@ -229,4 +227,23 @@ exports.createStorybookTestWorkspaceForLib = createStorybookTestWorkspaceForLib;
229
227
  function addAngularPluginPeerDeps(tree) {
230
228
  (0, devkit_1.updateJson)(tree, 'package.json', (json) => (Object.assign(Object.assign({}, json), { devDependencies: Object.assign(Object.assign({}, json.devDependencies), { '@angular-devkit/core': versions_1.angularDevkitVersion, '@angular-devkit/schematics': versions_1.angularDevkitVersion, '@schematics/angular': versions_1.angularDevkitVersion }) })));
231
229
  }
230
+ function generateModule(tree, options) {
231
+ var _a;
232
+ const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
233
+ if (options.path === undefined) {
234
+ const sourceRoot = (_a = project.sourceRoot) !== null && _a !== void 0 ? _a : `${project.root}/src`;
235
+ const projectDirName = project.projectType === 'application' ? 'app' : 'lib';
236
+ options.path = `${sourceRoot}/${projectDirName}`;
237
+ }
238
+ const moduleNames = (0, devkit_1.names)(options.name);
239
+ const moduleFilePath = `${options.path}/${moduleNames.fileName}/${moduleNames.fileName}.module.ts`;
240
+ tree.write(moduleFilePath, `import { NgModule } from '@angular/core';
241
+ import { CommonModule } from '@angular/common';
242
+
243
+ @NgModule({
244
+ declarations: [],
245
+ imports: [CommonModule],
246
+ })
247
+ export class ${moduleNames.className}Module {}`);
248
+ }
232
249
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/testing.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { Tree } from '@nx/devkit';
2
2
  export declare function validateProject(tree: Tree, projectName: string): void;
3
3
  export declare function validateStandaloneOption(tree: Tree, standalone: boolean | undefined, angularVersion?: string): void;
4
+ export declare function validatePathIsUnderProjectRoot(tree: Tree, projectName: string, path: string): void;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateStandaloneOption = exports.validateProject = void 0;
3
+ exports.validatePathIsUnderProjectRoot = exports.validateStandaloneOption = exports.validateProject = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const semver_1 = require("semver");
6
+ const path_1 = require("./path");
6
7
  const version_utils_1 = require("./version-utils");
7
8
  function validateProject(tree, projectName) {
8
9
  const projects = (0, devkit_1.getProjects)(tree);
@@ -22,4 +23,19 @@ function validateStandaloneOption(tree, standalone, angularVersion) {
22
23
  }
23
24
  }
24
25
  exports.validateStandaloneOption = validateStandaloneOption;
26
+ function validatePathIsUnderProjectRoot(tree, projectName, path) {
27
+ if (!path) {
28
+ return;
29
+ }
30
+ const { root } = (0, devkit_1.readProjectConfiguration)(tree, projectName);
31
+ let pathToComponent = (0, devkit_1.normalizePath)(path);
32
+ pathToComponent = pathToComponent.startsWith('/')
33
+ ? pathToComponent.slice(1)
34
+ : pathToComponent;
35
+ if (!(0, path_1.pathStartsWith)(pathToComponent, root)) {
36
+ throw new Error(`The path provided (${path}) does not exist under the project root (${root}). ` +
37
+ `Please make sure to provide a path that exists under the project root.`);
38
+ }
39
+ }
40
+ exports.validatePathIsUnderProjectRoot = validatePathIsUnderProjectRoot;
25
41
  //# sourceMappingURL=validations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validations.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/validations.ts"],"names":[],"mappings":";;;AACA,uCAAuD;AACvD,mCAA4B;AAC5B,mDAAiE;AAEjE,SAAgB,eAAe,CAAC,IAAU,EAAE,WAAmB;IAC7D,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,YAAY,WAAW,4DAA4D,CACpF,CAAC;KACH;AACH,CAAC;AARD,0CAQC;AAED,SAAgB,wBAAwB,CACtC,IAAU,EACV,UAA+B,EAC/B,cAAuB;IAEvB,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,MAAM,uBAAuB,GAC3B,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAA,8CAA8B,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IAEjE,IAAI,IAAA,WAAE,EAAC,uBAAuB,EAAE,QAAQ,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,IAAA,qBAAY,EAAA,4FAA4F,uBAAuB;sGAC7C,CAAC,CAAC;KACrG;AACH,CAAC;AAhBD,4DAgBC"}
1
+ {"version":3,"file":"validations.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/validations.ts"],"names":[],"mappings":";;;AACA,uCAKoB;AACpB,mCAA4B;AAC5B,iCAAwC;AACxC,mDAAiE;AAEjE,SAAgB,eAAe,CAAC,IAAU,EAAE,WAAmB;IAC7D,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,YAAY,WAAW,4DAA4D,CACpF,CAAC;KACH;AACH,CAAC;AARD,0CAQC;AAED,SAAgB,wBAAwB,CACtC,IAAU,EACV,UAA+B,EAC/B,cAAuB;IAEvB,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,MAAM,uBAAuB,GAC3B,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAA,8CAA8B,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IAEjE,IAAI,IAAA,WAAE,EAAC,uBAAuB,EAAE,QAAQ,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,IAAA,qBAAY,EAAA,4FAA4F,uBAAuB;sGAC7C,CAAC,CAAC;KACrG;AACH,CAAC;AAhBD,4DAgBC;AAED,SAAgB,8BAA8B,CAC5C,IAAU,EACV,WAAmB,EACnB,IAAY;IAEZ,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;KACR;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE7D,IAAI,eAAe,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC;IAC1C,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;QAC/C,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,eAAe,CAAC;IAEpB,IAAI,CAAC,IAAA,qBAAc,EAAC,eAAe,EAAE,IAAI,CAAC,EAAE;QAC1C,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,4CAA4C,IAAI,KAAK;YAC7E,wEAAwE,CAC3E,CAAC;KACH;AACH,CAAC;AAtBD,wEAsBC"}
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
6
+ const path_1 = require("path");
6
7
  let tsModule;
7
8
  let tsquery;
8
- function getBootstrapCallFileInfo(project, tree) {
9
- var _a, _b, _c;
9
+ function getBootstrapCallFileInfo(tree, project, mainFilePath) {
10
10
  const IMPORT_BOOTSTRAP_FILE = 'CallExpression:has(ImportKeyword) > StringLiteral';
11
- let bootstrapCallFilePath = (_c = (_b = (_a = project.targets) === null || _a === void 0 ? void 0 : _a.build) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.main;
11
+ let bootstrapCallFilePath = mainFilePath;
12
12
  let bootstrapCallFileContents = tree.read(bootstrapCallFilePath, 'utf-8');
13
13
  const ast = tsquery.ast(bootstrapCallFileContents);
14
14
  const importBootstrapNodes = tsquery(ast, IMPORT_BOOTSTRAP_FILE, {
@@ -29,29 +29,49 @@ function getImportTokenMap(bootstrapCallFileContentsAst) {
29
29
  }
30
30
  return importTokenMap;
31
31
  }
32
- function getImportsRequiredForAppConfig(importTokenMap, appConfigNode) {
33
- const importsRequiredForAppConfig = new Set();
34
- const checkImportsForTokens = (nodeText) => {
35
- const keys = importTokenMap.keys();
36
- for (const key of keys) {
37
- if (key.includes(nodeText))
38
- importsRequiredForAppConfig.add(importTokenMap.get(key));
32
+ function getImportsRequiredForAppConfig(importTokenMap, appConfigNode, oldSourceFilePath, newSourceFilePath) {
33
+ const identifiers = tsquery.query(appConfigNode, 'Identifier:not(PropertyAssignment > Identifier)', { visitAllChildren: true });
34
+ const appConfigImports = new Set();
35
+ const originalImportsToRemove = new Set();
36
+ for (const identifier of identifiers) {
37
+ for (const key of importTokenMap.keys()) {
38
+ if (!key.includes(identifier.getText())) {
39
+ continue;
40
+ }
41
+ let importText = importTokenMap.get(key);
42
+ originalImportsToRemove.add(importText);
43
+ if (oldSourceFilePath === newSourceFilePath ||
44
+ oldSourceFilePath.split('/').length ===
45
+ newSourceFilePath.split('/').length) {
46
+ appConfigImports.add(importText);
47
+ continue;
48
+ }
49
+ const importPath = tsquery
50
+ .query(importText, 'StringLiteral', {
51
+ visitAllChildren: true,
52
+ })[0]
53
+ .getText()
54
+ .replace(/'/g, '')
55
+ .replace(/"/g, '');
56
+ if (importPath.startsWith('.')) {
57
+ const resolvedImportPath = (0, path_1.resolve)((0, path_1.dirname)(oldSourceFilePath), importPath);
58
+ const newRelativeImportPath = (0, path_1.relative)((0, path_1.dirname)(newSourceFilePath), resolvedImportPath);
59
+ importText = importText.replace(importPath, newRelativeImportPath.startsWith('.')
60
+ ? newRelativeImportPath
61
+ : `./${newRelativeImportPath}`);
62
+ }
63
+ appConfigImports.add(importText);
39
64
  }
65
+ }
66
+ return {
67
+ appConfigImports: Array.from(appConfigImports),
68
+ importsToRemoveFromSource: Array.from(originalImportsToRemove),
40
69
  };
41
- const visitEachChild = (node) => {
42
- node.forEachChild((node) => {
43
- const nodeText = node.getText();
44
- checkImportsForTokens(nodeText);
45
- visitEachChild(node);
46
- });
47
- };
48
- visitEachChild(appConfigNode);
49
- return importsRequiredForAppConfig;
50
70
  }
51
71
  function getAppConfigFileContents(importsRequiredForAppConfig, appConfigText) {
52
72
  const buildAppConfigFileContents = (importStatements, appConfig) => `import { ApplicationConfig } from '@angular/core';${importStatements.join('\n')}
53
73
  export const appConfig: ApplicationConfig = ${appConfig}`;
54
- const appConfigFileContents = buildAppConfigFileContents(Array.from(importsRequiredForAppConfig), appConfigText);
74
+ const appConfigFileContents = buildAppConfigFileContents(importsRequiredForAppConfig, appConfigText);
55
75
  return appConfigFileContents;
56
76
  }
57
77
  function getBootstrapCallFileContents(bootstrapCallFileContents, appConfigNode, importsRequiredForAppConfig) {
@@ -74,14 +94,14 @@ function extractStandaloneConfig(tree) {
74
94
  const projects = (0, devkit_1.getProjects)(tree);
75
95
  const BOOTSTRAP_APPLICATION_CALL_SELECTOR = 'CallExpression:has(Identifier[name=bootstrapApplication])';
76
96
  const BOOTSTRAP_APPLICATION_CALL_CONFIG_SELECTOR = 'CallExpression:has(Identifier[name=bootstrapApplication]) > ObjectLiteralExpression';
77
- for (const [projectName, project] of projects.entries()) {
97
+ for (const [, project] of projects.entries()) {
78
98
  if (project.projectType !== 'application') {
79
99
  continue;
80
100
  }
81
101
  if (((_c = (_b = (_a = project.targets) === null || _a === void 0 ? void 0 : _a.build) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.main) === undefined) {
82
102
  continue;
83
103
  }
84
- const { bootstrapCallFilePath, bootstrapCallFileContents } = getBootstrapCallFileInfo(project, tree);
104
+ const { bootstrapCallFilePath, bootstrapCallFileContents } = getBootstrapCallFileInfo(tree, project, project.targets.build.options.main);
85
105
  const bootstrapCallFileContentsAst = tsquery.ast(bootstrapCallFileContents);
86
106
  const nodes = tsquery(bootstrapCallFileContentsAst, BOOTSTRAP_APPLICATION_CALL_SELECTOR, { visitAllChildren: true });
87
107
  if (nodes.length === 0) {
@@ -95,11 +115,11 @@ function extractStandaloneConfig(tree) {
95
115
  }
96
116
  const appConfigNode = appConfigNodes[0];
97
117
  const appConfigText = appConfigNode.getText();
98
- const importsRequiredForAppConfig = getImportsRequiredForAppConfig(importTokenMap, appConfigNode);
99
118
  const appConfigFilePath = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.config.ts');
100
- const appConfigFileContents = getAppConfigFileContents(importsRequiredForAppConfig, appConfigText);
119
+ const { appConfigImports, importsToRemoveFromSource } = getImportsRequiredForAppConfig(importTokenMap, appConfigNode, bootstrapCallFilePath, appConfigFilePath);
120
+ const appConfigFileContents = getAppConfigFileContents(appConfigImports, appConfigText);
101
121
  tree.write(appConfigFilePath, appConfigFileContents);
102
- let newBootstrapCallFileContents = getBootstrapCallFileContents(bootstrapCallFileContents, appConfigNode, importsRequiredForAppConfig);
122
+ let newBootstrapCallFileContents = getBootstrapCallFileContents(bootstrapCallFileContents, appConfigNode, importsToRemoveFromSource);
103
123
  tree.write(bootstrapCallFilePath, newBootstrapCallFileContents);
104
124
  }
105
125
  yield (0, devkit_1.formatFiles)(tree);