@nx/angular 23.0.0-beta.2 → 23.0.0-beta.20

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 (298) hide show
  1. package/generators.d.ts +0 -2
  2. package/generators.d.ts.map +1 -1
  3. package/generators.js +0 -2
  4. package/generators.json +0 -13
  5. package/migrations.json +19 -536
  6. package/package.json +9 -11
  7. package/plugins/component-testing.js +8 -8
  8. package/src/builders/utilities/buildable-libs.d.ts +1 -1
  9. package/src/builders/utilities/buildable-libs.d.ts.map +1 -1
  10. package/src/builders/utilities/buildable-libs.js +3 -3
  11. package/src/builders/utilities/module-federation.d.ts.map +1 -1
  12. package/src/builders/utilities/module-federation.js +9 -11
  13. package/src/builders/utilities/webpack.d.ts.map +1 -1
  14. package/src/builders/utilities/webpack.js +3 -7
  15. package/src/executors/delegate-build/delegate-build.impl.js +3 -3
  16. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts.map +1 -1
  17. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +4 -5
  18. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +4 -5
  19. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +2 -2
  20. package/src/executors/package/package.impl.d.ts +1 -1
  21. package/src/executors/package/package.impl.d.ts.map +1 -1
  22. package/src/executors/package/package.impl.js +5 -5
  23. package/src/executors/utilities/angular-version-utils.d.ts.map +1 -1
  24. package/src/executors/utilities/angular-version-utils.js +3 -8
  25. package/src/executors/utilities/buildable-libs.d.ts +1 -1
  26. package/src/executors/utilities/buildable-libs.d.ts.map +1 -1
  27. package/src/executors/utilities/buildable-libs.js +3 -3
  28. package/src/executors/utilities/esbuild-extensions.d.ts.map +1 -1
  29. package/src/executors/utilities/esbuild-extensions.js +5 -24
  30. package/src/executors/utilities/module-loader.d.ts +1 -1
  31. package/src/executors/utilities/module-loader.d.ts.map +1 -1
  32. package/src/executors/utilities/module-loader.js +24 -20
  33. package/src/generators/add-linting/add-linting.d.ts.map +1 -1
  34. package/src/generators/add-linting/add-linting.js +17 -17
  35. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.d.ts.map +1 -1
  36. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +4 -5
  37. package/src/generators/application/application.d.ts.map +1 -1
  38. package/src/generators/application/application.js +7 -4
  39. package/src/generators/application/lib/add-e2e.d.ts.map +1 -1
  40. package/src/generators/application/lib/add-e2e.js +5 -7
  41. package/src/generators/application/lib/add-unit-test-runner.d.ts +2 -2
  42. package/src/generators/application/lib/add-unit-test-runner.d.ts.map +1 -1
  43. package/src/generators/application/lib/add-unit-test-runner.js +5 -5
  44. package/src/generators/application/lib/create-project.d.ts.map +1 -1
  45. package/src/generators/application/lib/create-project.js +3 -3
  46. package/src/generators/application/lib/normalize-options.js +3 -3
  47. package/src/generators/application/lib/update-tsconfig-files.js +3 -3
  48. package/src/generators/component/component.d.ts.map +1 -1
  49. package/src/generators/component/component.js +2 -0
  50. package/src/generators/component/lib/component.js +2 -2
  51. package/src/generators/component/lib/normalize-options.js +2 -2
  52. package/src/generators/component-story/component-story.d.ts.map +1 -1
  53. package/src/generators/component-story/component-story.js +2 -0
  54. package/src/generators/component-test/component-test.d.ts.map +1 -1
  55. package/src/generators/component-test/component-test.js +2 -0
  56. package/src/generators/convert-to-application-executor/convert-to-application-executor.d.ts.map +1 -1
  57. package/src/generators/convert-to-application-executor/convert-to-application-executor.js +2 -0
  58. package/src/generators/convert-to-rspack/convert-to-rspack.d.ts.map +1 -1
  59. package/src/generators/convert-to-rspack/convert-to-rspack.js +5 -4
  60. package/src/generators/convert-to-rspack/lib/create-config.js +1 -1
  61. package/src/generators/convert-to-rspack/lib/get-custom-webpack-config.js +2 -2
  62. package/src/generators/convert-to-with-mf/convert-to-with-mf.d.ts +1 -1
  63. package/src/generators/convert-to-with-mf/convert-to-with-mf.d.ts.map +1 -1
  64. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +5 -0
  65. package/src/generators/convert-to-with-mf/lib/check-name-matches.js +2 -2
  66. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js +2 -2
  67. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.js +4 -4
  68. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js +2 -2
  69. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +1 -1
  70. package/src/generators/cypress-component-configuration/cypress-component-configuration.d.ts.map +1 -1
  71. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +8 -6
  72. package/src/generators/directive/directive.d.ts.map +1 -1
  73. package/src/generators/directive/directive.js +2 -0
  74. package/src/generators/directive/lib/normalize-options.js +2 -2
  75. package/src/generators/federate-module/federate-module.d.ts.map +1 -1
  76. package/src/generators/federate-module/federate-module.js +2 -0
  77. package/src/generators/federate-module/lib/add-path-to-exposes.js +6 -6
  78. package/src/generators/federate-module/lib/add-remote.js +2 -2
  79. package/src/generators/host/host.d.ts.map +1 -1
  80. package/src/generators/host/host.js +10 -7
  81. package/src/generators/host/lib/update-ssr-setup.js +2 -2
  82. package/src/generators/host/schema.d.ts +1 -0
  83. package/src/generators/host/schema.json +4 -0
  84. package/src/generators/init/init.d.ts.map +1 -1
  85. package/src/generators/init/init.js +4 -2
  86. package/src/generators/library/lib/add-children.js +2 -2
  87. package/src/generators/library/lib/add-load-children.js +2 -2
  88. package/src/generators/library/lib/add-project.js +4 -4
  89. package/src/generators/library/lib/create-files.js +2 -2
  90. package/src/generators/library/lib/normalize-options.js +3 -3
  91. package/src/generators/library/lib/update-tsconfig-files.js +3 -3
  92. package/src/generators/library/library.d.ts.map +1 -1
  93. package/src/generators/library/library.js +16 -11
  94. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.d.ts.map +1 -1
  95. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +2 -0
  96. package/src/generators/move/lib/update-module-name.js +2 -2
  97. package/src/generators/ng-add/migrators/migrator.d.ts.map +1 -1
  98. package/src/generators/ng-add/migrators/migrator.js +10 -5
  99. package/src/generators/ng-add/migrators/projects/e2e.migrator.js +6 -6
  100. package/src/generators/ng-add/ng-add.d.ts.map +1 -1
  101. package/src/generators/ng-add/ng-add.js +2 -0
  102. package/src/generators/ng-add/utilities/workspace.js +8 -8
  103. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +2 -2
  104. package/src/generators/ngrx-feature-store/lib/add-imports.js +2 -2
  105. package/src/generators/ngrx-feature-store/lib/normalize-options.js +5 -5
  106. package/src/generators/ngrx-feature-store/ngrx-feature-store.d.ts.map +1 -1
  107. package/src/generators/ngrx-feature-store/ngrx-feature-store.js +2 -0
  108. package/src/generators/ngrx-root-store/lib/add-imports.js +2 -2
  109. package/src/generators/ngrx-root-store/lib/normalize-options.js +5 -5
  110. package/src/generators/ngrx-root-store/ngrx-root-store.d.ts.map +1 -1
  111. package/src/generators/ngrx-root-store/ngrx-root-store.js +2 -0
  112. package/src/generators/pipe/lib/normalize-options.js +2 -2
  113. package/src/generators/pipe/pipe.d.ts.map +1 -1
  114. package/src/generators/pipe/pipe.js +2 -0
  115. package/src/generators/remote/lib/update-ssr-setup.js +2 -2
  116. package/src/generators/remote/remote.d.ts.map +1 -1
  117. package/src/generators/remote/remote.js +7 -5
  118. package/src/generators/scam/lib/convert-component-to-scam.js +2 -2
  119. package/src/generators/scam/lib/normalize-options.js +2 -2
  120. package/src/generators/scam/scam.d.ts.map +1 -1
  121. package/src/generators/scam/scam.js +2 -0
  122. package/src/generators/scam-directive/lib/convert-directive-to-scam.js +2 -2
  123. package/src/generators/scam-directive/lib/normalize-options.js +2 -2
  124. package/src/generators/scam-directive/scam-directive.d.ts.map +1 -1
  125. package/src/generators/scam-directive/scam-directive.js +2 -0
  126. package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +2 -2
  127. package/src/generators/scam-pipe/lib/normalize-options.js +2 -2
  128. package/src/generators/scam-pipe/scam-pipe.d.ts.map +1 -1
  129. package/src/generators/scam-pipe/scam-pipe.js +2 -0
  130. package/src/generators/scam-to-standalone/scam-to-standalone.d.ts.map +1 -1
  131. package/src/generators/scam-to-standalone/scam-to-standalone.js +2 -0
  132. package/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +1 -1
  133. package/src/generators/setup-mf/lib/add-cypress-workaround.js +3 -3
  134. package/src/generators/setup-mf/lib/add-remote-to-host.d.ts.map +1 -1
  135. package/src/generators/setup-mf/lib/add-remote-to-host.js +5 -6
  136. package/src/generators/setup-mf/lib/change-build-target.d.ts.map +1 -1
  137. package/src/generators/setup-mf/lib/change-build-target.js +2 -2
  138. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +2 -2
  139. package/src/generators/setup-mf/setup-mf.d.ts.map +1 -1
  140. package/src/generators/setup-mf/setup-mf.js +8 -0
  141. package/src/generators/setup-ssr/lib/add-hydration.d.ts.map +1 -1
  142. package/src/generators/setup-ssr/lib/add-hydration.js +3 -4
  143. package/src/generators/setup-ssr/lib/add-server-file.js +2 -2
  144. package/src/generators/setup-ssr/lib/generate-files.js +2 -2
  145. package/src/generators/setup-ssr/lib/generate-server-ts-config.js +2 -2
  146. package/src/generators/setup-ssr/lib/normalize-options.d.ts.map +1 -1
  147. package/src/generators/setup-ssr/lib/normalize-options.js +2 -2
  148. package/src/generators/setup-ssr/lib/update-project-config.d.ts.map +1 -1
  149. package/src/generators/setup-ssr/lib/update-project-config.js +19 -7
  150. package/src/generators/setup-ssr/setup-ssr.d.ts.map +1 -1
  151. package/src/generators/setup-ssr/setup-ssr.js +2 -0
  152. package/src/generators/stories/stories.d.ts.map +1 -1
  153. package/src/generators/stories/stories.js +2 -0
  154. package/src/generators/storybook-configuration/storybook-configuration.d.ts.map +1 -1
  155. package/src/generators/storybook-configuration/storybook-configuration.js +2 -0
  156. package/src/generators/utils/add-mf-env-to-inputs.d.ts.map +1 -1
  157. package/src/generators/utils/add-mf-env-to-inputs.js +16 -9
  158. package/src/generators/utils/add-vitest.d.ts +3 -3
  159. package/src/generators/utils/add-vitest.d.ts.map +1 -1
  160. package/src/generators/utils/add-vitest.js +41 -26
  161. package/src/generators/utils/app-components-info.js +2 -2
  162. package/src/generators/utils/find-module.js +2 -2
  163. package/src/generators/utils/insert-ngmodule-import.js +6 -6
  164. package/src/generators/utils/storybook-ast/component-info.js +5 -5
  165. package/src/generators/utils/storybook-ast/module-info.js +9 -9
  166. package/src/generators/utils/storybook-ast/storybook-inputs.js +4 -4
  167. package/src/generators/utils/testing.js +2 -2
  168. package/src/generators/utils/tsconfig-utils.js +2 -2
  169. package/src/generators/utils/validations.js +2 -2
  170. package/src/generators/utils/version-utils.d.ts.map +1 -1
  171. package/src/generators/utils/version-utils.js +2 -7
  172. package/src/generators/web-worker/web-worker.d.ts.map +1 -1
  173. package/src/generators/web-worker/web-worker.js +2 -0
  174. package/src/migrations/update-19-6-1/ensure-depends-on-for-mf.d.ts.map +1 -1
  175. package/src/migrations/update-19-6-1/ensure-depends-on-for-mf.js +26 -19
  176. package/src/migrations/update-20-2-0/disable-angular-eslint-prefer-standalone.js +8 -8
  177. package/src/migrations/update-20-2-0/migrate-with-mf-import-to-new-package.d.ts.map +1 -1
  178. package/src/migrations/update-20-2-0/migrate-with-mf-import-to-new-package.js +2 -2
  179. package/src/migrations/update-20-2-0/remove-angular-eslint-rules.js +6 -6
  180. package/src/migrations/update-20-2-0/remove-tailwind-config-from-ng-packagr-executors.d.ts.map +1 -1
  181. package/src/migrations/update-20-2-0/remove-tailwind-config-from-ng-packagr-executors.js +45 -12
  182. package/src/migrations/update-20-3-0/ensure-nx-module-federation-package.d.ts.map +1 -1
  183. package/src/migrations/update-20-3-0/ensure-nx-module-federation-package.js +2 -2
  184. package/src/migrations/update-21-0-0/change-data-persistence-operators-imports-to-ngrx-router-store-data-persistence.js +2 -2
  185. package/src/migrations/update-21-5-0/utils/karma-config-analyzer.js +2 -2
  186. package/src/migrations/update-22-3-0/update-module-resolution.js +2 -2
  187. package/src/migrations/update-22-3-0/update-ssr-webpack-config.js +2 -2
  188. package/src/migrations/{update-17-2-0/rename-webpack-dev-server.d.ts → update-23-0-0/migrate-ngrx-generator-defaults.d.ts} +1 -1
  189. package/src/migrations/update-23-0-0/migrate-ngrx-generator-defaults.d.ts.map +1 -0
  190. package/src/migrations/update-23-0-0/migrate-ngrx-generator-defaults.js +120 -0
  191. package/src/migrations/update-23-0-0/migrate-with-mf-import-to-new-package.d.ts +3 -0
  192. package/src/migrations/update-23-0-0/migrate-with-mf-import-to-new-package.d.ts.map +1 -0
  193. package/src/migrations/update-23-0-0/migrate-with-mf-import-to-new-package.js +45 -0
  194. package/src/plugins/plugin.d.ts.map +1 -1
  195. package/src/plugins/plugin.js +54 -22
  196. package/src/utils/assert-supported-angular-version.d.ts +3 -0
  197. package/src/utils/assert-supported-angular-version.d.ts.map +1 -0
  198. package/src/utils/assert-supported-angular-version.js +9 -0
  199. package/src/utils/backward-compatible-versions.js +2 -2
  200. package/src/utils/get-mf-projects.js +3 -3
  201. package/src/utils/index.d.ts +1 -0
  202. package/src/utils/index.d.ts.map +1 -1
  203. package/src/utils/index.js +3 -1
  204. package/src/utils/nx-devkit/ast-utils.d.ts.map +1 -1
  205. package/src/utils/nx-devkit/ast-utils.js +17 -18
  206. package/src/utils/nx-devkit/route-utils.js +3 -3
  207. package/src/utils/versions.d.ts +1 -1
  208. package/src/utils/versions.d.ts.map +1 -1
  209. package/src/utils/versions.js +8 -3
  210. package/tailwind.js +2 -2
  211. package/module-federation/index.d.ts +0 -6
  212. package/module-federation/index.d.ts.map +0 -1
  213. package/module-federation/index.js +0 -6
  214. package/src/generators/add-linting/lib/create-eslint-configuration.d.ts +0 -16
  215. package/src/generators/add-linting/lib/create-eslint-configuration.d.ts.map +0 -1
  216. package/src/generators/add-linting/lib/create-eslint-configuration.js +0 -121
  217. package/src/generators/move/move.d.ts +0 -7
  218. package/src/generators/move/move.d.ts.map +0 -1
  219. package/src/generators/move/move.js +0 -11
  220. package/src/generators/move/schema.d.ts +0 -8
  221. package/src/generators/move/schema.json +0 -56
  222. package/src/generators/ngrx/files/__directory__/__fileName__.actions.ts__tmpl__ +0 -16
  223. package/src/generators/ngrx/files/__directory__/__fileName__.effects.spec.ts__tmpl__ +0 -37
  224. package/src/generators/ngrx/files/__directory__/__fileName__.effects.ts__tmpl__ +0 -22
  225. package/src/generators/ngrx/files/__directory__/__fileName__.facade.spec.ts__tmpl__ +0 -103
  226. package/src/generators/ngrx/files/__directory__/__fileName__.facade.ts__tmpl__ +0 -27
  227. package/src/generators/ngrx/files/__directory__/__fileName__.models.ts__tmpl__ +0 -7
  228. package/src/generators/ngrx/files/__directory__/__fileName__.reducer.spec.ts__tmpl__ +0 -37
  229. package/src/generators/ngrx/files/__directory__/__fileName__.reducer.ts__tmpl__ +0 -41
  230. package/src/generators/ngrx/files/__directory__/__fileName__.selectors.spec.ts__tmpl__ +0 -58
  231. package/src/generators/ngrx/files/__directory__/__fileName__.selectors.ts__tmpl__ +0 -38
  232. package/src/generators/ngrx/lib/add-exports-barrel.d.ts +0 -7
  233. package/src/generators/ngrx/lib/add-exports-barrel.d.ts.map +0 -1
  234. package/src/generators/ngrx/lib/add-exports-barrel.js +0 -44
  235. package/src/generators/ngrx/lib/add-imports-to-module.d.ts +0 -4
  236. package/src/generators/ngrx/lib/add-imports-to-module.d.ts.map +0 -1
  237. package/src/generators/ngrx/lib/add-imports-to-module.js +0 -181
  238. package/src/generators/ngrx/lib/add-ngrx-to-package-json.d.ts +0 -4
  239. package/src/generators/ngrx/lib/add-ngrx-to-package-json.d.ts.map +0 -1
  240. package/src/generators/ngrx/lib/add-ngrx-to-package-json.js +0 -23
  241. package/src/generators/ngrx/lib/generate-files.d.ts +0 -7
  242. package/src/generators/ngrx/lib/generate-files.d.ts.map +0 -1
  243. package/src/generators/ngrx/lib/generate-files.js +0 -23
  244. package/src/generators/ngrx/lib/index.d.ts +0 -7
  245. package/src/generators/ngrx/lib/index.d.ts.map +0 -1
  246. package/src/generators/ngrx/lib/index.js +0 -15
  247. package/src/generators/ngrx/lib/normalize-options.d.ts +0 -9
  248. package/src/generators/ngrx/lib/normalize-options.d.ts.map +0 -1
  249. package/src/generators/ngrx/lib/normalize-options.js +0 -30
  250. package/src/generators/ngrx/lib/validate-options.d.ts +0 -4
  251. package/src/generators/ngrx/lib/validate-options.d.ts.map +0 -1
  252. package/src/generators/ngrx/lib/validate-options.js +0 -14
  253. package/src/generators/ngrx/ngrx.d.ts +0 -8
  254. package/src/generators/ngrx/ngrx.d.ts.map +0 -1
  255. package/src/generators/ngrx/ngrx.js +0 -28
  256. package/src/generators/ngrx/schema.d.ts +0 -14
  257. package/src/generators/ngrx/schema.json +0 -102
  258. package/src/migrations/update-17-1-0/browser-target-to-build-target.d.ts +0 -4
  259. package/src/migrations/update-17-1-0/browser-target-to-build-target.d.ts.map +0 -1
  260. package/src/migrations/update-17-1-0/browser-target-to-build-target.js +0 -50
  261. package/src/migrations/update-17-1-0/replace-nguniversal-builders.d.ts +0 -3
  262. package/src/migrations/update-17-1-0/replace-nguniversal-builders.d.ts.map +0 -1
  263. package/src/migrations/update-17-1-0/replace-nguniversal-builders.js +0 -75
  264. package/src/migrations/update-17-1-0/replace-nguniversal-engines.d.ts +0 -3
  265. package/src/migrations/update-17-1-0/replace-nguniversal-engines.d.ts.map +0 -1
  266. package/src/migrations/update-17-1-0/replace-nguniversal-engines.js +0 -184
  267. package/src/migrations/update-17-1-0/update-angular-cli.d.ts +0 -4
  268. package/src/migrations/update-17-1-0/update-angular-cli.d.ts.map +0 -1
  269. package/src/migrations/update-17-1-0/update-angular-cli.js +0 -14
  270. package/src/migrations/update-17-1-0/update-zone-js-deep-import.d.ts +0 -3
  271. package/src/migrations/update-17-1-0/update-zone-js-deep-import.d.ts.map +0 -1
  272. package/src/migrations/update-17-1-0/update-zone-js-deep-import.js +0 -37
  273. package/src/migrations/update-17-2-0/rename-webpack-dev-server.d.ts.map +0 -1
  274. package/src/migrations/update-17-2-0/rename-webpack-dev-server.js +0 -40
  275. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.d.ts +0 -3
  276. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.d.ts.map +0 -1
  277. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.js +0 -25
  278. package/src/migrations/update-17-3-0/add-browser-sync-dependency.d.ts +0 -3
  279. package/src/migrations/update-17-3-0/add-browser-sync-dependency.d.ts.map +0 -1
  280. package/src/migrations/update-17-3-0/add-browser-sync-dependency.js +0 -25
  281. package/src/migrations/update-17-3-0/update-angular-cli.d.ts +0 -4
  282. package/src/migrations/update-17-3-0/update-angular-cli.d.ts.map +0 -1
  283. package/src/migrations/update-17-3-0/update-angular-cli.js +0 -14
  284. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.d.ts +0 -3
  285. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.d.ts.map +0 -1
  286. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.js +0 -26
  287. package/src/migrations/update-18-1-0/update-angular-cli.d.ts +0 -4
  288. package/src/migrations/update-18-1-0/update-angular-cli.d.ts.map +0 -1
  289. package/src/migrations/update-18-1-0/update-angular-cli.js +0 -14
  290. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.d.ts +0 -3
  291. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.d.ts.map +0 -1
  292. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.js +0 -53
  293. package/src/migrations/update-18-2-0/update-angular-cli.d.ts +0 -4
  294. package/src/migrations/update-18-2-0/update-angular-cli.d.ts.map +0 -1
  295. package/src/migrations/update-18-2-0/update-angular-cli.js +0 -14
  296. package/src/migrations/update-19-1-0/update-angular-cli.d.ts +0 -4
  297. package/src/migrations/update-19-1-0/update-angular-cli.d.ts.map +0 -1
  298. package/src/migrations/update-19-1-0/update-angular-cli.js +0 -14
@@ -1,103 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { TestBed } from '@angular/core/testing';
3
- import { EffectsModule } from '@ngrx/effects';
4
- import { StoreModule, Store } from '@ngrx/store';
5
- <%_ if (isRxJs7) { _%>
6
- import { firstValueFrom } from 'rxjs';
7
- <%_ } else { _%>
8
- import { first } from 'rxjs/operators';
9
- <%_ } _%>
10
-
11
- import * as <%= className %>Actions from './<%= fileName %>.actions';
12
- import { <%= className %>Effects } from './<%= fileName %>.effects';
13
- import { <%= className %>Facade } from './<%= fileName %>.facade';
14
- import { <%= className %>Entity } from './<%= fileName %>.models';
15
- import {
16
- <%= constantName %>_FEATURE_KEY,
17
- <%= className %>State,
18
- initial<%= className %>State,
19
- <%= propertyName %>Reducer
20
- } from './<%= fileName %>.reducer';
21
- import * as <%= className %>Selectors from './<%= fileName %>.selectors';
22
-
23
- interface TestSchema {
24
- <%= propertyName %>: <%= className %>State;
25
- }
26
-
27
- describe('<%= className %>Facade', () => {
28
- let facade: <%= className %>Facade;
29
- let store: Store<TestSchema>;
30
- const create<%= className %>Entity = (id: string, name = ''): <%= className %>Entity => ({
31
- id,
32
- name: name || `name-${id}`
33
- });
34
-
35
- describe('used in NgModule', () => {
36
- beforeEach(() => {
37
- @NgModule({
38
- imports: [
39
- StoreModule.forFeature(<%= constantName %>_FEATURE_KEY, <%= propertyName %>Reducer),
40
- EffectsModule.forFeature([<%= className %>Effects])
41
- ],
42
- providers: [<%= className %>Facade]
43
- })
44
- class CustomFeatureModule {}
45
-
46
- @NgModule({
47
- imports: [
48
- StoreModule.forRoot({}),
49
- EffectsModule.forRoot([]),
50
- CustomFeatureModule,
51
- ]
52
- })
53
- class RootModule {}
54
- TestBed.configureTestingModule({ imports: [RootModule] });
55
-
56
- store = TestBed.inject(Store);
57
- facade = TestBed.inject(<%= className %>Facade);
58
- });
59
-
60
- /**
61
- * The initially generated facade::loadAll() returns empty array
62
- */
63
- it('loadAll() should return empty list with loaded == true', async () => {
64
- let list = await <% if (isRxJs7) { %>firstValueFrom(facade.all<%= className %>$)<% } else { %>facade.all<%= className %>$.pipe(first()).toPromise()<% } %>;
65
- let isLoaded = await <% if (isRxJs7) { %>firstValueFrom(facade.loaded$)<% } else { %>facade.loaded$.pipe(first()).toPromise()<% } %>;
66
-
67
- expect(list.length).toBe(0);
68
- expect(isLoaded).toBe(false);
69
-
70
- facade.init();
71
-
72
- list = await <% if (isRxJs7) { %>firstValueFrom(facade.all<%= className %>$)<% } else { %>facade.all<%= className %>$.pipe(first()).toPromise()<% } %>;
73
- isLoaded = await <% if (isRxJs7) { %>firstValueFrom(facade.loaded$)<% } else { %>facade.loaded$.pipe(first()).toPromise()<% } %>;
74
-
75
- expect(list.length).toBe(0);
76
- expect(isLoaded).toBe(true);
77
- });
78
-
79
- /**
80
- * Use `load<%= className %>Success` to manually update list
81
- */
82
- it('all<%= className %>$ should return the loaded list; and loaded flag == true', async () => {
83
- let list = await <% if (isRxJs7) { %>firstValueFrom(facade.all<%= className %>$)<% } else { %>facade.all<%= className %>$.pipe(first()).toPromise()<% } %>;
84
- let isLoaded = await <% if (isRxJs7) { %>firstValueFrom(facade.loaded$)<% } else { %>facade.loaded$.pipe(first()).toPromise()<% } %>;
85
-
86
- expect(list.length).toBe(0);
87
- expect(isLoaded).toBe(false);
88
-
89
- store.dispatch(<%= className %>Actions.load<%= className %>Success({
90
- <%= propertyName %>: [
91
- create<%= className %>Entity('AAA'),
92
- create<%= className %>Entity('BBB')
93
- ]})
94
- );
95
-
96
- list = await <% if (isRxJs7) { %>firstValueFrom(facade.all<%= className %>$)<% } else { %>facade.all<%= className %>$.pipe(first()).toPromise()<% } %>;
97
- isLoaded = await <% if (isRxJs7) { %>firstValueFrom(facade.loaded$)<% } else { %>facade.loaded$.pipe(first()).toPromise()<% } %>;
98
-
99
- expect(list.length).toBe(2);
100
- expect(isLoaded).toBe(true);
101
- });
102
- });
103
- });
@@ -1,27 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { select, Store, Action } from '@ngrx/store';
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';
7
-
8
- @Injectable()
9
- export class <%= className %>Facade {
10
- private readonly store = inject(Store);
11
-
12
- /**
13
- * Combine pieces of state using createSelector,
14
- * and expose them as observables through the facade.
15
- */
16
- loaded$ = this.store.pipe(select(<%= className %>Selectors.select<%= className %>Loaded));
17
- all<%= className %>$ = this.store.pipe(select(<%= className %>Selectors.selectAll<%= className %>));
18
- selected<%= className %>$ = this.store.pipe(select(<%= className %>Selectors.selectEntity));
19
-
20
- /**
21
- * Use the initialization action to perform one
22
- * or more tasks in your Effects.
23
- */
24
- init() {
25
- this.store.dispatch(<%= className %>Actions.init<%= className %>());
26
- }
27
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Interface for the '<%= className %>' data
3
- */
4
- export interface <%= className %>Entity {
5
- id: string | number; // Primary ID
6
- name: string;
7
- }
@@ -1,37 +0,0 @@
1
- import { Action } from '@ngrx/store';
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';
6
-
7
- describe('<%= className %> Reducer', () => {
8
- const create<%= className %>Entity = (id: string, name = ''): <%= className %>Entity => ({
9
- id,
10
- name: name || `name-${id}`
11
- });
12
-
13
- describe('valid <%= className %> actions', () => {
14
- it('load<%= className %>Success should return the list of known <%= className %>', () => {
15
- const <%= propertyName %> = [
16
- create<%= className %>Entity('PRODUCT-AAA'),
17
- create<%= className %>Entity('PRODUCT-zzz')
18
- ];
19
- const action = <%= className %>Actions.load<%= className %>Success({ <%= propertyName %> });
20
-
21
- const result: <%= className %>State = <%= propertyName %>Reducer(initial<%= className %>State, action);
22
-
23
- expect(result.loaded).toBe(true);
24
- expect(result.ids.length).toBe(2);
25
- });
26
- });
27
-
28
- describe('unknown action', () => {
29
- it('should return the previous state', () => {
30
- const action = {} as Action;
31
-
32
- const result = <%= propertyName %>Reducer(initial<%= className %>State, action);
33
-
34
- expect(result).toBe(initial<%= className %>State);
35
- });
36
- });
37
- });
@@ -1,41 +0,0 @@
1
- import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';
2
- import { createReducer, on, Action } from '@ngrx/store';
3
-
4
- import * as <%= className %>Actions from './<%= fileName %>.actions';
5
- import { <%= className %>Entity } from './<%= fileName %>.models';
6
-
7
- export const <%= constantName %>_FEATURE_KEY = '<%= propertyName %>';
8
-
9
- export interface <%= className %>State extends EntityState<<%= className %>Entity> {
10
- selectedId?: string | number; // which <%= className %> record has been selected
11
- loaded: boolean; // has the <%= className %> list been loaded
12
- error?: string | null; // last known error (if any)
13
- }
14
-
15
- export interface <%= className %>PartialState {
16
- readonly [<%= constantName %>_FEATURE_KEY]: <%= className %>State;
17
- }
18
-
19
- export const <%= propertyName %>Adapter: EntityAdapter<<%= className %>Entity> = createEntityAdapter<<%= className %>Entity>();
20
-
21
- export const initial<%= className %>State: <%= className %>State = <%= propertyName %>Adapter.getInitialState({
22
- // set initial required properties
23
- loaded: false
24
- });
25
-
26
- const reducer = createReducer(
27
- initial<%= className %>State,
28
- on(<%= className %>Actions.init<%= className %>,
29
- state => ({ ...state, loaded: false, error: null })
30
- ),
31
- on(<%= className %>Actions.load<%= className %>Success,
32
- (state, { <%= propertyName %> }) => <%= propertyName %>Adapter.setAll(<%= propertyName %>, { ...state, loaded: true })
33
- ),
34
- on(<%= className %>Actions.load<%= className %>Failure,
35
- (state, { error }) => ({ ...state, error })
36
- ),
37
- );
38
-
39
- export function <%= propertyName %>Reducer(state: <%= className %>State | undefined, action: Action) {
40
- return reducer(state, action);
41
- }
@@ -1,58 +0,0 @@
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';
4
-
5
- describe('<%= className %> Selectors', () => {
6
- const ERROR_MSG = 'No Error Available';
7
- const get<%= className %>Id = (it: <%= className %>Entity) => it.id;
8
- const create<%= className %>Entity = (id: string, name = '') => ({
9
- id,
10
- name: name || `name-${id}`
11
- }) as <%= className %>Entity;
12
-
13
- let state: <%= className %>PartialState;
14
-
15
- beforeEach(() => {
16
- state = {
17
- <%= propertyName %>: <%= propertyName %>Adapter.setAll([
18
- create<%= className %>Entity('PRODUCT-AAA'),
19
- create<%= className %>Entity('PRODUCT-BBB'),
20
- create<%= className %>Entity('PRODUCT-CCC')
21
- ], {
22
- ...initial<%= className %>State,
23
- selectedId: 'PRODUCT-BBB',
24
- error: ERROR_MSG,
25
- loaded: true
26
- })
27
- };
28
- });
29
-
30
- describe('<%= className %> Selectors', () => {
31
- it('selectAll<%= className %>() should return the list of <%= className %>', () => {
32
- const results = <%= className %>Selectors.selectAll<%= className %>(state);
33
- const selId = get<%= className %>Id(results[1]);
34
-
35
- expect(results.length).toBe(3);
36
- expect(selId).toBe('PRODUCT-BBB');
37
- });
38
-
39
- it('selectEntity() should return the selected Entity', () => {
40
- const result = <%= className %>Selectors.selectEntity(state) as <%= className %>Entity;
41
- const selId = get<%= className %>Id(result);
42
-
43
- expect(selId).toBe('PRODUCT-BBB');
44
- });
45
-
46
- it('select<%= className %>Loaded() should return the current "loaded" status', () => {
47
- const result = <%= className %>Selectors.select<%= className %>Loaded(state);
48
-
49
- expect(result).toBe(true);
50
- });
51
-
52
- it('select<%= className %>Error() should return the current "error" state', () => {
53
- const result = <%= className %>Selectors.select<%= className %>Error(state);
54
-
55
- expect(result).toBe(ERROR_MSG);
56
- });
57
- });
58
- });
@@ -1,38 +0,0 @@
1
- import { createFeatureSelector, createSelector } from '@ngrx/store';
2
- import { <%= constantName %>_FEATURE_KEY, <%= className %>State, <%= propertyName %>Adapter } from './<%= fileName %>.reducer';
3
-
4
- // Lookup the '<%= className %>' feature state managed by NgRx
5
- export const select<%= className %>State = createFeatureSelector<<%= className %>State>(<%= constantName %>_FEATURE_KEY);
6
-
7
- const { selectAll, selectEntities } = <%= propertyName %>Adapter.getSelectors();
8
-
9
- export const select<%= className %>Loaded = createSelector(
10
- select<%= className %>State,
11
- (state: <%= className %>State) => state.loaded
12
- );
13
-
14
- export const select<%= className %>Error = createSelector(
15
- select<%= className %>State,
16
- (state: <%= className %>State) => state.error
17
- );
18
-
19
- export const selectAll<%= className %> = createSelector(
20
- select<%= className %>State,
21
- (state: <%= className %>State) => selectAll(state)
22
- );
23
-
24
- export const select<%= className %>Entities = createSelector(
25
- select<%= className %>State,
26
- (state: <%= className %>State) => selectEntities(state)
27
- );
28
-
29
- export const selectSelectedId = createSelector(
30
- select<%= className %>State,
31
- (state: <%= className %>State) => state.selectedId
32
- );
33
-
34
- export const selectEntity = createSelector(
35
- select<%= className %>Entities,
36
- selectSelectedId,
37
- (entities, selectedId) => (selectedId ? entities[selectedId] : undefined)
38
- );
@@ -1,7 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- import type { NormalizedNgRxGeneratorOptions } from './normalize-options';
3
- /**
4
- * Add ngrx feature exports to the public barrel in the feature library
5
- */
6
- export declare function addExportsToBarrel(tree: Tree, options: NormalizedNgRxGeneratorOptions): void;
7
- //# sourceMappingURL=add-exports-barrel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-exports-barrel.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx/lib/add-exports-barrel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAI1E;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,8BAA8B,GACtC,IAAI,CA+EN"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addExportsToBarrel = addExportsToBarrel;
4
- const devkit_1 = require("@nx/devkit");
5
- const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
6
- const js_1 = require("@nx/js");
7
- let tsModule;
8
- /**
9
- * Add ngrx feature exports to the public barrel in the feature library
10
- */
11
- function addExportsToBarrel(tree, options) {
12
- // Don't update the public barrel for the root state, only for feature states
13
- if (options.root) {
14
- return;
15
- }
16
- const indexFilePath = (0, devkit_1.joinPathFragments)(options.parentDirectory, '..', 'index.ts');
17
- if (!tree.exists(indexFilePath)) {
18
- return;
19
- }
20
- if (!tsModule) {
21
- tsModule = (0, ensure_typescript_1.ensureTypescript)();
22
- }
23
- const indexSourceText = tree.read(indexFilePath, 'utf-8');
24
- let sourceFile = tsModule.createSourceFile(indexFilePath, indexSourceText, tsModule.ScriptTarget.Latest, true);
25
- // Public API for the feature interfaces, selectors, and facade
26
- const { className, fileName } = (0, devkit_1.names)(options.name);
27
- const statePath = `./lib/${options.directory}/${fileName}`;
28
- sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, options.barrels
29
- ? `import * as ${className}Actions from '${statePath}.actions';`
30
- : `export * from '${statePath}.actions';`);
31
- sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, options.barrels
32
- ? `import * as ${className}Feature from '${statePath}.reducer';`
33
- : `export * from '${statePath}.reducer';`);
34
- sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, options.barrels
35
- ? `import * as ${className}Selectors from '${statePath}.selectors';`
36
- : `export * from '${statePath}.selectors';`);
37
- if (options.barrels) {
38
- sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, `export { ${className}Actions, ${className}Feature, ${className}Selectors };`);
39
- }
40
- sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, `export * from '${statePath}.models';`);
41
- if (options.facade) {
42
- sourceFile = (0, js_1.addGlobal)(tree, sourceFile, indexFilePath, `export * from '${statePath}.facade';`);
43
- }
44
- }
@@ -1,4 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- import type { NormalizedNgRxGeneratorOptions } from './normalize-options';
3
- export declare function addImportsToModule(tree: Tree, options: NormalizedNgRxGeneratorOptions): void;
4
- //# sourceMappingURL=add-imports-to-module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-imports-to-module.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx/lib/add-imports-to-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAWvC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAiJ1E,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,8BAA8B,GACtC,IAAI,CAgNN"}
@@ -1,181 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addImportsToModule = addImportsToModule;
4
- const devkit_1 = require("@nx/devkit");
5
- const js_1 = require("@nx/js");
6
- const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
7
- const ast_utils_1 = require("../../../utils/nx-devkit/ast-utils");
8
- const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
9
- let tsModule;
10
- function addRootStoreImport(tree, isParentStandalone, route, sourceFile, parentPath, provideRootStore, storeForRoot) {
11
- if (isParentStandalone) {
12
- const parentContents = tree.read(parentPath, 'utf-8');
13
- if (parentContents.includes('ApplicationConfig')) {
14
- (0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, provideRootStore);
15
- }
16
- else if (parentContents.includes('bootstrapApplication')) {
17
- (0, ast_utils_1.addProviderToBootstrapApplication)(tree, parentPath, provideRootStore);
18
- }
19
- else {
20
- (0, route_utils_1.addProviderToRoute)(tree, parentPath, route, provideRootStore);
21
- }
22
- }
23
- else {
24
- sourceFile = (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, storeForRoot);
25
- }
26
- return sourceFile;
27
- }
28
- function addRootEffectsImport(tree, isParentStandalone, route, sourceFile, parentPath, provideRootEffects, effectsForEmptyRoot) {
29
- if (isParentStandalone) {
30
- const parentContents = tree.read(parentPath, 'utf-8');
31
- if (parentContents.includes('ApplicationConfig')) {
32
- (0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, provideRootEffects);
33
- }
34
- else if (parentContents.includes('bootstrapApplication')) {
35
- (0, ast_utils_1.addProviderToBootstrapApplication)(tree, parentPath, provideRootEffects);
36
- }
37
- else {
38
- (0, route_utils_1.addProviderToRoute)(tree, parentPath, route, provideRootEffects);
39
- }
40
- }
41
- else {
42
- sourceFile = (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, effectsForEmptyRoot);
43
- }
44
- return sourceFile;
45
- }
46
- function addRouterStoreImport(tree, sourceFile, addImport, parentPath, storeRouterModule) {
47
- sourceFile = addImport(sourceFile, 'StoreRouterConnectingModule', '@ngrx/router-store');
48
- return (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, storeRouterModule);
49
- }
50
- function addStoreForFeatureImport(tree, isParentStandalone, route, sourceFile, parentPath, provideStoreForFeature, storeForFeature) {
51
- if (isParentStandalone) {
52
- const parentContents = tree.read(parentPath, 'utf-8');
53
- if (parentContents.includes('ApplicationConfig')) {
54
- (0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, provideStoreForFeature);
55
- }
56
- else if (parentContents.includes('bootstrapApplication')) {
57
- (0, ast_utils_1.addProviderToBootstrapApplication)(tree, parentPath, provideStoreForFeature);
58
- }
59
- else {
60
- (0, route_utils_1.addProviderToRoute)(tree, parentPath, route, provideStoreForFeature);
61
- }
62
- }
63
- else {
64
- sourceFile = (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, storeForFeature);
65
- }
66
- return sourceFile;
67
- }
68
- function addEffectsForFeatureImport(tree, isParentStandalone, route, sourceFile, parentPath, provideEffectsForFeature, effectsForFeature) {
69
- if (isParentStandalone) {
70
- const parentContents = tree.read(parentPath, 'utf-8');
71
- if (parentContents.includes('ApplicationConfig')) {
72
- (0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, provideEffectsForFeature);
73
- }
74
- else if (parentContents.includes('bootstrapApplication')) {
75
- (0, ast_utils_1.addProviderToBootstrapApplication)(tree, parentPath, provideEffectsForFeature);
76
- }
77
- else {
78
- (0, route_utils_1.addProviderToRoute)(tree, parentPath, route, provideEffectsForFeature);
79
- }
80
- }
81
- else {
82
- sourceFile = (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, effectsForFeature);
83
- }
84
- return sourceFile;
85
- }
86
- function addImportsToModule(tree, options) {
87
- if (!tsModule) {
88
- tsModule = (0, ensure_typescript_1.ensureTypescript)();
89
- }
90
- const parentPath = options.module ?? options.parent;
91
- const sourceText = tree.read(parentPath, 'utf-8');
92
- let sourceFile = tsModule.createSourceFile(parentPath, sourceText, tsModule.ScriptTarget.Latest, true);
93
- const isParentStandalone = !sourceText.includes('@NgModule');
94
- const addImport = (source, symbolName, fileName, isDefault = false) => {
95
- return (0, js_1.insertImport)(tree, source, parentPath, symbolName, fileName, isDefault);
96
- };
97
- const dir = `./${(0, devkit_1.names)(options.directory).fileName}`;
98
- const pathPrefix = `${dir}/${(0, devkit_1.names)(options.name).fileName}`;
99
- const reducerPath = `${pathPrefix}.reducer`;
100
- const effectsPath = `${pathPrefix}.effects`;
101
- const facadePath = `${pathPrefix}.facade`;
102
- const constantName = `${(0, devkit_1.names)(options.name).constantName}`;
103
- const effectsName = `${(0, devkit_1.names)(options.name).className}Effects`;
104
- const facadeName = `${(0, devkit_1.names)(options.name).className}Facade`;
105
- const className = `${(0, devkit_1.names)(options.name).className}`;
106
- const propertyName = `${(0, devkit_1.names)(options.name).propertyName}`;
107
- const reducerImports = `* as from${className}`;
108
- const storeMetaReducers = `metaReducers: []`;
109
- const storeForRoot = `StoreModule.forRoot({}, {
110
- ${storeMetaReducers},
111
- runtimeChecks: {
112
- strictActionImmutability: true,
113
- strictStateImmutability: true
114
- }
115
- })`;
116
- const effectsForRoot = `EffectsModule.forRoot([${effectsName}])`;
117
- const effectsForEmptyRoot = `EffectsModule.forRoot([])`;
118
- const storeForFeature = `StoreModule.forFeature(from${className}.${constantName}_FEATURE_KEY, from${className}.${propertyName}Reducer)`;
119
- const effectsForFeature = `EffectsModule.forFeature([${effectsName}])`;
120
- const storeRouterModule = 'StoreRouterConnectingModule.forRoot()';
121
- const provideRootStore = `provideStore()`;
122
- const provideRootEffects = `provideEffects()`;
123
- const provideEffectsForFeature = `provideEffects(${effectsName})`;
124
- const provideStoreForFeature = `provideState(from${className}.${constantName}_FEATURE_KEY, from${className}.${propertyName}Reducer)`;
125
- if (isParentStandalone) {
126
- sourceFile = addImport(sourceFile, 'provideStore', '@ngrx/store');
127
- sourceFile = addImport(sourceFile, 'provideState', '@ngrx/store');
128
- sourceFile = addImport(sourceFile, 'provideEffects', '@ngrx/effects');
129
- }
130
- else {
131
- sourceFile = addImport(sourceFile, 'StoreModule', '@ngrx/store');
132
- sourceFile = addImport(sourceFile, 'EffectsModule', '@ngrx/effects');
133
- }
134
- // this is just a heuristic
135
- const hasRouter = sourceText.indexOf('RouterModule') > -1;
136
- if (options.minimal && options.root) {
137
- sourceFile = addRootStoreImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideRootStore, storeForRoot);
138
- sourceFile = addRootEffectsImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideRootEffects, effectsForEmptyRoot);
139
- if (hasRouter && !isParentStandalone) {
140
- sourceFile = addRouterStoreImport(tree, sourceFile, addImport, parentPath, storeRouterModule);
141
- }
142
- }
143
- else {
144
- const addCommonImports = () => {
145
- sourceFile = addImport(sourceFile, reducerImports, reducerPath, true);
146
- sourceFile = addImport(sourceFile, effectsName, effectsPath);
147
- if (options.facade) {
148
- sourceFile = addImport(sourceFile, facadeName, facadePath);
149
- if (isParentStandalone) {
150
- if (tree.read(parentPath, 'utf-8').includes('ApplicationConfig')) {
151
- (0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, facadeName);
152
- }
153
- else {
154
- (0, route_utils_1.addProviderToRoute)(tree, parentPath, options.route, facadeName);
155
- }
156
- }
157
- else {
158
- sourceFile = (0, ast_utils_1.addProviderToModule)(tree, sourceFile, parentPath, facadeName);
159
- }
160
- }
161
- return sourceFile;
162
- };
163
- if (options.root) {
164
- sourceFile = addCommonImports();
165
- sourceFile = addRootStoreImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideRootStore, storeForRoot);
166
- sourceFile = addRootEffectsImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideRootEffects, effectsForRoot);
167
- if (hasRouter && !isParentStandalone) {
168
- sourceFile = addRouterStoreImport(tree, sourceFile, addImport, parentPath, storeRouterModule);
169
- }
170
- sourceFile = addStoreForFeatureImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideStoreForFeature, storeForFeature);
171
- if (isParentStandalone) {
172
- addEffectsForFeatureImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideEffectsForFeature, effectsForFeature);
173
- }
174
- }
175
- else {
176
- sourceFile = addCommonImports();
177
- sourceFile = addStoreForFeatureImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideStoreForFeature, storeForFeature);
178
- sourceFile = addEffectsForFeatureImport(tree, isParentStandalone, options.route, sourceFile, parentPath, provideEffectsForFeature, effectsForFeature);
179
- }
180
- }
181
- }
@@ -1,4 +0,0 @@
1
- import type { GeneratorCallback, Tree } from '@nx/devkit';
2
- import { NormalizedNgRxGeneratorOptions } from './normalize-options';
3
- export declare function addNgRxToPackageJson(tree: Tree, options: NormalizedNgRxGeneratorOptions): GeneratorCallback;
4
- //# sourceMappingURL=add-ngrx-to-package-json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-ngrx-to-package-json.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx/lib/add-ngrx-to-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAI1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAErE,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,8BAA8B,GACtC,iBAAiB,CAqBnB"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addNgRxToPackageJson = addNgRxToPackageJson;
4
- const devkit_1 = require("@nx/devkit");
5
- const semver_1 = require("semver");
6
- const version_utils_1 = require("../../utils/version-utils");
7
- function addNgRxToPackageJson(tree, options) {
8
- const jasmineMarblesVersion = (0, semver_1.gte)(options.rxjsVersion, '7.0.0')
9
- ? '~0.9.1'
10
- : '~0.8.3';
11
- const ngrxVersion = (0, version_utils_1.versions)(tree).ngrxVersion;
12
- return (0, devkit_1.addDependenciesToPackageJson)(tree, {
13
- '@ngrx/store': ngrxVersion,
14
- '@ngrx/effects': ngrxVersion,
15
- '@ngrx/entity': ngrxVersion,
16
- '@ngrx/router-store': ngrxVersion,
17
- '@ngrx/component-store': ngrxVersion,
18
- }, {
19
- '@ngrx/schematics': ngrxVersion,
20
- '@ngrx/store-devtools': ngrxVersion,
21
- 'jasmine-marbles': jasmineMarblesVersion,
22
- });
23
- }
@@ -1,7 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- import { NormalizedNgRxGeneratorOptions } from './normalize-options';
3
- /**
4
- * Generate 'feature' scaffolding: actions, reducer, effects, interfaces, selectors, facade
5
- */
6
- export declare function generateNgrxFilesFromTemplates(tree: Tree, options: NormalizedNgRxGeneratorOptions): void;
7
- //# sourceMappingURL=generate-files.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-files.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx/lib/generate-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAErE;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,8BAA8B,GACtC,IAAI,CAiCN"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateNgrxFilesFromTemplates = generateNgrxFilesFromTemplates;
4
- const devkit_1 = require("@nx/devkit");
5
- const semver_1 = require("semver");
6
- /**
7
- * Generate 'feature' scaffolding: actions, reducer, effects, interfaces, selectors, facade
8
- */
9
- function generateNgrxFilesFromTemplates(tree, options) {
10
- const name = options.name;
11
- const projectNames = (0, devkit_1.names)(name);
12
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files'), options.parentDirectory, {
13
- ...options,
14
- ...projectNames,
15
- importFromOperators: (0, semver_1.lt)(options.rxjsVersion, '7.2.0'),
16
- isRxJs7: options.rxjsMajorVersion >= 7,
17
- tmpl: '',
18
- });
19
- if (!options.facade) {
20
- tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${projectNames.fileName}.facade.ts`));
21
- tree.delete((0, devkit_1.joinPathFragments)(options.parentDirectory, options.directory, `${projectNames.fileName}.facade.spec.ts`));
22
- }
23
- }
@@ -1,7 +0,0 @@
1
- export { addExportsToBarrel } from './add-exports-barrel';
2
- export { addImportsToModule } from './add-imports-to-module';
3
- export { addNgRxToPackageJson } from './add-ngrx-to-package-json';
4
- export { generateNgrxFilesFromTemplates } from './generate-files';
5
- export { normalizeOptions } from './normalize-options';
6
- export { validateOptions } from './validate-options';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}