@nx/angular 16.8.0-beta.3 → 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.
Files changed (220) hide show
  1. package/mf/mf.js +31 -36
  2. package/migrations.json +9 -0
  3. package/package.json +11 -11
  4. package/plugins/component-testing.js +82 -44
  5. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +4 -6
  6. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.js +4 -6
  7. package/src/builders/utilities/buildable-libs.js +1 -2
  8. package/src/builders/utilities/module-federation.js +2 -3
  9. package/src/builders/utilities/webpack.js +16 -21
  10. package/src/builders/webpack-browser/webpack-browser.impl.js +13 -13
  11. package/src/builders/webpack-dev-server/lib/normalize-options.js +8 -1
  12. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +24 -18
  13. package/src/builders/webpack-server/webpack-server.impl.js +5 -7
  14. package/src/executors/browser-esbuild/browser-esbuild.impl.js +19 -23
  15. package/src/executors/browser-esbuild/lib/buildable-libs.js +1 -2
  16. package/src/executors/delegate-build/delegate-build.impl.js +9 -12
  17. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +4 -7
  18. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.transform.js +4 -5
  19. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +158 -156
  20. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/options.di.js +6 -3
  21. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ngc/compile-source-files.js +118 -118
  22. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/styles/stylesheet-processor.js +96 -103
  23. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +20 -12
  24. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +18 -21
  25. package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +6 -9
  26. package/src/executors/package/ng-packagr-adjustments/ng-package/options.di.js +6 -3
  27. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +122 -122
  28. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +96 -103
  29. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +21 -13
  30. package/src/executors/package/ng-packagr-adjustments/utils/ng-compiler-cli.js +5 -8
  31. package/src/executors/package/package.impl.js +33 -38
  32. package/src/executors/utilities/angular-version-utils.js +1 -1
  33. package/src/executors/utilities/tailwindcss.js +2 -2
  34. package/src/executors/utilities/typescript.js +23 -28
  35. package/src/generators/add-linting/add-linting.js +76 -69
  36. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +2 -0
  37. package/src/generators/add-linting/lib/create-eslint-configuration.js +12 -4
  38. package/src/generators/application/application.js +56 -55
  39. package/src/generators/application/lib/add-e2e.js +36 -40
  40. package/src/generators/application/lib/add-linting.js +12 -15
  41. package/src/generators/application/lib/add-proxy-config.js +4 -1
  42. package/src/generators/application/lib/add-unit-test-runner.js +15 -18
  43. package/src/generators/application/lib/create-files.js +44 -47
  44. package/src/generators/application/lib/enable-strict-type-checking.js +2 -2
  45. package/src/generators/application/lib/normalize-options.js +37 -25
  46. package/src/generators/application/lib/set-app-strict-default.js +1 -2
  47. package/src/generators/application/lib/update-editor-tsconfig.js +1 -2
  48. package/src/generators/component/component.js +40 -43
  49. package/src/generators/component/lib/normalize-options.js +15 -5
  50. package/src/generators/component-cypress-spec/component-cypress-spec.js +25 -28
  51. package/src/generators/component-story/component-story.js +19 -22
  52. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +19 -22
  53. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +3 -4
  54. package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js +103 -106
  55. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +59 -62
  56. package/src/generators/directive/directive.js +21 -24
  57. package/src/generators/directive/lib/normalize-options.js +11 -5
  58. package/src/generators/host/files/src/main.server.ts__tmpl__ +1 -1
  59. package/src/generators/host/host.js +77 -67
  60. package/src/generators/host/lib/add-ssr.js +32 -33
  61. package/src/generators/init/init.js +101 -92
  62. package/src/generators/library/lib/add-standalone-component.js +18 -13
  63. package/src/generators/library/lib/enable-strict-type-checking.js +17 -5
  64. package/src/generators/library/lib/normalize-options.js +68 -53
  65. package/src/generators/library/library.js +89 -92
  66. package/src/generators/library-secondary-entry-point/lib/add-files.js +5 -1
  67. package/src/generators/library-secondary-entry-point/lib/normalize-options.js +6 -3
  68. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.js +1 -2
  69. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +6 -9
  70. package/src/generators/move/lib/normalize-schema.js +5 -1
  71. package/src/generators/move/lib/update-module-name.js +1 -1
  72. package/src/generators/move/lib/update-ng-package.js +1 -2
  73. package/src/generators/move/lib/update-secondary-entry-points.js +1 -2
  74. package/src/generators/move/move.js +9 -12
  75. package/src/generators/ng-add/migrate-from-angular-cli.js +54 -53
  76. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +4 -3
  77. package/src/generators/ng-add/migrators/builders/angular-devkit-ng-packagr.migrator.js +11 -12
  78. package/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js +39 -42
  79. package/src/generators/ng-add/migrators/builders/builder.migrator.js +1 -2
  80. package/src/generators/ng-add/migrators/migrator.js +7 -11
  81. package/src/generators/ng-add/migrators/projects/app.migrator.js +39 -43
  82. package/src/generators/ng-add/migrators/projects/e2e.migrator.js +115 -91
  83. package/src/generators/ng-add/migrators/projects/lib.migrator.js +23 -31
  84. package/src/generators/ng-add/migrators/projects/project.migrator.js +10 -14
  85. package/src/generators/ng-add/ng-add.js +5 -8
  86. package/src/generators/ng-add/utilities/dependencies.js +2 -3
  87. package/src/generators/ng-add/utilities/format-files-task.js +1 -1
  88. package/src/generators/ng-add/utilities/projects.js +1 -1
  89. package/src/generators/ng-add/utilities/workspace.js +25 -36
  90. package/src/generators/ngrx/lib/add-imports-to-module.js +1 -2
  91. package/src/generators/ngrx/lib/add-ngrx-to-package-json.js +1 -3
  92. package/src/generators/ngrx/lib/generate-files.js +11 -2
  93. package/src/generators/ngrx/lib/normalize-options.js +9 -4
  94. package/src/generators/ngrx/lib/validate-options.js +3 -3
  95. package/src/generators/ngrx/ngrx.js +18 -21
  96. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.actions.ts__tmpl__ +1 -1
  97. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.spec.ts__tmpl__ +2 -2
  98. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
  99. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.spec.ts__tmpl__ +6 -6
  100. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
  101. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.spec.ts__tmpl__ +3 -3
  102. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__ +2 -2
  103. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.spec.ts__tmpl__ +3 -3
  104. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__ +1 -1
  105. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
  106. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
  107. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +4 -1
  108. package/src/generators/ngrx-feature-store/lib/add-imports.js +1 -1
  109. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js +1 -3
  110. package/src/generators/ngrx-feature-store/lib/generate-files.js +20 -4
  111. package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +1 -0
  112. package/src/generators/ngrx-feature-store/lib/normalize-options.js +22 -3
  113. package/src/generators/ngrx-feature-store/lib/validate-options.js +2 -2
  114. package/src/generators/ngrx-feature-store/ngrx-feature-store.js +18 -21
  115. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js +8 -6
  116. package/src/generators/ngrx-root-store/lib/normalize-options.js +8 -4
  117. package/src/generators/ngrx-root-store/lib/validate-options.js +2 -2
  118. package/src/generators/ngrx-root-store/ngrx-root-store.js +27 -30
  119. package/src/generators/pipe/lib/normalize-options.js +9 -3
  120. package/src/generators/pipe/pipe.js +21 -24
  121. package/src/generators/remote/files/base/src/main.server.ts__tmpl__ +2 -2
  122. package/src/generators/remote/lib/add-ssr.js +46 -43
  123. package/src/generators/remote/lib/find-next-available-port.js +1 -2
  124. package/src/generators/remote/remote.js +52 -49
  125. package/src/generators/scam/lib/convert-component-to-scam.js +1 -2
  126. package/src/generators/scam/lib/normalize-options.js +11 -4
  127. package/src/generators/scam/scam.js +15 -12
  128. package/src/generators/scam-directive/lib/normalize-options.js +12 -4
  129. package/src/generators/scam-directive/scam-directive.js +13 -10
  130. package/src/generators/scam-pipe/lib/normalize-options.js +12 -4
  131. package/src/generators/scam-pipe/scam-pipe.js +13 -10
  132. package/src/generators/scam-to-standalone/scam-to-standalone.js +23 -26
  133. package/src/generators/setup-mf/lib/add-cypress-workaround.js +1 -1
  134. package/src/generators/setup-mf/lib/add-remote-to-host.js +4 -1
  135. package/src/generators/setup-mf/lib/change-build-target.js +10 -4
  136. package/src/generators/setup-mf/lib/generate-config.js +1 -1
  137. package/src/generators/setup-mf/lib/get-remotes-with-ports.js +1 -2
  138. package/src/generators/setup-mf/lib/normalize-options.js +5 -2
  139. package/src/generators/setup-mf/lib/set-tsconfig-target.js +7 -1
  140. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +1 -2
  141. package/src/generators/setup-mf/lib/setup-serve-target.js +10 -3
  142. package/src/generators/setup-mf/setup-mf.js +32 -35
  143. package/src/generators/setup-ssr/lib/generate-files.js +8 -5
  144. package/src/generators/setup-ssr/lib/normalize-options.js +9 -10
  145. package/src/generators/setup-ssr/lib/update-project-config.js +21 -17
  146. package/src/generators/setup-ssr/setup-ssr.js +26 -27
  147. package/src/generators/setup-tailwind/lib/add-tailwind-config-path-to-project.js +6 -4
  148. package/src/generators/setup-tailwind/lib/detect-tailwind-installed-version.js +1 -2
  149. package/src/generators/setup-tailwind/lib/normalize-options.js +4 -1
  150. package/src/generators/setup-tailwind/lib/update-application-styles.js +5 -6
  151. package/src/generators/setup-tailwind/setup-tailwind.js +20 -23
  152. package/src/generators/stories/lib/get-e2e-project.js +1 -1
  153. package/src/generators/stories/stories.js +43 -50
  154. package/src/generators/storybook-configuration/lib/assert-compatible-storybook-version.js +1 -1
  155. package/src/generators/storybook-configuration/lib/generate-stories.js +10 -13
  156. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +12 -15
  157. package/src/generators/storybook-configuration/storybook-configuration.js +20 -16
  158. package/src/generators/utils/create-ts-config.js +1 -1
  159. package/src/generators/utils/entry-point.js +1 -2
  160. package/src/generators/utils/export-scam.js +1 -1
  161. package/src/generators/utils/insert-ngmodule-import.js +1 -1
  162. package/src/generators/utils/path.js +3 -3
  163. package/src/generators/utils/project.js +2 -3
  164. package/src/generators/utils/selector.js +1 -1
  165. package/src/generators/utils/storybook-ast/component-info.js +1 -2
  166. package/src/generators/utils/storybook-ast/entry-point.js +1 -2
  167. package/src/generators/utils/storybook-ast/module-info.js +1 -2
  168. package/src/generators/utils/storybook-ast/tree-utilities.js +1 -1
  169. package/src/generators/utils/testing.js +141 -138
  170. package/src/generators/utils/validations.js +1 -1
  171. package/src/generators/utils/version-utils.js +5 -7
  172. package/src/generators/web-worker/lib/normalize-options.js +6 -3
  173. package/src/generators/web-worker/web-worker.js +25 -28
  174. package/src/migrations/update-14-2-0/remove-show-circular-dependencies-option.js +10 -13
  175. package/src/migrations/update-14-2-0/update-angular-cli.js +14 -18
  176. package/src/migrations/update-14-2-0/update-libraries-secondary-entrypoints.js +22 -26
  177. package/src/migrations/update-14-2-0/update-ngcc-target.js +10 -14
  178. package/src/migrations/update-14-2-0/update-router-initial-navigation.js +31 -39
  179. package/src/migrations/update-14-2-0/update-tsconfig-target.js +48 -56
  180. package/src/migrations/update-14-5-0/migrate-mfe-to-mf.js +14 -17
  181. package/src/migrations/update-14-5-2/update-angular-cli.js +14 -18
  182. package/src/migrations/update-14-6-0/update-angular-cli.js +14 -18
  183. package/src/migrations/update-15-0-0/add-karma-inputs.js +27 -32
  184. package/src/migrations/update-15-0-0/switch-to-jasmine-marbles.js +62 -68
  185. package/src/migrations/update-15-2-0/remove-browserlist-config.js +34 -37
  186. package/src/migrations/update-15-2-0/remove-platform-server-exports.js +49 -52
  187. package/src/migrations/update-15-2-0/update-angular-cli.js +14 -18
  188. package/src/migrations/update-15-2-0/update-karma-main-file.js +11 -12
  189. package/src/migrations/update-15-2-0/update-typescript-target.js +40 -39
  190. package/src/migrations/update-15-2-0/update-workspace-config.js +16 -19
  191. package/src/migrations/update-15-5-0/update-angular-cli.js +14 -18
  192. package/src/migrations/update-15-7-0/install-required-packages.js +26 -28
  193. package/src/migrations/update-15-8-0/update-angular-cli.js +14 -18
  194. package/src/migrations/update-15-9-0/update-file-server-executor.js +31 -35
  195. package/src/migrations/update-15-9-0/update-testing-tsconfig.js +17 -22
  196. package/src/migrations/update-16-0-0/remove-karma-defaults.js +15 -18
  197. package/src/migrations/update-16-0-0/remove-library-generator-simple-module-name-option.js +22 -25
  198. package/src/migrations/update-16-0-0/remove-protractor-defaults.js +15 -18
  199. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +3 -6
  200. package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js +38 -42
  201. package/src/migrations/update-16-1-0/remove-ngcc-invocation.js +15 -19
  202. package/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.js +49 -52
  203. package/src/migrations/update-16-1-0/update-angular-cli.js +14 -18
  204. package/src/migrations/update-16-1-0/update-server-executor-config.js +13 -16
  205. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +25 -29
  206. package/src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules.js +13 -16
  207. package/src/migrations/update-16-4-0/update-angular-cli.js +14 -18
  208. package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.js +19 -24
  209. package/src/migrations/update-16-7-0/update-angular-cli.js +14 -18
  210. package/src/migrations/utils/projects.js +9 -15
  211. package/src/utils/backward-compatible-versions.js +2 -0
  212. package/src/utils/get-mf-projects.js +1 -2
  213. package/src/utils/mf/utils.js +43 -44
  214. package/src/utils/mf/with-module-federation-ssr.js +39 -24
  215. package/src/utils/mf/with-module-federation.js +40 -21
  216. package/src/utils/nx-devkit/ast-utils.js +2 -3
  217. package/src/utils/nx-devkit/testing.js +9 -9
  218. package/src/utils/version-utils.js +2 -4
  219. package/src/utils/versions.d.ts +1 -0
  220. package/src/utils/versions.js +2 -1
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deleteGitKeepFilesIfNotNeeded = exports.deleteAngularJson = exports.updateVsCodeRecommendedExtensions = exports.getWorkspaceRootFileTypesInfo = exports.createRootKarmaConfig = exports.createWorkspaceFiles = exports.cleanupEsLintPackages = exports.updateRootEsLintConfig = exports.updatePackageJson = exports.updateRootTsConfig = exports.updateWorkspaceConfigDefaults = exports.createNxJson = exports.validateWorkspace = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const linter_1 = require("@nx/linter");
7
6
  const js_1 = require("@nx/js");
@@ -27,11 +26,10 @@ function validateWorkspace(tree) {
27
26
  }
28
27
  exports.validateWorkspace = validateWorkspace;
29
28
  function createNxJson(tree, options, defaultProject) {
30
- var _a;
31
29
  const targets = getWorkspaceCommonTargets(tree);
32
30
  (0, devkit_1.writeJson)(tree, 'nx.json', {
33
31
  affected: {
34
- defaultBase: (_a = options.defaultBase) !== null && _a !== void 0 ? _a : (0, default_base_1.deduceDefaultBase)(),
32
+ defaultBase: options.defaultBase ?? (0, default_base_1.deduceDefaultBase)(),
35
33
  },
36
34
  tasksRunnerOptions: {
37
35
  default: {
@@ -93,17 +91,16 @@ function createNxJson(tree, options, defaultProject) {
93
91
  }
94
92
  exports.createNxJson = createNxJson;
95
93
  function getWorkspaceCommonTargets(tree) {
96
- var _a, _b, _c;
97
94
  const targets = { e2e: false, lint: false, test: false };
98
95
  const projects = (0, devkit_1.getProjects)(tree);
99
96
  for (const [, project] of projects) {
100
- if (!targets.e2e && ((_a = project.targets) === null || _a === void 0 ? void 0 : _a.e2e)) {
97
+ if (!targets.e2e && project.targets?.e2e) {
101
98
  targets.e2e = true;
102
99
  }
103
- if (!targets.lint && ((_b = project.targets) === null || _b === void 0 ? void 0 : _b.lint)) {
100
+ if (!targets.lint && project.targets?.lint) {
104
101
  targets.lint = true;
105
102
  }
106
- if (!targets.test && ((_c = project.targets) === null || _c === void 0 ? void 0 : _c.test)) {
103
+ if (!targets.test && project.targets?.test) {
107
104
  targets.test = true;
108
105
  }
109
106
  if (targets.e2e && targets.lint && targets.test) {
@@ -122,13 +119,11 @@ function updateWorkspaceConfigDefaults(tree) {
122
119
  }
123
120
  exports.updateWorkspaceConfigDefaults = updateWorkspaceConfigDefaults;
124
121
  function updateRootTsConfig(tree) {
125
- var _a, _b;
126
- var _c;
127
122
  const tsconfig = (0, devkit_1.readJson)(tree, (0, js_1.getRootTsConfigPathInTree)(tree));
128
- (_a = (_c = tsconfig.compilerOptions).paths) !== null && _a !== void 0 ? _a : (_c.paths = {});
123
+ tsconfig.compilerOptions.paths ??= {};
129
124
  tsconfig.compilerOptions.baseUrl = '.';
130
125
  tsconfig.compilerOptions.rootDir = '.';
131
- tsconfig.exclude = Array.from(new Set([...((_b = tsconfig.exclude) !== null && _b !== void 0 ? _b : []), 'node_modules', 'tmp']));
126
+ tsconfig.exclude = Array.from(new Set([...(tsconfig.exclude ?? []), 'node_modules', 'tmp']));
132
127
  (0, devkit_1.writeJson)(tree, 'tsconfig.base.json', tsconfig);
133
128
  if (tree.exists('tsconfig.json')) {
134
129
  tree.delete('tsconfig.json');
@@ -137,15 +132,14 @@ function updateRootTsConfig(tree) {
137
132
  exports.updateRootTsConfig = updateRootTsConfig;
138
133
  function updatePackageJson(tree) {
139
134
  (0, devkit_1.updateJson)(tree, 'package.json', (packageJson) => {
140
- var _a, _b, _c;
141
- packageJson.scripts = (_a = packageJson.scripts) !== null && _a !== void 0 ? _a : {};
135
+ packageJson.scripts = packageJson.scripts ?? {};
142
136
  Object.keys(packageJson.scripts).forEach((script) => {
143
137
  packageJson.scripts[script] = packageJson.scripts[script]
144
138
  .replace(/^ng /, 'nx ')
145
139
  .replace(/ ng /, ' nx ');
146
140
  });
147
- packageJson.devDependencies = (_b = packageJson.devDependencies) !== null && _b !== void 0 ? _b : {};
148
- packageJson.dependencies = (_c = packageJson.dependencies) !== null && _c !== void 0 ? _c : {};
141
+ packageJson.devDependencies = packageJson.devDependencies ?? {};
142
+ packageJson.dependencies = packageJson.dependencies ?? {};
149
143
  if (!packageJson.devDependencies['@angular/cli']) {
150
144
  packageJson.devDependencies['@angular/cli'] = versions_2.angularDevkitVersion;
151
145
  }
@@ -164,7 +158,6 @@ function updatePackageJson(tree) {
164
158
  }
165
159
  exports.updatePackageJson = updatePackageJson;
166
160
  function updateRootEsLintConfig(tree, existingEsLintConfig, unitTestRunner) {
167
- var _a, _b, _c, _d;
168
161
  if (tree.exists('.eslintrc.json')) {
169
162
  /**
170
163
  * If it still exists it means that there was no project at the root of the
@@ -180,19 +173,18 @@ function updateRootEsLintConfig(tree, existingEsLintConfig, unitTestRunner) {
180
173
  return;
181
174
  }
182
175
  existingEsLintConfig.ignorePatterns = ['**/*'];
183
- if (!((_a = existingEsLintConfig.plugins) !== null && _a !== void 0 ? _a : []).includes('@nrwl/nx')) {
184
- existingEsLintConfig.plugins = Array.from(new Set([...((_b = existingEsLintConfig.plugins) !== null && _b !== void 0 ? _b : []), '@nx']));
176
+ if (!(existingEsLintConfig.plugins ?? []).includes('@nrwl/nx')) {
177
+ existingEsLintConfig.plugins = Array.from(new Set([...(existingEsLintConfig.plugins ?? []), '@nx']));
185
178
  }
186
- (_c = existingEsLintConfig.overrides) === null || _c === void 0 ? void 0 : _c.forEach((override) => {
187
- var _a;
188
- if (!((_a = override.parserOptions) === null || _a === void 0 ? void 0 : _a.project)) {
179
+ existingEsLintConfig.overrides?.forEach((override) => {
180
+ if (!override.parserOptions?.project) {
189
181
  return;
190
182
  }
191
183
  delete override.parserOptions.project;
192
184
  });
193
185
  // add the @nx/enforce-module-boundaries rule
194
186
  existingEsLintConfig.overrides = [
195
- ...((_d = existingEsLintConfig.overrides) !== null && _d !== void 0 ? _d : []),
187
+ ...(existingEsLintConfig.overrides ?? []),
196
188
  {
197
189
  files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
198
190
  rules: {
@@ -214,32 +206,29 @@ function updateRootEsLintConfig(tree, existingEsLintConfig, unitTestRunner) {
214
206
  exports.updateRootEsLintConfig = updateRootEsLintConfig;
215
207
  function cleanupEsLintPackages(tree) {
216
208
  (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
217
- var _a, _b, _c, _d;
218
- if ((_a = json.devDependencies) === null || _a === void 0 ? void 0 : _a['@angular-eslint/builder']) {
209
+ if (json.devDependencies?.['@angular-eslint/builder']) {
219
210
  delete json.devDependencies['@angular-eslint/builder'];
220
211
  }
221
- if ((_b = json.dependencies) === null || _b === void 0 ? void 0 : _b['@angular-eslint/builder']) {
212
+ if (json.dependencies?.['@angular-eslint/builder']) {
222
213
  delete json.dependencies['@angular-eslint/builder'];
223
214
  }
224
- if ((_c = json.devDependencies) === null || _c === void 0 ? void 0 : _c['@angular-eslint/schematics']) {
215
+ if (json.devDependencies?.['@angular-eslint/schematics']) {
225
216
  delete json.devDependencies['@angular-eslint/schematics'];
226
217
  }
227
- if ((_d = json.dependencies) === null || _d === void 0 ? void 0 : _d['@angular-eslint/schematics']) {
218
+ if (json.dependencies?.['@angular-eslint/schematics']) {
228
219
  delete json.dependencies['@angular-eslint/schematics'];
229
220
  }
230
221
  return json;
231
222
  });
232
223
  }
233
224
  exports.cleanupEsLintPackages = cleanupEsLintPackages;
234
- function createWorkspaceFiles(tree) {
235
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
236
- updateVsCodeRecommendedExtensions(tree);
237
- yield (0, js_1.initGenerator)(tree, { skipFormat: true });
238
- (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/root'), '.', {
239
- tmpl: '',
240
- dot: '.',
241
- rootTsConfigPath: (0, js_1.getRootTsConfigPathInTree)(tree),
242
- });
225
+ async function createWorkspaceFiles(tree) {
226
+ updateVsCodeRecommendedExtensions(tree);
227
+ await (0, js_1.initGenerator)(tree, { skipFormat: true });
228
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/root'), '.', {
229
+ tmpl: '',
230
+ dot: '.',
231
+ rootTsConfigPath: (0, js_1.getRootTsConfigPathInTree)(tree),
243
232
  });
244
233
  }
245
234
  exports.createWorkspaceFiles = createWorkspaceFiles;
@@ -84,11 +84,10 @@ function addEffectsForFeatureImport(tree, isParentStandalone, route, sourceFile,
84
84
  return sourceFile;
85
85
  }
86
86
  function addImportsToModule(tree, options) {
87
- var _a;
88
87
  if (!tsModule) {
89
88
  tsModule = (0, ensure_typescript_1.ensureTypescript)();
90
89
  }
91
- const parentPath = (_a = options.module) !== null && _a !== void 0 ? _a : options.parent;
90
+ const parentPath = options.module ?? options.parent;
92
91
  const sourceText = tree.read(parentPath, 'utf-8');
93
92
  let sourceFile = tsModule.createSourceFile(parentPath, sourceText, tsModule.ScriptTarget.Latest, true);
94
93
  const isParentStandalone = !sourceText.includes('@NgModule');
@@ -5,13 +5,11 @@ const devkit_1 = require("@nx/devkit");
5
5
  const semver_1 = require("semver");
6
6
  const version_utils_1 = require("../../utils/version-utils");
7
7
  function addNgRxToPackageJson(tree, options) {
8
- var _a;
9
- var _b;
10
8
  const jasmineMarblesVersion = (0, semver_1.gte)(options.rxjsVersion, '7.0.0')
11
9
  ? '~0.9.1'
12
10
  : '~0.8.3';
13
11
  const ngrxVersion = (0, version_utils_1.versions)(tree).ngrxVersion;
14
- (_a = (_b = process.env).npm_config_legacy_peer_deps) !== null && _a !== void 0 ? _a : (_b.npm_config_legacy_peer_deps = 'true');
12
+ process.env.npm_config_legacy_peer_deps ??= 'true';
15
13
  return (0, devkit_1.addDependenciesToPackageJson)(tree, {
16
14
  '@ngrx/store': ngrxVersion,
17
15
  '@ngrx/effects': ngrxVersion,
@@ -10,10 +10,19 @@ const version_utils_1 = require("../../utils/version-utils");
10
10
  function generateNgrxFilesFromTemplates(tree, options) {
11
11
  const name = options.name;
12
12
  const projectNames = (0, devkit_1.names)(name);
13
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'base'), options.parentDirectory, Object.assign(Object.assign(Object.assign({}, options), projectNames), { importFromOperators: (0, semver_1.lt)(options.rxjsVersion, '7.2.0'), tmpl: '' }));
13
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'base'), options.parentDirectory, {
14
+ ...options,
15
+ ...projectNames,
16
+ importFromOperators: (0, semver_1.lt)(options.rxjsVersion, '7.2.0'),
17
+ tmpl: '',
18
+ });
14
19
  const angularVersion = (0, version_utils_1.getInstalledAngularVersion)(tree);
15
20
  if ((0, semver_1.lt)(angularVersion, '14.1.0')) {
16
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'no-inject'), options.parentDirectory, Object.assign(Object.assign(Object.assign({}, options), projectNames), { tmpl: '' }));
21
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'no-inject'), options.parentDirectory, {
22
+ ...options,
23
+ ...projectNames,
24
+ tmpl: '',
25
+ });
17
26
  }
18
27
  if (!options.facade) {
19
28
  tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${projectNames.fileName}.facade.ts`));
@@ -6,18 +6,23 @@ const semver_1 = require("@nx/devkit/src/utils/semver");
6
6
  const path_1 = require("path");
7
7
  const versions_1 = require("../../../utils/versions");
8
8
  function normalizeOptions(tree, options) {
9
- var _a;
10
9
  let rxjsVersion;
11
10
  try {
12
11
  rxjsVersion = (0, semver_1.checkAndCleanWithSemver)('rxjs', (0, devkit_1.readJson)(tree, 'package.json').dependencies['rxjs']);
13
12
  }
14
- catch (_b) {
13
+ catch {
15
14
  rxjsVersion = (0, semver_1.checkAndCleanWithSemver)('rxjs', versions_1.rxjsVersion);
16
15
  }
17
- return Object.assign(Object.assign({}, options), { parentDirectory: options.module
16
+ return {
17
+ ...options,
18
+ parentDirectory: options.module
18
19
  ? (0, path_1.dirname)(options.module)
19
20
  : options.parent
20
21
  ? (0, path_1.dirname)(options.parent)
21
- : undefined, route: options.route === '' ? `''` : (_a = options.route) !== null && _a !== void 0 ? _a : `''`, directory: (0, devkit_1.names)(options.directory).fileName, rxjsVersion });
22
+ : undefined,
23
+ route: options.route === '' ? `''` : options.route ?? `''`,
24
+ directory: (0, devkit_1.names)(options.directory).fileName,
25
+ rxjsVersion,
26
+ };
22
27
  }
23
28
  exports.normalizeOptions = normalizeOptions;
@@ -5,7 +5,6 @@ const semver_1 = require("semver");
5
5
  const version_utils_1 = require("../../utils/version-utils");
6
6
  const version_utils_2 = require("../../../utils/version-utils");
7
7
  function validateOptions(tree, options) {
8
- var _a, _b, _c;
9
8
  if (!options.module && !options.parent) {
10
9
  throw new Error('Please provide a value for "--parent"!');
11
10
  }
@@ -17,9 +16,10 @@ function validateOptions(tree, options) {
17
16
  }
18
17
  const angularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
19
18
  const intendedNgRxVersionForAngularMajor = (0, version_utils_2.getPkgVersionForAngularMajorVersion)('ngrxVersion', angularVersionInfo.major);
20
- const ngrxMajorVersion = (_b = (_a = (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@ngrx/store')) === null || _a === void 0 ? void 0 : _a.major) !== null && _b !== void 0 ? _b : (0, semver_1.major)((0, semver_1.coerce)(intendedNgRxVersionForAngularMajor));
19
+ const ngrxMajorVersion = (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@ngrx/store')?.major ??
20
+ (0, semver_1.major)((0, semver_1.coerce)(intendedNgRxVersionForAngularMajor));
21
21
  if ((0, semver_1.lt)(angularVersionInfo.version, '14.1.0') || ngrxMajorVersion < 15) {
22
- const parentPath = (_c = options.parent) !== null && _c !== void 0 ? _c : options.module;
22
+ const parentPath = options.parent ?? options.module;
23
23
  const parentContent = tree.read(parentPath, 'utf-8');
24
24
  const { tsquery } = require('@phenomnomnominal/tsquery');
25
25
  const ast = tsquery.ast(parentContent);
@@ -1,29 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ngrxGenerator = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const lib_1 = require("./lib");
7
- function ngrxGenerator(tree, schema) {
8
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
- (0, lib_1.validateOptions)(tree, schema);
10
- const options = (0, lib_1.normalizeOptions)(tree, schema);
11
- if (!options.minimal || !options.root) {
12
- (0, lib_1.generateNgrxFilesFromTemplates)(tree, options);
13
- }
14
- if (!options.skipImport) {
15
- (0, lib_1.addImportsToModule)(tree, options);
16
- (0, lib_1.addExportsToBarrel)(tree, options);
17
- }
18
- let packageInstallationTask = () => { };
19
- if (!options.skipPackageJson) {
20
- packageInstallationTask = (0, lib_1.addNgRxToPackageJson)(tree, options);
21
- }
22
- if (!options.skipFormat) {
23
- yield (0, devkit_1.formatFiles)(tree);
24
- }
25
- return packageInstallationTask;
26
- });
6
+ async function ngrxGenerator(tree, schema) {
7
+ (0, lib_1.validateOptions)(tree, schema);
8
+ const options = (0, lib_1.normalizeOptions)(tree, schema);
9
+ if (!options.minimal || !options.root) {
10
+ (0, lib_1.generateNgrxFilesFromTemplates)(tree, options);
11
+ }
12
+ if (!options.skipImport) {
13
+ (0, lib_1.addImportsToModule)(tree, options);
14
+ (0, lib_1.addExportsToBarrel)(tree, options);
15
+ }
16
+ let packageInstallationTask = () => { };
17
+ if (!options.skipPackageJson) {
18
+ packageInstallationTask = (0, lib_1.addNgRxToPackageJson)(tree, options);
19
+ }
20
+ if (!options.skipFormat) {
21
+ await (0, devkit_1.formatFiles)(tree);
22
+ }
23
+ return packageInstallationTask;
27
24
  }
28
25
  exports.ngrxGenerator = ngrxGenerator;
29
26
  exports.default = ngrxGenerator;
@@ -1,5 +1,5 @@
1
1
  import { createAction, props } from '@ngrx/store';
2
- import { <%= className %>Entity } from './<%= fileName %>.models';
2
+ import { <%= className %>Entity } from './<%= relativeFileName %>.models';
3
3
 
4
4
  export const init<%= className %> = createAction(
5
5
  '[<%= className %> Page] Init'
@@ -5,8 +5,8 @@ import { provideMockStore } from '@ngrx/store/testing';
5
5
  import { hot } from 'jasmine-marbles';
6
6
  import { Observable } from 'rxjs';
7
7
 
8
- import * as <%= className %>Actions from './<%= fileName %>.actions';
9
- import { <%= className %>Effects } from './<%= fileName %>.effects';
8
+ import * as <%= className %>Actions from './<%= relativeFileName %>.actions';
9
+ import { <%= className %>Effects } from './<%= relativeFileName %>.effects';
10
10
 
11
11
  describe('<%= className %>Effects', () => {
12
12
  let actions: Observable<Action>;
@@ -3,8 +3,8 @@ import { createEffect, Actions, ofType } from '@ngrx/effects';<% if (!importFrom
3
3
  import { switchMap, catchError, of } from 'rxjs';<% } else { %>
4
4
  import { of } from 'rxjs';
5
5
  import { switchMap, catchError } from 'rxjs/operators';<% } %>
6
- import * as <%= className %>Actions from './<%= fileName %>.actions';
7
- import * as <%= className %>Feature from './<%= fileName %>.reducer';
6
+ import * as <%= className %>Actions from './<%= relativeFileName %>.actions';
7
+ import * as <%= className %>Feature from './<%= relativeFileName %>.reducer';
8
8
 
9
9
  @Injectable()
10
10
  export class <%= className %>Effects {
@@ -4,17 +4,17 @@ import { EffectsModule } from '@ngrx/effects';
4
4
  import { StoreModule, Store } from '@ngrx/store';
5
5
  import { readFirst } from '@nx/angular/testing';
6
6
 
7
- import * as <%= className %>Actions from './<%= fileName %>.actions';
8
- import { <%= className %>Effects } from './<%= fileName %>.effects';
9
- import { <%= className %>Facade } from './<%= fileName %>.facade';
10
- import { <%= className %>Entity } from './<%= fileName %>.models';
7
+ import * as <%= className %>Actions from './<%= relativeFileName %>.actions';
8
+ import { <%= className %>Effects } from './<%= relativeFileName %>.effects';
9
+ import { <%= className %>Facade } from './<%= relativeFileName %>.facade';
10
+ import { <%= className %>Entity } from './<%= relativeFileName %>.models';
11
11
  import {
12
12
  <%= constantName %>_FEATURE_KEY,
13
13
  <%= className %>State,
14
14
  initial<%= className %>State,
15
15
  <%= propertyName %>Reducer
16
- } from './<%= fileName %>.reducer';
17
- import * as <%= className %>Selectors from './<%= fileName %>.selectors';
16
+ } from './<%= relativeFileName %>.reducer';
17
+ import * as <%= className %>Selectors from './<%= relativeFileName %>.selectors';
18
18
 
19
19
  interface TestSchema {
20
20
  <%= propertyName %>: <%= className %>State;
@@ -1,9 +1,9 @@
1
1
  import { Injectable, inject } from '@angular/core';
2
2
  import { select, Store, Action } from '@ngrx/store';
3
3
 
4
- import * as <%= className %>Actions from './<%= fileName %>.actions';
5
- import * as <%= className %>Feature from './<%= fileName %>.reducer';
6
- import * as <%= className %>Selectors from './<%= fileName %>.selectors';
4
+ import * as <%= className %>Actions from './<%= relativeFileName %>.actions';
5
+ import * as <%= className %>Feature from './<%= relativeFileName %>.reducer';
6
+ import * as <%= className %>Selectors from './<%= relativeFileName %>.selectors';
7
7
 
8
8
  @Injectable()
9
9
  export class <%= className %>Facade {
@@ -1,8 +1,8 @@
1
1
  import { Action } from '@ngrx/store';
2
2
 
3
- import * as <%= className %>Actions from './<%= fileName %>.actions';
4
- import { <%= className %>Entity } from './<%= fileName %>.models';
5
- import { <%= className %>State, initial<%= className %>State, <%= propertyName %>Reducer } from './<%= fileName %>.reducer';
3
+ import * as <%= className %>Actions from './<%= relativeFileName %>.actions';
4
+ import { <%= className %>Entity } from './<%= relativeFileName %>.models';
5
+ import { <%= className %>State, initial<%= className %>State, <%= propertyName %>Reducer } from './<%= relativeFileName %>.reducer';
6
6
 
7
7
  describe('<%= className %> Reducer', () => {
8
8
  const create<%= className %>Entity = (id: string, name = ''): <%= className %>Entity => ({
@@ -1,8 +1,8 @@
1
1
  import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';
2
2
  import { createReducer, on, Action } from '@ngrx/store';
3
3
 
4
- import * as <%= className %>Actions from './<%= fileName %>.actions';
5
- import { <%= className %>Entity } from './<%= fileName %>.models';
4
+ import * as <%= className %>Actions from './<%= relativeFileName %>.actions';
5
+ import { <%= className %>Entity } from './<%= relativeFileName %>.models';
6
6
 
7
7
  export const <%= constantName %>_FEATURE_KEY = '<%= propertyName %>';
8
8
 
@@ -1,6 +1,6 @@
1
- import { <%= className %>Entity } from './<%= fileName %>.models';
2
- import { <%= propertyName %>Adapter, <%= className %>PartialState, initial<%= className %>State } from './<%= fileName %>.reducer';
3
- import * as <%= className %>Selectors from './<%= fileName %>.selectors';
1
+ import { <%= className %>Entity } from './<%= relativeFileName %>.models';
2
+ import { <%= propertyName %>Adapter, <%= className %>PartialState, initial<%= className %>State } from './<%= relativeFileName %>.reducer';
3
+ import * as <%= className %>Selectors from './<%= relativeFileName %>.selectors';
4
4
 
5
5
  describe('<%= className %> Selectors', () => {
6
6
  const ERROR_MSG = 'No Error Available';
@@ -1,5 +1,5 @@
1
1
  import { createFeatureSelector, createSelector } from '@ngrx/store';
2
- import { <%= constantName %>_FEATURE_KEY, <%= className %>State, <%= propertyName %>Adapter } from './<%= fileName %>.reducer';
2
+ import { <%= constantName %>_FEATURE_KEY, <%= className %>State, <%= propertyName %>Adapter } from './<%= relativeFileName %>.reducer';
3
3
 
4
4
  // Lookup the '<%= className %>' feature state managed by NgRx
5
5
  export const select<%= className %>State = createFeatureSelector<<%= className %>State>(<%= constantName %>_FEATURE_KEY);
@@ -1,8 +1,8 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { createEffect, Actions, ofType } from '@ngrx/effects';
3
3
 
4
- import * as <%= className %>Actions from './<%= fileName %>.actions';
5
- import * as <%= className %>Feature from './<%= fileName %>.reducer';
4
+ import * as <%= className %>Actions from './<%= relativeFileName %>.actions';
5
+ import * as <%= className %>Feature from './<%= relativeFileName %>.reducer';
6
6
 
7
7
  import {switchMap, catchError, of} from 'rxjs';
8
8
 
@@ -1,9 +1,9 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { select, Store, Action } from '@ngrx/store';
3
3
 
4
- import * as <%= className %>Actions from './<%= fileName %>.actions';
5
- import * as <%= className %>Feature from './<%= fileName %>.reducer';
6
- import * as <%= className %>Selectors from './<%= fileName %>.selectors';
4
+ import * as <%= className %>Actions from './<%= relativeFileName %>.actions';
5
+ import * as <%= className %>Feature from './<%= relativeFileName %>.reducer';
6
+ import * as <%= className %>Selectors from './<%= relativeFileName %>.selectors';
7
7
 
8
8
  @Injectable()
9
9
  export class <%= className %>Facade {
@@ -17,7 +17,10 @@ function addExportsToBarrel(tree, options) {
17
17
  let sourceFile = tsModule.createSourceFile(indexFilePath, indexSourceText, tsModule.ScriptTarget.Latest, true);
18
18
  // Public API for the feature interfaces, selectors, and facade
19
19
  const { className, fileName } = (0, devkit_1.names)(options.name);
20
- const statePath = `./lib/${options.directory}/${fileName}`;
20
+ const fileNameWithSubdir = options.subdirectory
21
+ ? (0, devkit_1.joinPathFragments)(options.subdirectory, fileName)
22
+ : fileName;
23
+ const statePath = `./lib/${options.directory}/${fileNameWithSubdir}`;
21
24
  sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, options.barrels
22
25
  ? `import * as ${className}Actions from '${statePath}.actions';`
23
26
  : `export * from '${statePath}.actions';`);
@@ -54,7 +54,7 @@ function addImportsToModule(tree, options) {
54
54
  const addImport = (source, symbolName, fileName, isDefault = false) => {
55
55
  return (0, js_1.insertImport)(tree, source, parentPath, symbolName, fileName, isDefault);
56
56
  };
57
- const dir = `./${(0, devkit_1.names)(options.directory).fileName}`;
57
+ const dir = `./${(0, devkit_1.names)(options.directory).fileName}${options.subdirectory ? `/${options.subdirectory}` : ''}`;
58
58
  const pathPrefix = `${dir}/${(0, devkit_1.names)(options.name).fileName}`;
59
59
  const reducerPath = `${pathPrefix}.reducer`;
60
60
  const effectsPath = `${pathPrefix}.effects`;
@@ -5,13 +5,11 @@ const devkit_1 = require("@nx/devkit");
5
5
  const semver_1 = require("semver");
6
6
  const version_utils_1 = require("../../utils/version-utils");
7
7
  function addNgRxToPackageJson(tree, options) {
8
- var _a;
9
- var _b;
10
8
  const jasmineMarblesVersion = (0, semver_1.gte)(options.rxjsVersion, '7.0.0')
11
9
  ? '~0.9.1'
12
10
  : '~0.8.3';
13
11
  const ngrxVersion = (0, version_utils_1.versions)(tree).ngrxVersion;
14
- (_a = (_b = process.env).npm_config_legacy_peer_deps) !== null && _a !== void 0 ? _a : (_b.npm_config_legacy_peer_deps = 'true');
12
+ process.env.npm_config_legacy_peer_deps ??= 'true';
15
13
  return (0, devkit_1.addDependenciesToPackageJson)(tree, {
16
14
  '@ngrx/store': ngrxVersion,
17
15
  '@ngrx/effects': ngrxVersion,
@@ -6,14 +6,30 @@ const semver_1 = require("semver");
6
6
  const version_utils_1 = require("../../utils/version-utils");
7
7
  function generateFilesFromTemplates(tree, options) {
8
8
  const projectNames = (0, devkit_1.names)(options.name);
9
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'base'), options.parentDirectory, Object.assign(Object.assign(Object.assign({}, options), projectNames), { importFromOperators: (0, semver_1.lt)(options.rxjsVersion, '7.2.0'), tmpl: '' }));
9
+ const fileName = options.subdirectory
10
+ ? (0, devkit_1.joinPathFragments)(options.subdirectory, projectNames.fileName)
11
+ : projectNames.fileName;
12
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'base'), options.parentDirectory, {
13
+ ...options,
14
+ ...projectNames,
15
+ fileName,
16
+ relativeFileName: projectNames.fileName,
17
+ importFromOperators: (0, semver_1.lt)(options.rxjsVersion, '7.2.0'),
18
+ tmpl: '',
19
+ });
10
20
  const angularVersion = (0, version_utils_1.getInstalledAngularVersion)(tree);
11
21
  if ((0, semver_1.lt)(angularVersion, '14.1.0')) {
12
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'no-inject'), options.parentDirectory, Object.assign(Object.assign(Object.assign({}, options), projectNames), { tmpl: '' }));
22
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'no-inject'), options.parentDirectory, {
23
+ ...options,
24
+ ...projectNames,
25
+ fileName,
26
+ relativeFileName: projectNames.fileName,
27
+ tmpl: '',
28
+ });
13
29
  }
14
30
  if (!options.facade) {
15
- tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${projectNames.fileName}.facade.ts`));
16
- tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${projectNames.fileName}.facade.spec.ts`));
31
+ tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${options.subdirectory ? `${options.subdirectory}/` : ''}${projectNames.fileName}.facade.ts`));
32
+ tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${options.subdirectory ? `${options.subdirectory}/` : ''}${projectNames.fileName}.facade.spec.ts`));
17
33
  }
18
34
  }
19
35
  exports.generateFilesFromTemplates = generateFilesFromTemplates;
@@ -2,6 +2,7 @@ import type { Tree } from '@nx/devkit';
2
2
  import type { Schema } from '../schema';
3
3
  export type NormalizedNgRxFeatureStoreGeneratorOptions = Schema & {
4
4
  parentDirectory: string;
5
+ subdirectory: string;
5
6
  rxjsVersion: string;
6
7
  };
7
8
  export declare function normalizeOptions(tree: Tree, options: Schema): NormalizedNgRxFeatureStoreGeneratorOptions;
@@ -6,14 +6,33 @@ const semver_1 = require("@nx/devkit/src/utils/semver");
6
6
  const path_1 = require("path");
7
7
  const versions_1 = require("../../../utils/versions");
8
8
  function normalizeOptions(tree, options) {
9
- var _a;
10
9
  let rxjsVersion;
11
10
  try {
12
11
  rxjsVersion = (0, semver_1.checkAndCleanWithSemver)('rxjs', (0, devkit_1.readJson)(tree, 'package.json').dependencies['rxjs']);
13
12
  }
14
- catch (_b) {
13
+ catch {
15
14
  rxjsVersion = (0, semver_1.checkAndCleanWithSemver)('rxjs', versions_1.rxjsVersion);
16
15
  }
17
- return Object.assign(Object.assign({}, options), { parentDirectory: options.parent ? (0, path_1.dirname)(options.parent) : undefined, route: options.route === '' ? `''` : (_a = options.route) !== null && _a !== void 0 ? _a : `''`, directory: (0, devkit_1.names)(options.directory).fileName, rxjsVersion });
16
+ const { subdirectory, name } = determineSubdirectoryAndName(options.name);
17
+ return {
18
+ ...options,
19
+ name,
20
+ subdirectory,
21
+ parentDirectory: options.parent ? (0, path_1.dirname)(options.parent) : undefined,
22
+ route: options.route === '' ? `''` : options.route ?? `''`,
23
+ directory: (0, devkit_1.names)(options.directory).fileName,
24
+ rxjsVersion,
25
+ };
18
26
  }
19
27
  exports.normalizeOptions = normalizeOptions;
28
+ function determineSubdirectoryAndName(name) {
29
+ if (name.includes('/')) {
30
+ const parts = name.split('/');
31
+ const storeName = parts.pop();
32
+ const subdirectory = (0, devkit_1.joinPathFragments)(...parts);
33
+ return { subdirectory, name: storeName };
34
+ }
35
+ else {
36
+ return { name };
37
+ }
38
+ }
@@ -5,7 +5,6 @@ const version_utils_1 = require("../..//utils/version-utils");
5
5
  const version_utils_2 = require("../../../utils/version-utils");
6
6
  const semver_1 = require("semver");
7
7
  function validateOptions(tree, options) {
8
- var _a, _b;
9
8
  if (!options.parent) {
10
9
  throw new Error('Please provide a value for "--parent"!');
11
10
  }
@@ -14,7 +13,8 @@ function validateOptions(tree, options) {
14
13
  }
15
14
  const angularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
16
15
  const intendedNgRxVersionForAngularMajor = (0, version_utils_2.getPkgVersionForAngularMajorVersion)('ngrxVersion', angularVersionInfo.major);
17
- const ngrxMajorVersion = (_b = (_a = (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@ngrx/store')) === null || _a === void 0 ? void 0 : _a.major) !== null && _b !== void 0 ? _b : (0, semver_1.major)((0, semver_1.coerce)(intendedNgRxVersionForAngularMajor));
16
+ const ngrxMajorVersion = (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@ngrx/store')?.major ??
17
+ (0, semver_1.major)((0, semver_1.coerce)(intendedNgRxVersionForAngularMajor));
18
18
  if ((0, semver_1.lt)(angularVersionInfo.version, '14.1.0') || ngrxMajorVersion < 15) {
19
19
  const parentContent = tree.read(options.parent, 'utf-8');
20
20
  const { tsquery } = require('@phenomnomnominal/tsquery');