@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.
- package/generators.d.ts +0 -2
- package/generators.d.ts.map +1 -1
- package/generators.js +0 -2
- package/generators.json +0 -13
- package/migrations.json +19 -536
- package/package.json +9 -11
- package/plugins/component-testing.js +8 -8
- package/src/builders/utilities/buildable-libs.d.ts +1 -1
- package/src/builders/utilities/buildable-libs.d.ts.map +1 -1
- package/src/builders/utilities/buildable-libs.js +3 -3
- package/src/builders/utilities/module-federation.d.ts.map +1 -1
- package/src/builders/utilities/module-federation.js +9 -11
- package/src/builders/utilities/webpack.d.ts.map +1 -1
- package/src/builders/utilities/webpack.js +3 -7
- package/src/executors/delegate-build/delegate-build.impl.js +3 -3
- package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts.map +1 -1
- package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +4 -5
- package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +4 -5
- package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +2 -2
- package/src/executors/package/package.impl.d.ts +1 -1
- package/src/executors/package/package.impl.d.ts.map +1 -1
- package/src/executors/package/package.impl.js +5 -5
- package/src/executors/utilities/angular-version-utils.d.ts.map +1 -1
- package/src/executors/utilities/angular-version-utils.js +3 -8
- package/src/executors/utilities/buildable-libs.d.ts +1 -1
- package/src/executors/utilities/buildable-libs.d.ts.map +1 -1
- package/src/executors/utilities/buildable-libs.js +3 -3
- package/src/executors/utilities/esbuild-extensions.d.ts.map +1 -1
- package/src/executors/utilities/esbuild-extensions.js +5 -24
- package/src/executors/utilities/module-loader.d.ts +1 -1
- package/src/executors/utilities/module-loader.d.ts.map +1 -1
- package/src/executors/utilities/module-loader.js +24 -20
- package/src/generators/add-linting/add-linting.d.ts.map +1 -1
- package/src/generators/add-linting/add-linting.js +17 -17
- package/src/generators/add-linting/lib/add-angular-eslint-dependencies.d.ts.map +1 -1
- package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +4 -5
- package/src/generators/application/application.d.ts.map +1 -1
- package/src/generators/application/application.js +7 -4
- package/src/generators/application/lib/add-e2e.d.ts.map +1 -1
- package/src/generators/application/lib/add-e2e.js +5 -7
- package/src/generators/application/lib/add-unit-test-runner.d.ts +2 -2
- package/src/generators/application/lib/add-unit-test-runner.d.ts.map +1 -1
- package/src/generators/application/lib/add-unit-test-runner.js +5 -5
- package/src/generators/application/lib/create-project.d.ts.map +1 -1
- package/src/generators/application/lib/create-project.js +3 -3
- package/src/generators/application/lib/normalize-options.js +3 -3
- package/src/generators/application/lib/update-tsconfig-files.js +3 -3
- package/src/generators/component/component.d.ts.map +1 -1
- package/src/generators/component/component.js +2 -0
- package/src/generators/component/lib/component.js +2 -2
- package/src/generators/component/lib/normalize-options.js +2 -2
- package/src/generators/component-story/component-story.d.ts.map +1 -1
- package/src/generators/component-story/component-story.js +2 -0
- package/src/generators/component-test/component-test.d.ts.map +1 -1
- package/src/generators/component-test/component-test.js +2 -0
- package/src/generators/convert-to-application-executor/convert-to-application-executor.d.ts.map +1 -1
- package/src/generators/convert-to-application-executor/convert-to-application-executor.js +2 -0
- package/src/generators/convert-to-rspack/convert-to-rspack.d.ts.map +1 -1
- package/src/generators/convert-to-rspack/convert-to-rspack.js +5 -4
- package/src/generators/convert-to-rspack/lib/create-config.js +1 -1
- package/src/generators/convert-to-rspack/lib/get-custom-webpack-config.js +2 -2
- package/src/generators/convert-to-with-mf/convert-to-with-mf.d.ts +1 -1
- package/src/generators/convert-to-with-mf/convert-to-with-mf.d.ts.map +1 -1
- package/src/generators/convert-to-with-mf/convert-to-with-mf.js +5 -0
- package/src/generators/convert-to-with-mf/lib/check-name-matches.js +2 -2
- package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js +2 -2
- package/src/generators/convert-to-with-mf/lib/is-host-remote-config.js +4 -4
- package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js +2 -2
- package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +1 -1
- package/src/generators/cypress-component-configuration/cypress-component-configuration.d.ts.map +1 -1
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js +8 -6
- package/src/generators/directive/directive.d.ts.map +1 -1
- package/src/generators/directive/directive.js +2 -0
- package/src/generators/directive/lib/normalize-options.js +2 -2
- package/src/generators/federate-module/federate-module.d.ts.map +1 -1
- package/src/generators/federate-module/federate-module.js +2 -0
- package/src/generators/federate-module/lib/add-path-to-exposes.js +6 -6
- package/src/generators/federate-module/lib/add-remote.js +2 -2
- package/src/generators/host/host.d.ts.map +1 -1
- package/src/generators/host/host.js +10 -7
- package/src/generators/host/lib/update-ssr-setup.js +2 -2
- package/src/generators/host/schema.d.ts +1 -0
- package/src/generators/host/schema.json +4 -0
- package/src/generators/init/init.d.ts.map +1 -1
- package/src/generators/init/init.js +4 -2
- package/src/generators/library/lib/add-children.js +2 -2
- package/src/generators/library/lib/add-load-children.js +2 -2
- package/src/generators/library/lib/add-project.js +4 -4
- package/src/generators/library/lib/create-files.js +2 -2
- package/src/generators/library/lib/normalize-options.js +3 -3
- package/src/generators/library/lib/update-tsconfig-files.js +3 -3
- package/src/generators/library/library.d.ts.map +1 -1
- package/src/generators/library/library.js +16 -11
- package/src/generators/library-secondary-entry-point/library-secondary-entry-point.d.ts.map +1 -1
- package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +2 -0
- package/src/generators/move/lib/update-module-name.js +2 -2
- package/src/generators/ng-add/migrators/migrator.d.ts.map +1 -1
- package/src/generators/ng-add/migrators/migrator.js +10 -5
- package/src/generators/ng-add/migrators/projects/e2e.migrator.js +6 -6
- package/src/generators/ng-add/ng-add.d.ts.map +1 -1
- package/src/generators/ng-add/ng-add.js +2 -0
- package/src/generators/ng-add/utilities/workspace.js +8 -8
- package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +2 -2
- package/src/generators/ngrx-feature-store/lib/add-imports.js +2 -2
- package/src/generators/ngrx-feature-store/lib/normalize-options.js +5 -5
- package/src/generators/ngrx-feature-store/ngrx-feature-store.d.ts.map +1 -1
- package/src/generators/ngrx-feature-store/ngrx-feature-store.js +2 -0
- package/src/generators/ngrx-root-store/lib/add-imports.js +2 -2
- package/src/generators/ngrx-root-store/lib/normalize-options.js +5 -5
- package/src/generators/ngrx-root-store/ngrx-root-store.d.ts.map +1 -1
- package/src/generators/ngrx-root-store/ngrx-root-store.js +2 -0
- package/src/generators/pipe/lib/normalize-options.js +2 -2
- package/src/generators/pipe/pipe.d.ts.map +1 -1
- package/src/generators/pipe/pipe.js +2 -0
- package/src/generators/remote/lib/update-ssr-setup.js +2 -2
- package/src/generators/remote/remote.d.ts.map +1 -1
- package/src/generators/remote/remote.js +7 -5
- package/src/generators/scam/lib/convert-component-to-scam.js +2 -2
- package/src/generators/scam/lib/normalize-options.js +2 -2
- package/src/generators/scam/scam.d.ts.map +1 -1
- package/src/generators/scam/scam.js +2 -0
- package/src/generators/scam-directive/lib/convert-directive-to-scam.js +2 -2
- package/src/generators/scam-directive/lib/normalize-options.js +2 -2
- package/src/generators/scam-directive/scam-directive.d.ts.map +1 -1
- package/src/generators/scam-directive/scam-directive.js +2 -0
- package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +2 -2
- package/src/generators/scam-pipe/lib/normalize-options.js +2 -2
- package/src/generators/scam-pipe/scam-pipe.d.ts.map +1 -1
- package/src/generators/scam-pipe/scam-pipe.js +2 -0
- package/src/generators/scam-to-standalone/scam-to-standalone.d.ts.map +1 -1
- package/src/generators/scam-to-standalone/scam-to-standalone.js +2 -0
- package/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +1 -1
- package/src/generators/setup-mf/lib/add-cypress-workaround.js +3 -3
- package/src/generators/setup-mf/lib/add-remote-to-host.d.ts.map +1 -1
- package/src/generators/setup-mf/lib/add-remote-to-host.js +5 -6
- package/src/generators/setup-mf/lib/change-build-target.d.ts.map +1 -1
- package/src/generators/setup-mf/lib/change-build-target.js +2 -2
- package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +2 -2
- package/src/generators/setup-mf/setup-mf.d.ts.map +1 -1
- package/src/generators/setup-mf/setup-mf.js +8 -0
- package/src/generators/setup-ssr/lib/add-hydration.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/add-hydration.js +3 -4
- package/src/generators/setup-ssr/lib/add-server-file.js +2 -2
- package/src/generators/setup-ssr/lib/generate-files.js +2 -2
- package/src/generators/setup-ssr/lib/generate-server-ts-config.js +2 -2
- package/src/generators/setup-ssr/lib/normalize-options.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/normalize-options.js +2 -2
- package/src/generators/setup-ssr/lib/update-project-config.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/update-project-config.js +19 -7
- package/src/generators/setup-ssr/setup-ssr.d.ts.map +1 -1
- package/src/generators/setup-ssr/setup-ssr.js +2 -0
- package/src/generators/stories/stories.d.ts.map +1 -1
- package/src/generators/stories/stories.js +2 -0
- package/src/generators/storybook-configuration/storybook-configuration.d.ts.map +1 -1
- package/src/generators/storybook-configuration/storybook-configuration.js +2 -0
- package/src/generators/utils/add-mf-env-to-inputs.d.ts.map +1 -1
- package/src/generators/utils/add-mf-env-to-inputs.js +16 -9
- package/src/generators/utils/add-vitest.d.ts +3 -3
- package/src/generators/utils/add-vitest.d.ts.map +1 -1
- package/src/generators/utils/add-vitest.js +41 -26
- package/src/generators/utils/app-components-info.js +2 -2
- package/src/generators/utils/find-module.js +2 -2
- package/src/generators/utils/insert-ngmodule-import.js +6 -6
- package/src/generators/utils/storybook-ast/component-info.js +5 -5
- package/src/generators/utils/storybook-ast/module-info.js +9 -9
- package/src/generators/utils/storybook-ast/storybook-inputs.js +4 -4
- package/src/generators/utils/testing.js +2 -2
- package/src/generators/utils/tsconfig-utils.js +2 -2
- package/src/generators/utils/validations.js +2 -2
- package/src/generators/utils/version-utils.d.ts.map +1 -1
- package/src/generators/utils/version-utils.js +2 -7
- package/src/generators/web-worker/web-worker.d.ts.map +1 -1
- package/src/generators/web-worker/web-worker.js +2 -0
- package/src/migrations/update-19-6-1/ensure-depends-on-for-mf.d.ts.map +1 -1
- package/src/migrations/update-19-6-1/ensure-depends-on-for-mf.js +26 -19
- package/src/migrations/update-20-2-0/disable-angular-eslint-prefer-standalone.js +8 -8
- package/src/migrations/update-20-2-0/migrate-with-mf-import-to-new-package.d.ts.map +1 -1
- package/src/migrations/update-20-2-0/migrate-with-mf-import-to-new-package.js +2 -2
- package/src/migrations/update-20-2-0/remove-angular-eslint-rules.js +6 -6
- package/src/migrations/update-20-2-0/remove-tailwind-config-from-ng-packagr-executors.d.ts.map +1 -1
- package/src/migrations/update-20-2-0/remove-tailwind-config-from-ng-packagr-executors.js +45 -12
- package/src/migrations/update-20-3-0/ensure-nx-module-federation-package.d.ts.map +1 -1
- package/src/migrations/update-20-3-0/ensure-nx-module-federation-package.js +2 -2
- package/src/migrations/update-21-0-0/change-data-persistence-operators-imports-to-ngrx-router-store-data-persistence.js +2 -2
- package/src/migrations/update-21-5-0/utils/karma-config-analyzer.js +2 -2
- package/src/migrations/update-22-3-0/update-module-resolution.js +2 -2
- package/src/migrations/update-22-3-0/update-ssr-webpack-config.js +2 -2
- 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
- package/src/migrations/update-23-0-0/migrate-ngrx-generator-defaults.d.ts.map +1 -0
- package/src/migrations/update-23-0-0/migrate-ngrx-generator-defaults.js +120 -0
- package/src/migrations/update-23-0-0/migrate-with-mf-import-to-new-package.d.ts +3 -0
- package/src/migrations/update-23-0-0/migrate-with-mf-import-to-new-package.d.ts.map +1 -0
- package/src/migrations/update-23-0-0/migrate-with-mf-import-to-new-package.js +45 -0
- package/src/plugins/plugin.d.ts.map +1 -1
- package/src/plugins/plugin.js +54 -22
- package/src/utils/assert-supported-angular-version.d.ts +3 -0
- package/src/utils/assert-supported-angular-version.d.ts.map +1 -0
- package/src/utils/assert-supported-angular-version.js +9 -0
- package/src/utils/backward-compatible-versions.js +2 -2
- package/src/utils/get-mf-projects.js +3 -3
- package/src/utils/index.d.ts +1 -0
- package/src/utils/index.d.ts.map +1 -1
- package/src/utils/index.js +3 -1
- package/src/utils/nx-devkit/ast-utils.d.ts.map +1 -1
- package/src/utils/nx-devkit/ast-utils.js +17 -18
- package/src/utils/nx-devkit/route-utils.js +3 -3
- package/src/utils/versions.d.ts +1 -1
- package/src/utils/versions.d.ts.map +1 -1
- package/src/utils/versions.js +8 -3
- package/tailwind.js +2 -2
- package/module-federation/index.d.ts +0 -6
- package/module-federation/index.d.ts.map +0 -1
- package/module-federation/index.js +0 -6
- package/src/generators/add-linting/lib/create-eslint-configuration.d.ts +0 -16
- package/src/generators/add-linting/lib/create-eslint-configuration.d.ts.map +0 -1
- package/src/generators/add-linting/lib/create-eslint-configuration.js +0 -121
- package/src/generators/move/move.d.ts +0 -7
- package/src/generators/move/move.d.ts.map +0 -1
- package/src/generators/move/move.js +0 -11
- package/src/generators/move/schema.d.ts +0 -8
- package/src/generators/move/schema.json +0 -56
- package/src/generators/ngrx/files/__directory__/__fileName__.actions.ts__tmpl__ +0 -16
- package/src/generators/ngrx/files/__directory__/__fileName__.effects.spec.ts__tmpl__ +0 -37
- package/src/generators/ngrx/files/__directory__/__fileName__.effects.ts__tmpl__ +0 -22
- package/src/generators/ngrx/files/__directory__/__fileName__.facade.spec.ts__tmpl__ +0 -103
- package/src/generators/ngrx/files/__directory__/__fileName__.facade.ts__tmpl__ +0 -27
- package/src/generators/ngrx/files/__directory__/__fileName__.models.ts__tmpl__ +0 -7
- package/src/generators/ngrx/files/__directory__/__fileName__.reducer.spec.ts__tmpl__ +0 -37
- package/src/generators/ngrx/files/__directory__/__fileName__.reducer.ts__tmpl__ +0 -41
- package/src/generators/ngrx/files/__directory__/__fileName__.selectors.spec.ts__tmpl__ +0 -58
- package/src/generators/ngrx/files/__directory__/__fileName__.selectors.ts__tmpl__ +0 -38
- package/src/generators/ngrx/lib/add-exports-barrel.d.ts +0 -7
- package/src/generators/ngrx/lib/add-exports-barrel.d.ts.map +0 -1
- package/src/generators/ngrx/lib/add-exports-barrel.js +0 -44
- package/src/generators/ngrx/lib/add-imports-to-module.d.ts +0 -4
- package/src/generators/ngrx/lib/add-imports-to-module.d.ts.map +0 -1
- package/src/generators/ngrx/lib/add-imports-to-module.js +0 -181
- package/src/generators/ngrx/lib/add-ngrx-to-package-json.d.ts +0 -4
- package/src/generators/ngrx/lib/add-ngrx-to-package-json.d.ts.map +0 -1
- package/src/generators/ngrx/lib/add-ngrx-to-package-json.js +0 -23
- package/src/generators/ngrx/lib/generate-files.d.ts +0 -7
- package/src/generators/ngrx/lib/generate-files.d.ts.map +0 -1
- package/src/generators/ngrx/lib/generate-files.js +0 -23
- package/src/generators/ngrx/lib/index.d.ts +0 -7
- package/src/generators/ngrx/lib/index.d.ts.map +0 -1
- package/src/generators/ngrx/lib/index.js +0 -15
- package/src/generators/ngrx/lib/normalize-options.d.ts +0 -9
- package/src/generators/ngrx/lib/normalize-options.d.ts.map +0 -1
- package/src/generators/ngrx/lib/normalize-options.js +0 -30
- package/src/generators/ngrx/lib/validate-options.d.ts +0 -4
- package/src/generators/ngrx/lib/validate-options.d.ts.map +0 -1
- package/src/generators/ngrx/lib/validate-options.js +0 -14
- package/src/generators/ngrx/ngrx.d.ts +0 -8
- package/src/generators/ngrx/ngrx.d.ts.map +0 -1
- package/src/generators/ngrx/ngrx.js +0 -28
- package/src/generators/ngrx/schema.d.ts +0 -14
- package/src/generators/ngrx/schema.json +0 -102
- package/src/migrations/update-17-1-0/browser-target-to-build-target.d.ts +0 -4
- package/src/migrations/update-17-1-0/browser-target-to-build-target.d.ts.map +0 -1
- package/src/migrations/update-17-1-0/browser-target-to-build-target.js +0 -50
- package/src/migrations/update-17-1-0/replace-nguniversal-builders.d.ts +0 -3
- package/src/migrations/update-17-1-0/replace-nguniversal-builders.d.ts.map +0 -1
- package/src/migrations/update-17-1-0/replace-nguniversal-builders.js +0 -75
- package/src/migrations/update-17-1-0/replace-nguniversal-engines.d.ts +0 -3
- package/src/migrations/update-17-1-0/replace-nguniversal-engines.d.ts.map +0 -1
- package/src/migrations/update-17-1-0/replace-nguniversal-engines.js +0 -184
- package/src/migrations/update-17-1-0/update-angular-cli.d.ts +0 -4
- package/src/migrations/update-17-1-0/update-angular-cli.d.ts.map +0 -1
- package/src/migrations/update-17-1-0/update-angular-cli.js +0 -14
- package/src/migrations/update-17-1-0/update-zone-js-deep-import.d.ts +0 -3
- package/src/migrations/update-17-1-0/update-zone-js-deep-import.d.ts.map +0 -1
- package/src/migrations/update-17-1-0/update-zone-js-deep-import.js +0 -37
- package/src/migrations/update-17-2-0/rename-webpack-dev-server.d.ts.map +0 -1
- package/src/migrations/update-17-2-0/rename-webpack-dev-server.js +0 -40
- package/src/migrations/update-17-3-0/add-autoprefixer-dependency.d.ts +0 -3
- package/src/migrations/update-17-3-0/add-autoprefixer-dependency.d.ts.map +0 -1
- package/src/migrations/update-17-3-0/add-autoprefixer-dependency.js +0 -25
- package/src/migrations/update-17-3-0/add-browser-sync-dependency.d.ts +0 -3
- package/src/migrations/update-17-3-0/add-browser-sync-dependency.d.ts.map +0 -1
- package/src/migrations/update-17-3-0/add-browser-sync-dependency.js +0 -25
- package/src/migrations/update-17-3-0/update-angular-cli.d.ts +0 -4
- package/src/migrations/update-17-3-0/update-angular-cli.d.ts.map +0 -1
- package/src/migrations/update-17-3-0/update-angular-cli.js +0 -14
- package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.d.ts +0 -3
- package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.d.ts.map +0 -1
- package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.js +0 -26
- package/src/migrations/update-18-1-0/update-angular-cli.d.ts +0 -4
- package/src/migrations/update-18-1-0/update-angular-cli.d.ts.map +0 -1
- package/src/migrations/update-18-1-0/update-angular-cli.js +0 -14
- package/src/migrations/update-18-1-1/fix-target-defaults-inputs.d.ts +0 -3
- package/src/migrations/update-18-1-1/fix-target-defaults-inputs.d.ts.map +0 -1
- package/src/migrations/update-18-1-1/fix-target-defaults-inputs.js +0 -53
- package/src/migrations/update-18-2-0/update-angular-cli.d.ts +0 -4
- package/src/migrations/update-18-2-0/update-angular-cli.d.ts.map +0 -1
- package/src/migrations/update-18-2-0/update-angular-cli.js +0 -14
- package/src/migrations/update-19-1-0/update-angular-cli.d.ts +0 -4
- package/src/migrations/update-19-1-0/update-angular-cli.d.ts.map +0 -1
- 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,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"}
|