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