@nx/angular 16.8.0-beta.4 → 16.8.0-beta.6
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/package.json +10 -10
- package/plugins/component-testing.d.ts +0 -1
- package/plugins/component-testing.js +48 -40
- 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 -74
- 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/host.js +77 -67
- package/src/generators/host/lib/add-ssr.js +32 -35
- 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/lib/add-ssr.js +46 -47
- 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 +11 -4
- 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 -139
- 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/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/version-utils.js +2 -4
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cypressComponentConfiguration = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const cypress_1 = require("@nx/cypress");
|
|
6
5
|
const config_1 = require("@nx/cypress/src/utils/config");
|
|
7
6
|
const find_target_options_1 = require("@nx/cypress/src/utils/find-target-options");
|
|
@@ -15,74 +14,72 @@ const module_info_1 = require("../utils/storybook-ast/module-info");
|
|
|
15
14
|
* This is for cypress built in component testing, if you want to test with
|
|
16
15
|
* storybook + cypress then use the componentCypressGenerator instead.
|
|
17
16
|
*/
|
|
18
|
-
function cypressComponentConfiguration(tree, options) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
skipFormat: true,
|
|
24
|
-
});
|
|
25
|
-
yield updateProjectConfig(tree, options);
|
|
26
|
-
yield addFiles(tree, projectConfig, options);
|
|
27
|
-
if (!options.skipFormat) {
|
|
28
|
-
yield (0, devkit_1.formatFiles)(tree);
|
|
29
|
-
}
|
|
30
|
-
return () => {
|
|
31
|
-
installTask();
|
|
32
|
-
};
|
|
17
|
+
async function cypressComponentConfiguration(tree, options) {
|
|
18
|
+
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
19
|
+
const installTask = await (0, cypress_1.componentConfigurationGenerator)(tree, {
|
|
20
|
+
project: options.project,
|
|
21
|
+
skipFormat: true,
|
|
33
22
|
});
|
|
23
|
+
await updateProjectConfig(tree, options);
|
|
24
|
+
await addFiles(tree, projectConfig, options);
|
|
25
|
+
if (!options.skipFormat) {
|
|
26
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
27
|
+
}
|
|
28
|
+
return () => {
|
|
29
|
+
installTask();
|
|
30
|
+
};
|
|
34
31
|
}
|
|
35
32
|
exports.cypressComponentConfiguration = cypressComponentConfiguration;
|
|
36
|
-
function addFiles(tree, projectConfig, options) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
componentInfo.push(...(0, component_info_1.getComponentsInfo)(tree, entryPoint, moduleFilePaths, options.project), ...(0, component_info_1.getStandaloneComponentsInfo)(tree, entryPoint));
|
|
50
|
-
}
|
|
51
|
-
for (const info of componentInfo) {
|
|
52
|
-
if (info === undefined) {
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
const componentDirFromProjectRoot = (0, path_1.relative)(projectConfig.root, (0, devkit_1.joinPathFragments)(info.moduleFolderPath, info.path));
|
|
56
|
-
(0, component_test_1.componentTestGenerator)(tree, {
|
|
57
|
-
project: options.project,
|
|
58
|
-
componentName: info.name,
|
|
59
|
-
componentDir: componentDirFromProjectRoot,
|
|
60
|
-
componentFileName: info.componentFileName,
|
|
61
|
-
skipFormat: true,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
33
|
+
async function addFiles(tree, projectConfig, options) {
|
|
34
|
+
const cyConfigFile = (0, devkit_1.joinPathFragments)(projectConfig.root, 'cypress.config.ts');
|
|
35
|
+
const updatedCyConfig = await (0, config_1.addDefaultCTConfig)(tree.read(cyConfigFile, 'utf-8'));
|
|
36
|
+
tree.write(cyConfigFile, `import { nxComponentTestingPreset } from '@nx/angular/plugins/component-testing';\n${updatedCyConfig}`);
|
|
37
|
+
const componentFile = (0, devkit_1.joinPathFragments)(projectConfig.root, 'cypress', 'support', 'component.ts');
|
|
38
|
+
const updatedCmpContents = await (0, config_1.addMountDefinition)(tree.read(componentFile, 'utf-8'));
|
|
39
|
+
tree.write(componentFile, `import { mount } from 'cypress/angular';\n${updatedCmpContents}`);
|
|
40
|
+
if (options.generateTests) {
|
|
41
|
+
const entryPoints = (0, entry_point_1.getProjectEntryPoints)(tree, options.project);
|
|
42
|
+
const componentInfo = [];
|
|
43
|
+
for (const entryPoint of entryPoints) {
|
|
44
|
+
const moduleFilePaths = (0, module_info_1.getModuleFilePaths)(tree, entryPoint);
|
|
45
|
+
componentInfo.push(...(0, component_info_1.getComponentsInfo)(tree, entryPoint, moduleFilePaths, options.project), ...(0, component_info_1.getStandaloneComponentsInfo)(tree, entryPoint));
|
|
64
46
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
found = yield (0, find_target_options_1.findBuildConfig)(tree, {
|
|
47
|
+
for (const info of componentInfo) {
|
|
48
|
+
if (info === undefined) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const componentDirFromProjectRoot = (0, path_1.relative)(projectConfig.root, (0, devkit_1.joinPathFragments)(info.moduleFolderPath, info.path));
|
|
52
|
+
(0, component_test_1.componentTestGenerator)(tree, {
|
|
72
53
|
project: options.project,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
'@angular-devkit/build-angular:browser',
|
|
78
|
-
]),
|
|
54
|
+
componentName: info.name,
|
|
55
|
+
componentDir: componentDirFromProjectRoot,
|
|
56
|
+
componentFileName: info.componentFileName,
|
|
57
|
+
skipFormat: true,
|
|
79
58
|
});
|
|
80
|
-
assertValidConfig(found === null || found === void 0 ? void 0 : found.config);
|
|
81
59
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function updateProjectConfig(tree, options) {
|
|
63
|
+
let found = { target: options.buildTarget, config: undefined };
|
|
64
|
+
if (!options.buildTarget) {
|
|
65
|
+
found = await (0, find_target_options_1.findBuildConfig)(tree, {
|
|
66
|
+
project: options.project,
|
|
67
|
+
buildTarget: options.buildTarget,
|
|
68
|
+
validExecutorNames: new Set([
|
|
69
|
+
'@nx/angular:webpack-browser',
|
|
70
|
+
'@nrwl/angular:webpack-browser',
|
|
71
|
+
'@angular-devkit/build-angular:browser',
|
|
72
|
+
]),
|
|
73
|
+
});
|
|
74
|
+
assertValidConfig(found?.config);
|
|
75
|
+
}
|
|
76
|
+
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
77
|
+
projectConfig.targets['component-test'].options = {
|
|
78
|
+
...projectConfig.targets['component-test'].options,
|
|
79
|
+
skipServe: true,
|
|
80
|
+
devServerTarget: found.target,
|
|
81
|
+
};
|
|
82
|
+
(0, devkit_1.updateProjectConfiguration)(tree, options.project, projectConfig);
|
|
86
83
|
}
|
|
87
84
|
function assertValidConfig(config) {
|
|
88
85
|
if (!config) {
|
|
@@ -1,34 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.directiveGenerator = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
6
5
|
const utils_1 = require("../utils");
|
|
7
6
|
const lib_1 = require("./lib");
|
|
8
|
-
function directiveGenerator(tree, schema) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
tpl: '',
|
|
19
|
-
});
|
|
20
|
-
if (options.skipTests) {
|
|
21
|
-
const pathToSpecFile = (0, devkit_1.joinPathFragments)(options.directory, `${directiveNames.fileName}.directive.spec.ts`);
|
|
22
|
-
tree.delete(pathToSpecFile);
|
|
23
|
-
}
|
|
24
|
-
if (!options.skipImport && !options.standalone) {
|
|
25
|
-
const modulePath = (0, utils_1.findModule)(tree, options.path, options.module);
|
|
26
|
-
(0, utils_1.addToNgModule)(tree, options.path, modulePath, directiveNames.fileName, `${directiveNames.className}Directive`, `${directiveNames.fileName}.directive`, 'declarations', options.flat, options.export);
|
|
27
|
-
}
|
|
28
|
-
if (!options.skipFormat) {
|
|
29
|
-
yield (0, devkit_1.formatFiles)(tree);
|
|
30
|
-
}
|
|
7
|
+
async function directiveGenerator(tree, schema) {
|
|
8
|
+
(0, lib_1.validateOptions)(tree, schema);
|
|
9
|
+
const options = (0, lib_1.normalizeOptions)(tree, schema);
|
|
10
|
+
const directiveNames = (0, devkit_1.names)(options.name);
|
|
11
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), options.directory, {
|
|
12
|
+
selector: options.selector,
|
|
13
|
+
directiveClassName: directiveNames.className,
|
|
14
|
+
directiveFileName: directiveNames.fileName,
|
|
15
|
+
standalone: options.standalone,
|
|
16
|
+
tpl: '',
|
|
31
17
|
});
|
|
18
|
+
if (options.skipTests) {
|
|
19
|
+
const pathToSpecFile = (0, devkit_1.joinPathFragments)(options.directory, `${directiveNames.fileName}.directive.spec.ts`);
|
|
20
|
+
tree.delete(pathToSpecFile);
|
|
21
|
+
}
|
|
22
|
+
if (!options.skipImport && !options.standalone) {
|
|
23
|
+
const modulePath = (0, utils_1.findModule)(tree, options.path, options.module);
|
|
24
|
+
(0, utils_1.addToNgModule)(tree, options.path, modulePath, directiveNames.fileName, `${directiveNames.className}Directive`, `${directiveNames.fileName}.directive`, 'declarations', options.flat, options.export);
|
|
25
|
+
}
|
|
26
|
+
if (!options.skipFormat) {
|
|
27
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
28
|
+
}
|
|
32
29
|
}
|
|
33
30
|
exports.directiveGenerator = directiveGenerator;
|
|
34
31
|
exports.default = directiveGenerator;
|
|
@@ -5,13 +5,19 @@ const devkit_1 = require("@nx/devkit");
|
|
|
5
5
|
const path_1 = require("../../utils/path");
|
|
6
6
|
const selector_1 = require("../../utils/selector");
|
|
7
7
|
function normalizeOptions(tree, options) {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const { directory, name, path } = (0, path_1.normalizeNameAndPaths)(tree, {
|
|
9
|
+
...options,
|
|
10
|
+
type: 'directive',
|
|
11
|
+
});
|
|
10
12
|
const { prefix } = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
11
|
-
const selector =
|
|
12
|
-
|
|
13
|
+
const selector = options.selector ??
|
|
14
|
+
(0, selector_1.buildSelector)(tree, name, options.prefix, prefix, 'propertyName');
|
|
15
|
+
return {
|
|
16
|
+
...options,
|
|
17
|
+
directory,
|
|
13
18
|
name,
|
|
14
19
|
path,
|
|
15
|
-
selector
|
|
20
|
+
selector,
|
|
21
|
+
};
|
|
16
22
|
}
|
|
17
23
|
exports.normalizeOptions = normalizeOptions;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hostInternal = exports.host = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
6
5
|
const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils");
|
|
7
6
|
const semver_1 = require("semver");
|
|
@@ -11,79 +10,90 @@ const remote_1 = require("../remote/remote");
|
|
|
11
10
|
const setup_mf_1 = require("../setup-mf/setup-mf");
|
|
12
11
|
const version_utils_1 = require("../utils/version-utils");
|
|
13
12
|
const lib_1 = require("./lib");
|
|
14
|
-
function host(tree, options) {
|
|
15
|
-
return
|
|
16
|
-
|
|
13
|
+
async function host(tree, options) {
|
|
14
|
+
return await hostInternal(tree, {
|
|
15
|
+
projectNameAndRootFormat: 'derived',
|
|
16
|
+
...options,
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
exports.host = host;
|
|
20
|
-
function hostInternal(tree, options) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if ((0, semver_1.lt)(installedAngularVersionInfo.version, '14.1.0') && options.standalone) {
|
|
25
|
-
throw new Error((0, devkit_1.stripIndents) `The "standalone" option is only supported in Angular >= 14.1.0. You are currently using ${installedAngularVersionInfo.version}.
|
|
20
|
+
async function hostInternal(tree, options) {
|
|
21
|
+
const installedAngularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
22
|
+
if ((0, semver_1.lt)(installedAngularVersionInfo.version, '14.1.0') && options.standalone) {
|
|
23
|
+
throw new Error((0, devkit_1.stripIndents) `The "standalone" option is only supported in Angular >= 14.1.0. You are currently using ${installedAngularVersionInfo.version}.
|
|
26
24
|
You can resolve this error by removing the "standalone" option or by migrating to Angular 14.1.0.`);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
const { projectName: hostProjectName, projectNameAndRootFormat } = yield (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(tree, {
|
|
42
|
-
name: options.name,
|
|
43
|
-
projectType: 'application',
|
|
44
|
-
directory: options.directory,
|
|
45
|
-
projectNameAndRootFormat: options.projectNameAndRootFormat,
|
|
46
|
-
callingGenerator: '@nx/angular:host',
|
|
25
|
+
}
|
|
26
|
+
const projects = (0, devkit_1.getProjects)(tree);
|
|
27
|
+
const remotesToGenerate = [];
|
|
28
|
+
const remotesToIntegrate = [];
|
|
29
|
+
if (options.remotes && options.remotes.length > 0) {
|
|
30
|
+
options.remotes.forEach((remote) => {
|
|
31
|
+
if (!projects.has(remote)) {
|
|
32
|
+
remotesToGenerate.push(remote);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
remotesToIntegrate.push(remote);
|
|
36
|
+
}
|
|
47
37
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
38
|
+
}
|
|
39
|
+
const { projectName: hostProjectName, projectNameAndRootFormat } = await (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(tree, {
|
|
40
|
+
name: options.name,
|
|
41
|
+
projectType: 'application',
|
|
42
|
+
directory: options.directory,
|
|
43
|
+
projectNameAndRootFormat: options.projectNameAndRootFormat,
|
|
44
|
+
callingGenerator: '@nx/angular:host',
|
|
45
|
+
});
|
|
46
|
+
options.projectNameAndRootFormat = projectNameAndRootFormat;
|
|
47
|
+
const appInstallTask = await (0, application_1.default)(tree, {
|
|
48
|
+
...options,
|
|
49
|
+
standalone: options.standalone ?? false,
|
|
50
|
+
routing: true,
|
|
51
|
+
port: 4200,
|
|
52
|
+
skipFormat: true,
|
|
53
|
+
});
|
|
54
|
+
const skipE2E = !options.e2eTestRunner || options.e2eTestRunner === test_runners_1.E2eTestRunner.None;
|
|
55
|
+
await (0, setup_mf_1.setupMf)(tree, {
|
|
56
|
+
appName: hostProjectName,
|
|
57
|
+
mfType: 'host',
|
|
58
|
+
routing: true,
|
|
59
|
+
port: 4200,
|
|
60
|
+
remotes: remotesToIntegrate ?? [],
|
|
61
|
+
federationType: options.dynamic ? 'dynamic' : 'static',
|
|
62
|
+
skipPackageJson: options.skipPackageJson,
|
|
63
|
+
skipFormat: true,
|
|
64
|
+
skipE2E,
|
|
65
|
+
e2eProjectName: skipE2E ? undefined : `${hostProjectName}-e2e`,
|
|
66
|
+
prefix: options.prefix,
|
|
67
|
+
});
|
|
68
|
+
let installTasks = [appInstallTask];
|
|
69
|
+
if (options.ssr) {
|
|
70
|
+
let ssrInstallTask = await (0, lib_1.addSsr)(tree, options, hostProjectName);
|
|
71
|
+
installTasks.push(ssrInstallTask);
|
|
72
|
+
}
|
|
73
|
+
for (const remote of remotesToGenerate) {
|
|
74
|
+
let remoteDirectory = options.directory;
|
|
75
|
+
if (options.projectNameAndRootFormat === 'as-provided' &&
|
|
76
|
+
options.directory) {
|
|
77
|
+
/**
|
|
78
|
+
* With the `as-provided` format, the provided directory would be the root
|
|
79
|
+
* of the host application. Append the remote name to the host parent
|
|
80
|
+
* directory to get the remote directory.
|
|
81
|
+
*/
|
|
82
|
+
remoteDirectory = (0, devkit_1.joinPathFragments)(options.directory, '..', remote);
|
|
83
|
+
}
|
|
84
|
+
await (0, remote_1.default)(tree, {
|
|
85
|
+
...options,
|
|
86
|
+
name: remote,
|
|
87
|
+
directory: remoteDirectory,
|
|
88
|
+
host: hostProjectName,
|
|
59
89
|
skipFormat: true,
|
|
60
|
-
|
|
61
|
-
e2eProjectName: skipE2E ? undefined : `${hostProjectName}-e2e`,
|
|
62
|
-
prefix: options.prefix,
|
|
90
|
+
standalone: options.standalone,
|
|
63
91
|
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
for (const remote of remotesToGenerate) {
|
|
70
|
-
let remoteDirectory = options.directory;
|
|
71
|
-
if (options.projectNameAndRootFormat === 'as-provided' &&
|
|
72
|
-
options.directory) {
|
|
73
|
-
/**
|
|
74
|
-
* With the `as-provided` format, the provided directory would be the root
|
|
75
|
-
* of the host application. Append the remote name to the host parent
|
|
76
|
-
* directory to get the remote directory.
|
|
77
|
-
*/
|
|
78
|
-
remoteDirectory = (0, devkit_1.joinPathFragments)(options.directory, '..', remote);
|
|
79
|
-
}
|
|
80
|
-
yield (0, remote_1.default)(tree, Object.assign(Object.assign({}, options), { name: remote, directory: remoteDirectory, host: hostProjectName, skipFormat: true, standalone: options.standalone }));
|
|
81
|
-
}
|
|
82
|
-
if (!options.skipFormat) {
|
|
83
|
-
yield (0, devkit_1.formatFiles)(tree);
|
|
84
|
-
}
|
|
85
|
-
return (0, devkit_1.runTasksInSerial)(...installTasks);
|
|
86
|
-
});
|
|
92
|
+
}
|
|
93
|
+
if (!options.skipFormat) {
|
|
94
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
95
|
+
}
|
|
96
|
+
return (0, devkit_1.runTasksInSerial)(...installTasks);
|
|
87
97
|
}
|
|
88
98
|
exports.hostInternal = hostInternal;
|
|
89
99
|
exports.default = host;
|
|
@@ -1,45 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addSsr = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
6
5
|
const setup_ssr_1 = require("../../setup-ssr/setup-ssr");
|
|
7
6
|
const versions_1 = require("../../../utils/versions");
|
|
8
7
|
const path_1 = require("path");
|
|
9
|
-
function addSsr(tree, options, appName) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
standalone: options.standalone,
|
|
15
|
-
});
|
|
16
|
-
tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'main.server.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'bootstrap.server.ts'));
|
|
17
|
-
tree.write((0, devkit_1.joinPathFragments)(project.root, 'server.ts'), "import('./src/main.server');");
|
|
18
|
-
const browserBundleOutput = (0, devkit_1.joinPathFragments)(project.targets.build.options.outputPath, 'browser');
|
|
19
|
-
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files'), project.root, {
|
|
20
|
-
appName,
|
|
21
|
-
browserBundleOutput,
|
|
22
|
-
standalone: options.standalone,
|
|
23
|
-
tmpl: '',
|
|
24
|
-
});
|
|
25
|
-
// update project.json
|
|
26
|
-
project = (0, devkit_1.readProjectConfiguration)(tree, appName);
|
|
27
|
-
project.targets.server.executor = '@nx/angular:webpack-server';
|
|
28
|
-
project.targets.server.options.customWebpackConfig = {
|
|
29
|
-
path: (0, devkit_1.joinPathFragments)(project.root, 'webpack.server.config.js'),
|
|
30
|
-
};
|
|
31
|
-
project.targets['serve-ssr'].executor =
|
|
32
|
-
'@nx/angular:module-federation-dev-ssr';
|
|
33
|
-
(0, devkit_1.updateProjectConfiguration)(tree, appName, project);
|
|
34
|
-
const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {
|
|
35
|
-
cors: versions_1.corsVersion,
|
|
36
|
-
express: versions_1.expressVersion,
|
|
37
|
-
'@module-federation/node': versions_1.moduleFederationNodeVersion,
|
|
38
|
-
}, {
|
|
39
|
-
'@types/cors': versions_1.typesCorsVersion,
|
|
40
|
-
'@types/express': versions_1.typesExpressVersion,
|
|
41
|
-
});
|
|
42
|
-
return installTask;
|
|
8
|
+
async function addSsr(tree, options, appName) {
|
|
9
|
+
let project = (0, devkit_1.readProjectConfiguration)(tree, appName);
|
|
10
|
+
await (0, setup_ssr_1.default)(tree, {
|
|
11
|
+
project: appName,
|
|
12
|
+
standalone: options.standalone,
|
|
43
13
|
});
|
|
14
|
+
tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'main.server.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'bootstrap.server.ts'));
|
|
15
|
+
tree.write((0, devkit_1.joinPathFragments)(project.root, 'server.ts'), "import('./src/main.server');");
|
|
16
|
+
const browserBundleOutput = (0, devkit_1.joinPathFragments)(project.targets.build.options.outputPath, 'browser');
|
|
17
|
+
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files'), project.root, {
|
|
18
|
+
appName,
|
|
19
|
+
browserBundleOutput,
|
|
20
|
+
standalone: options.standalone,
|
|
21
|
+
tmpl: '',
|
|
22
|
+
});
|
|
23
|
+
// update project.json
|
|
24
|
+
project = (0, devkit_1.readProjectConfiguration)(tree, appName);
|
|
25
|
+
project.targets.server.executor = '@nx/angular:webpack-server';
|
|
26
|
+
project.targets.server.options.customWebpackConfig = {
|
|
27
|
+
path: (0, devkit_1.joinPathFragments)(project.root, 'webpack.server.config.js'),
|
|
28
|
+
};
|
|
29
|
+
project.targets['serve-ssr'].executor =
|
|
30
|
+
'@nx/angular:module-federation-dev-ssr';
|
|
31
|
+
(0, devkit_1.updateProjectConfiguration)(tree, appName, project);
|
|
32
|
+
const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {
|
|
33
|
+
cors: versions_1.corsVersion,
|
|
34
|
+
express: versions_1.expressVersion,
|
|
35
|
+
'@module-federation/node': versions_1.moduleFederationNodeVersion,
|
|
36
|
+
}, {
|
|
37
|
+
'@types/cors': versions_1.typesCorsVersion,
|
|
38
|
+
'@types/express': versions_1.typesExpressVersion,
|
|
39
|
+
});
|
|
40
|
+
return installTask;
|
|
44
41
|
}
|
|
45
42
|
exports.addSsr = addSsr;
|