@nx/angular 0.0.0-pr-30715-a5f5e3b → 0.0.0-pr-31313-387cdca
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/fesm2022/nx-angular-mf.mjs.map +1 -1
- package/fesm2022/nx-angular.mjs.map +1 -1
- package/index.d.ts +1 -2
- package/mf/index.d.ts +1 -71
- package/mf/mf.d.ts +69 -0
- package/migrations.json +0 -98
- package/package.json +16 -25
- package/plugins/component-testing.js +3 -8
- package/src/builders/dev-server/dev-server.impl.js +7 -4
- package/src/builders/dev-server/lib/normalize-options.js +6 -0
- package/src/builders/dev-server/lib/validate-options.js +4 -0
- package/src/builders/dev-server/schema.d.ts +15 -3
- package/src/builders/dev-server/schema.json +9 -3
- package/src/builders/webpack-browser/webpack-browser.impl.js +0 -2
- package/src/builders/webpack-server/webpack-server.impl.d.ts +1 -3
- package/src/builders/webpack-server/webpack-server.impl.js +0 -2
- package/src/executors/application/application.impl.d.ts +2 -2
- package/src/executors/application/application.impl.js +6 -11
- package/src/executors/application/schema.d.ts +1 -1
- package/src/executors/application/schema.json +10 -21
- package/src/executors/application/utils/normalize-options.js +1 -8
- package/src/executors/application/utils/validate-options.js +40 -10
- package/src/executors/extract-i18n/extract-i18n.impl.js +14 -6
- package/src/executors/extract-i18n/schema.d.ts +6 -1
- package/src/executors/module-federation-dev-server/lib/normalize-options.js +7 -1
- package/src/executors/module-federation-dev-server/schema.d.ts +15 -3
- package/src/executors/module-federation-dev-server/schema.json +15 -2
- package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +8 -10
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.d.ts +3 -6
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.js +8 -46
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.di.d.ts +1 -1
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.di.js +3 -3
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.transform.d.ts +2 -2
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.transform.js +6 -22
- package/src/executors/ng-packagr-lite/schema.json +3 -2
- package/src/executors/package/package.impl.js +5 -1
- package/src/executors/package/schema.d.ts +1 -3
- package/src/executors/package/schema.json +3 -2
- package/src/executors/utilities/esbuild-extensions.d.ts +1 -2
- package/src/executors/utilities/ng-packagr/package-imports.d.ts +1 -3
- package/src/executors/utilities/ng-packagr/package-imports.js +2 -2
- package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.d.ts +24 -1
- package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.js +105 -12
- package/src/executors/utilities/ng-packagr/stylesheet-processor.di.js +8 -4
- package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.d.ts +1 -1
- package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.js +11 -18
- package/src/generators/add-linting/add-linting.js +0 -8
- package/src/generators/application/application.js +1 -21
- package/src/generators/application/files/base-pre18/src/favicon.ico +0 -0
- package/src/generators/application/files/ng-module/src/app/app.component.spec.ts__tpl__ +29 -0
- package/src/generators/application/files/ng-module/src/app/{app__componentFileSuffix__.ts__tpl__ → app.component.ts__tpl__} +3 -3
- package/src/generators/application/files/ng-module/src/app/app.module.ts__tpl__ +17 -0
- package/src/generators/application/files/ng-module/src/main.ts__tpl__ +3 -11
- package/src/generators/application/files/nx-welcome/claimed/ng-module/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
- package/src/generators/application/files/nx-welcome/claimed/standalone/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
- package/src/generators/application/files/nx-welcome/not-configured/ng-module/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
- package/src/generators/application/files/nx-welcome/not-configured/standalone/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
- package/src/generators/application/files/nx-welcome/unclaimed/ng-module/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
- package/src/generators/application/files/nx-welcome/unclaimed/standalone/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
- package/src/generators/application/files/standalone-components/src/app/app.component.__style__ +0 -0
- package/src/generators/application/files/standalone-components/src/app/app.component.spec.ts__tpl__ +28 -0
- package/src/generators/application/files/standalone-components/src/app/{app__componentFileSuffix__.ts__tpl__ → app.component.ts__tpl__} +5 -5
- package/src/generators/application/files/standalone-components/src/app/app.config.ts__tpl__ +2 -6
- package/src/generators/application/files/standalone-components/src/main.ts__tpl__ +2 -2
- package/src/generators/application/lib/create-files.d.ts +1 -1
- package/src/generators/application/lib/create-files.js +14 -15
- package/src/generators/application/lib/create-project.d.ts +1 -1
- package/src/generators/application/lib/create-project.js +26 -119
- package/src/generators/application/lib/enable-strict-type-checking.js +0 -3
- package/src/generators/application/schema.json +1 -1
- package/src/generators/component/component.js +2 -13
- package/src/generators/component/files/__fileName__.ts__tpl__ +1 -1
- package/src/generators/component/lib/component.js +1 -11
- package/src/generators/component/lib/module.d.ts +2 -7
- package/src/generators/component/lib/module.js +5 -7
- package/src/generators/component/lib/normalize-options.js +3 -7
- package/src/generators/component/schema.d.ts +0 -1
- package/src/generators/component/schema.json +2 -6
- package/src/generators/convert-to-application-executor/convert-to-application-executor.js +22 -19
- package/src/generators/convert-to-rspack/convert-to-rspack.js +2 -6
- package/src/generators/convert-to-rspack/lib/get-custom-webpack-config.js +1 -1
- package/src/generators/directive/directive.js +1 -1
- package/src/generators/directive/lib/normalize-options.js +2 -7
- package/src/generators/directive/schema.d.ts +0 -1
- package/src/generators/directive/schema.json +2 -10
- package/src/generators/host/host.js +21 -1
- package/src/generators/host/schema.d.ts +1 -0
- package/src/generators/host/schema.json +7 -1
- package/src/generators/init/init.js +1 -1
- package/src/generators/library/files/ng-module/src/index.ts__tpl__ +1 -1
- package/src/generators/library/files/standalone-components/src/lib/lib.routes.ts__tpl__ +2 -2
- package/src/generators/library/lib/add-standalone-component.js +0 -1
- package/src/generators/library/lib/create-files.js +1 -10
- package/src/generators/library/lib/enable-strict-type-checking.d.ts +1 -1
- package/src/generators/library/lib/enable-strict-type-checking.js +0 -3
- package/src/generators/library/lib/normalize-options.d.ts +3 -3
- package/src/generators/library/lib/normalize-options.js +1 -6
- package/src/generators/library/lib/normalized-schema.d.ts +0 -2
- package/src/generators/library-secondary-entry-point/files/src/index.ts__tmpl__ +1 -1
- package/src/generators/library-secondary-entry-point/lib/add-files.js +1 -2
- package/src/generators/library-secondary-entry-point/lib/normalize-options.d.ts +2 -2
- package/src/generators/library-secondary-entry-point/lib/normalize-options.js +0 -3
- package/src/generators/library-secondary-entry-point/schema.d.ts +0 -1
- package/src/generators/move/lib/update-module-name.js +10 -17
- package/src/generators/move/lib/update-secondary-entry-points.js +3 -0
- package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +1 -1
- package/src/generators/ng-add/migrators/projects/app.migrator.js +8 -43
- package/src/generators/ngrx/schema.json +3 -3
- package/src/generators/ngrx-root-store/lib/normalize-options.js +2 -9
- package/src/generators/pipe/lib/normalize-options.js +0 -4
- package/src/generators/pipe/pipe.js +1 -1
- package/src/generators/pipe/schema.d.ts +0 -1
- package/src/generators/pipe/schema.json +2 -11
- package/src/generators/remote/files/standalone/src/bootstrap.server.ts__tmpl__ +4 -4
- package/src/generators/remote/lib/update-ssr-setup.js +0 -5
- package/src/generators/remote/remote.js +23 -0
- package/src/generators/remote/schema.d.ts +1 -0
- package/src/generators/remote/schema.json +7 -1
- package/src/generators/scam/lib/convert-component-to-scam.js +3 -1
- package/src/generators/scam/lib/normalize-options.js +3 -11
- package/src/generators/scam/schema.d.ts +0 -1
- package/src/generators/scam/schema.json +2 -1
- package/src/generators/scam-directive/lib/convert-directive-to-scam.js +3 -1
- package/src/generators/scam-directive/lib/normalize-options.js +2 -11
- package/src/generators/scam-directive/schema.d.ts +0 -2
- package/src/generators/scam-directive/schema.json +2 -10
- package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +3 -1
- package/src/generators/scam-pipe/lib/normalize-options.js +0 -8
- package/src/generators/scam-pipe/schema.d.ts +0 -2
- package/src/generators/scam-pipe/schema.json +0 -5
- package/src/generators/setup-mf/files/entry-module-files/{entry__componentFileSuffix__.ts__tmpl__ → entry.component.ts__tmpl__} +1 -1
- package/src/generators/setup-mf/files/entry-module-files/{__entryModuleFileName__.ts__tmpl__ → entry.module.ts__tmpl__} +4 -4
- package/src/generators/setup-mf/files/entry-module-files/entry.routes.ts__tmpl__ +2 -2
- package/src/generators/setup-mf/files/host-files/app.component.spec.ts__tmpl__ +47 -0
- package/src/generators/setup-mf/files/standalone-entry-component-files/{entry__componentFileSuffix__.ts__tmpl__ → entry.component.ts__tmpl__} +3 -3
- package/src/generators/setup-mf/files/standalone-entry-component-files/entry.routes.ts__tmpl__ +2 -2
- package/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +1 -1
- package/src/generators/setup-mf/files/ts-webpack/tsconfig.lint.json__tmpl__ +1 -1
- package/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +1 -1
- package/src/generators/setup-mf/lib/add-remote-entry.d.ts +2 -2
- package/src/generators/setup-mf/lib/add-remote-entry.js +3 -9
- package/src/generators/setup-mf/lib/add-remote-to-host.js +1 -11
- package/src/generators/setup-mf/lib/fix-bootstrap.d.ts +2 -2
- package/src/generators/setup-mf/lib/fix-bootstrap.js +4 -4
- package/src/generators/setup-mf/lib/generate-config.d.ts +2 -2
- package/src/generators/setup-mf/lib/generate-config.js +0 -1
- package/src/generators/setup-mf/lib/normalize-options.d.ts +1 -1
- package/src/generators/setup-mf/lib/normalize-options.js +0 -13
- package/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +2 -2
- package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +14 -18
- package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +5 -1
- package/src/generators/setup-mf/lib/setup-tspath-for-remote.d.ts +2 -2
- package/src/generators/setup-mf/lib/setup-tspath-for-remote.js +1 -1
- package/src/generators/setup-mf/lib/update-host-app-routes.d.ts +2 -2
- package/src/generators/setup-mf/lib/update-host-app-routes.js +9 -12
- package/src/generators/setup-mf/lib/update-tsconfig.d.ts +2 -2
- package/src/generators/setup-mf/lib/update-tsconfig.js +5 -5
- package/src/generators/setup-mf/schema.d.ts +0 -7
- package/src/generators/setup-ssr/lib/add-dependencies.js +7 -4
- package/src/generators/setup-ssr/lib/add-hydration.js +3 -10
- package/src/generators/setup-ssr/lib/add-server-file.js +2 -7
- package/src/generators/setup-ssr/lib/generate-files.js +4 -17
- package/src/generators/setup-ssr/lib/generate-server-ts-config.js +2 -5
- package/src/generators/setup-ssr/lib/normalize-options.js +2 -2
- package/src/generators/setup-ssr/lib/update-project-config.js +0 -5
- package/src/generators/setup-ssr/lib/validate-options.js +2 -2
- package/src/generators/setup-ssr/schema.json +1 -1
- package/src/generators/utils/add-jest.js +1 -6
- package/src/generators/utils/assert-mf-utils.d.ts +1 -0
- package/src/generators/utils/assert-mf-utils.js +11 -0
- package/src/generators/utils/ensure-angular-dependencies.js +3 -6
- package/src/generators/utils/export-scam.d.ts +0 -1
- package/src/generators/utils/export-scam.js +2 -1
- package/src/generators/utils/find-module.js +13 -18
- package/src/generators/utils/storybook-ast/component-info.js +24 -40
- package/src/generators/utils/storybook-ast/module-info.d.ts +1 -1
- package/src/generators/utils/storybook-ast/module-info.js +8 -3
- package/src/generators/utils/testing.js +28 -28
- package/src/generators/utils/version-utils.js +2 -2
- package/src/generators/web-worker/lib/add-snippet.js +3 -3
- package/src/plugins/plugin.js +13 -22
- package/src/utils/backward-compatible-versions.d.ts +2 -2
- package/src/utils/backward-compatible-versions.js +21 -20
- package/src/utils/nx-devkit/ast-utils.js +3 -17
- package/src/utils/nx-devkit/testing.js +9 -9
- package/src/utils/versions.d.ts +4 -3
- package/src/utils/versions.js +5 -4
- package/src/executors/utilities/builder-package.d.ts +0 -1
- package/src/executors/utilities/builder-package.js +0 -11
- package/src/generators/application/files/ng-module/src/app/app__componentFileSuffix__.spec.ts__tpl__ +0 -28
- package/src/generators/application/files/ng-module/src/app/app__moduleTypeSeparator__module.ts__tpl__ +0 -17
- package/src/generators/application/files/standalone-components/src/app/app__componentFileSuffix__.spec.ts__tpl__ +0 -27
- package/src/generators/setup-mf/files/host-files/__appFileName__.spec.ts__tmpl__ +0 -43
- package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/__main__ +0 -1
- package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/app/__rootModuleFileName__ +0 -12
- package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/app/app.routes.server.ts__tpl__ +0 -8
- package/src/generators/setup-ssr/files/v20+/application-builder/server/__serverFileName__ +0 -66
- package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/__main__ +0 -7
- package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/app/app.config.server.ts__tpl__ +0 -12
- package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/app/app.routes.server.ts__tpl__ +0 -8
- package/src/generators/setup-ssr/files/v20+/server-builder/ngmodule-src/__main__ +0 -1
- package/src/generators/setup-ssr/files/v20+/server-builder/ngmodule-src/app/__rootModuleFileName__ +0 -14
- package/src/generators/setup-ssr/files/v20+/server-builder/root/tsconfig.server.json.template +0 -16
- package/src/generators/setup-ssr/files/v20+/server-builder/server/__serverFileName__ +0 -69
- package/src/generators/setup-ssr/files/v20+/server-builder/standalone-src/__main__ +0 -7
- package/src/generators/setup-ssr/files/v20+/server-builder/standalone-src/app/app.config.server.ts.template +0 -11
- package/src/generators/utils/app-components-info.d.ts +0 -9
- package/src/generators/utils/app-components-info.js +0 -39
- package/src/generators/utils/artifact-types.d.ts +0 -3
- package/src/generators/utils/artifact-types.js +0 -33
- package/src/migrations/update-21-2-0/migrate-provide-server-rendering-import.d.ts +0 -2
- package/src/migrations/update-21-2-0/migrate-provide-server-rendering-import.js +0 -110
- package/src/migrations/update-21-2-0/replace-provide-server-routing.d.ts +0 -2
- package/src/migrations/update-21-2-0/replace-provide-server-routing.js +0 -103
- package/src/migrations/update-21-2-0/set-generator-defaults-for-previous-style-guide.d.ts +0 -2
- package/src/migrations/update-21-2-0/set-generator-defaults-for-previous-style-guide.js +0 -47
- package/src/migrations/update-21-2-0/update-angular-cli.d.ts +0 -3
- package/src/migrations/update-21-2-0/update-angular-cli.js +0 -23
- /package/src/generators/application/files/{base → base-18+}/public/favicon.ico +0 -0
- /package/src/generators/application/files/{ng-module/src/app/app__componentFileSuffix__.__style__ → base-pre18/src/assets/.gitkeep__tpl__} +0 -0
- /package/src/generators/application/files/{standalone-components/src/app/app__componentFileSuffix__.__style__ → ng-module/src/app/app.component.__style__} +0 -0
- /package/src/generators/application/files/ng-module/src/app/{app__componentFileSuffix__.html__tpl__ → app.component.html__tpl__} +0 -0
- /package/src/generators/application/files/standalone-components/src/app/{app__componentFileSuffix__.html__tpl__ → app.component.html__tpl__} +0 -0
- /package/src/generators/component/files/{__fileName____ngext__.html__tpl__ → __fileName__.html__tpl__} +0 -0
- /package/src/generators/library/files/ng-module/src/lib/{__libFileName____moduleTypeSeparator__module.ts__tpl__ → __libFileName__.module.ts__tpl__} +0 -0
- /package/src/generators/library-secondary-entry-point/files/src/lib/{__fileName____moduleTypeSeparator__module.ts__tmpl__ → __fileName__.module.ts__tmpl__} +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/ngmodule-src/__main__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/ngmodule-src/app/__rootModuleFileName__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/ngmodule-src/app/app.routes.server.ts__tpl__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/server/__serverFileName__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/standalone-src/__main__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/standalone-src/app/app.config.server.ts__tpl__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/standalone-src/app/app.routes.server.ts__tpl__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder-common-engine/server/__serverFileName__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/ngmodule-src/__main__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/ngmodule-src/app/__rootModuleFileName__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/root/tsconfig.server.json.template +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/server/__serverFileName__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/standalone-src/__main__ +0 -0
- /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/standalone-src/app/app.config.server.ts.template +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.remote = remote;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const devkit_1 = require("@nx/devkit");
|
|
5
6
|
const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils");
|
|
6
7
|
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
|
|
@@ -10,8 +11,14 @@ const application_1 = require("../application/application");
|
|
|
10
11
|
const setup_mf_1 = require("../setup-mf/setup-mf");
|
|
11
12
|
const add_mf_env_to_inputs_1 = require("../utils/add-mf-env-to-inputs");
|
|
12
13
|
const lib_1 = require("./lib");
|
|
14
|
+
const assert_mf_utils_1 = require("../utils/assert-mf-utils");
|
|
15
|
+
const convert_to_rspack_1 = tslib_1.__importDefault(require("../convert-to-rspack/convert-to-rspack"));
|
|
13
16
|
async function remote(tree, schema) {
|
|
14
17
|
(0, ts_solution_setup_1.assertNotUsingTsSolutionSetup)(tree, 'angular', 'remote');
|
|
18
|
+
// TODO: Replace with Rspack when confidence is high enough
|
|
19
|
+
schema.bundler ??= 'webpack';
|
|
20
|
+
const isRspack = schema.bundler === 'rspack';
|
|
21
|
+
(0, assert_mf_utils_1.assertRspackIsCSR)(schema.bundler, schema.ssr ?? false, schema.serverRouting ?? false);
|
|
15
22
|
const { typescriptConfiguration = true, ...options } = schema;
|
|
16
23
|
options.standalone = options.standalone ?? true;
|
|
17
24
|
const projects = (0, devkit_1.getProjects)(tree);
|
|
@@ -75,6 +82,22 @@ async function remote(tree, schema) {
|
|
|
75
82
|
installTasks.push(ssrInstallTask);
|
|
76
83
|
}
|
|
77
84
|
(0, add_mf_env_to_inputs_1.addMfEnvToTargetDefaultInputs)(tree);
|
|
85
|
+
if (isRspack) {
|
|
86
|
+
await (0, convert_to_rspack_1.default)(tree, {
|
|
87
|
+
project: remoteProjectName,
|
|
88
|
+
skipInstall: options.skipPackageJson,
|
|
89
|
+
skipFormat: true,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
const project = (0, devkit_1.readProjectConfiguration)(tree, remoteProjectName);
|
|
93
|
+
project.targets.serve ??= {};
|
|
94
|
+
project.targets.serve.options ??= {};
|
|
95
|
+
if (options.host) {
|
|
96
|
+
project.targets.serve.dependsOn ??= [];
|
|
97
|
+
project.targets.serve.dependsOn.push(`${options.host}:serve`);
|
|
98
|
+
}
|
|
99
|
+
project.targets.serve.options.port = port;
|
|
100
|
+
(0, devkit_1.updateProjectConfiguration)(tree, remoteProjectName, project);
|
|
78
101
|
if (!options.skipFormat) {
|
|
79
102
|
await (0, devkit_1.formatFiles)(tree);
|
|
80
103
|
}
|
|
@@ -42,6 +42,12 @@
|
|
|
42
42
|
"type": "number",
|
|
43
43
|
"description": "The port on which this app should be served."
|
|
44
44
|
},
|
|
45
|
+
"bundler": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "The bundler to use for the remote application.",
|
|
48
|
+
"default": "webpack",
|
|
49
|
+
"enum": ["webpack", "rspack"]
|
|
50
|
+
},
|
|
45
51
|
"style": {
|
|
46
52
|
"description": "The file extension to be used for style files.",
|
|
47
53
|
"type": "string",
|
|
@@ -165,7 +171,7 @@
|
|
|
165
171
|
"default": false
|
|
166
172
|
},
|
|
167
173
|
"serverRouting": {
|
|
168
|
-
"description": "Creates a server application using the Server Routing and App Engine APIs
|
|
174
|
+
"description": "Creates a server application using the Server Routing and App Engine APIs (Developer Preview). _Note: this is only supported in Angular versions >= 19.0.0_.",
|
|
169
175
|
"type": "boolean"
|
|
170
176
|
},
|
|
171
177
|
"typescriptConfiguration": {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertComponentToScam = convertComponentToScam;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
4
5
|
const js_1 = require("@nx/js");
|
|
5
6
|
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
|
6
7
|
let tsModule;
|
|
@@ -21,7 +22,8 @@ function convertComponentToScam(tree, options) {
|
|
|
21
22
|
tree.write(options.filePath, updatedComponentSource);
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
const moduleFilePath = (0, devkit_1.joinPathFragments)(options.directory, `${options.name}.module.ts`);
|
|
26
|
+
tree.write(moduleFilePath, getModuleFileContent(options.symbolName, options.fileName));
|
|
25
27
|
}
|
|
26
28
|
function getModuleFileContent(componentClassName, componentFileName) {
|
|
27
29
|
return `import { NgModule } from '@angular/core';
|
|
@@ -3,27 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeOptions = normalizeOptions;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
6
|
-
const artifact_types_1 = require("../../utils/artifact-types");
|
|
7
6
|
const validations_1 = require("../../utils/validations");
|
|
8
|
-
const version_utils_1 = require("../../utils/version-utils");
|
|
9
7
|
async function normalizeOptions(tree, options) {
|
|
10
|
-
|
|
11
|
-
if (angularMajorVersion < 20) {
|
|
12
|
-
options.type ??= 'component';
|
|
13
|
-
}
|
|
8
|
+
options.type ??= 'component';
|
|
14
9
|
const { artifactName: name, directory, fileName, filePath, project: projectName, } = await (0, artifact_name_and_directory_utils_1.determineArtifactNameAndDirectoryOptions)(tree, {
|
|
15
10
|
name: options.name,
|
|
16
11
|
path: options.path,
|
|
17
|
-
suffix: options.type,
|
|
12
|
+
suffix: options.type ?? 'component',
|
|
18
13
|
allowedFileExtensions: ['ts'],
|
|
19
14
|
fileExtension: 'ts',
|
|
20
15
|
});
|
|
21
16
|
const { className } = (0, devkit_1.names)(name);
|
|
22
|
-
const suffixClassName =
|
|
17
|
+
const { className: suffixClassName } = (0, devkit_1.names)(options.type);
|
|
23
18
|
const symbolName = `${className}${suffixClassName}`;
|
|
24
19
|
(0, validations_1.validateClassName)(symbolName);
|
|
25
|
-
const moduleTypeSeparator = (0, artifact_types_1.getModuleTypeSeparator)(tree);
|
|
26
|
-
const modulePath = (0, devkit_1.joinPathFragments)(directory, `${name}${moduleTypeSeparator}module.ts`);
|
|
27
20
|
return {
|
|
28
21
|
...options,
|
|
29
22
|
export: options.export ?? true,
|
|
@@ -34,6 +27,5 @@ async function normalizeOptions(tree, options) {
|
|
|
34
27
|
name,
|
|
35
28
|
symbolName,
|
|
36
29
|
projectName,
|
|
37
|
-
modulePath,
|
|
38
30
|
};
|
|
39
31
|
}
|
|
@@ -94,7 +94,8 @@
|
|
|
94
94
|
},
|
|
95
95
|
"type": {
|
|
96
96
|
"type": "string",
|
|
97
|
-
"description": "
|
|
97
|
+
"description": "Adds a developer-defined type to the filename, in the format `name.type.ts`.",
|
|
98
|
+
"default": "component"
|
|
98
99
|
},
|
|
99
100
|
"prefix": {
|
|
100
101
|
"type": "string",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertDirectiveToScam = convertDirectiveToScam;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
4
5
|
const js_1 = require("@nx/js");
|
|
5
6
|
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
|
6
7
|
let tsModule;
|
|
@@ -21,7 +22,8 @@ function convertDirectiveToScam(tree, options) {
|
|
|
21
22
|
tree.write(options.filePath, updatedDirectiveSource);
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
const scamFilePath = (0, devkit_1.joinPathFragments)(options.directory, `${options.name}.module.ts`);
|
|
26
|
+
tree.write(scamFilePath, getModuleFileContent(options.symbolName, options.fileName));
|
|
25
27
|
}
|
|
26
28
|
function getModuleFileContent(directiveClassName, directiveFileName) {
|
|
27
29
|
return `import { NgModule } from '@angular/core';
|
|
@@ -3,27 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeOptions = normalizeOptions;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
6
|
-
const artifact_types_1 = require("../../utils/artifact-types");
|
|
7
6
|
const validations_1 = require("../../utils/validations");
|
|
8
|
-
const version_utils_1 = require("../../utils/version-utils");
|
|
9
7
|
async function normalizeOptions(tree, options) {
|
|
10
|
-
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
11
|
-
if (angularMajorVersion < 20) {
|
|
12
|
-
options.type ??= 'directive';
|
|
13
|
-
}
|
|
14
8
|
const { artifactName: name, directory, fileName, filePath, project: projectName, } = await (0, artifact_name_and_directory_utils_1.determineArtifactNameAndDirectoryOptions)(tree, {
|
|
15
9
|
name: options.name,
|
|
16
10
|
path: options.path,
|
|
17
|
-
suffix:
|
|
11
|
+
suffix: 'directive',
|
|
18
12
|
allowedFileExtensions: ['ts'],
|
|
19
13
|
fileExtension: 'ts',
|
|
20
14
|
});
|
|
21
15
|
const { className } = (0, devkit_1.names)(name);
|
|
22
|
-
const suffixClassName =
|
|
16
|
+
const { className: suffixClassName } = (0, devkit_1.names)('directive');
|
|
23
17
|
const symbolName = `${className}${suffixClassName}`;
|
|
24
18
|
(0, validations_1.validateClassName)(symbolName);
|
|
25
|
-
const moduleTypeSeparator = (0, artifact_types_1.getModuleTypeSeparator)(tree);
|
|
26
|
-
const modulePath = (0, devkit_1.joinPathFragments)(directory, `${name}${moduleTypeSeparator}module.ts`);
|
|
27
19
|
return {
|
|
28
20
|
...options,
|
|
29
21
|
export: options.export ?? true,
|
|
@@ -34,6 +26,5 @@ async function normalizeOptions(tree, options) {
|
|
|
34
26
|
name,
|
|
35
27
|
symbolName,
|
|
36
28
|
projectName,
|
|
37
|
-
modulePath,
|
|
38
29
|
};
|
|
39
30
|
}
|
|
@@ -6,7 +6,6 @@ export interface Schema {
|
|
|
6
6
|
prefix?: string;
|
|
7
7
|
selector?: string;
|
|
8
8
|
export?: boolean;
|
|
9
|
-
type?: string;
|
|
10
9
|
skipFormat?: boolean;
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -19,5 +18,4 @@ export interface NormalizedSchema extends Schema {
|
|
|
19
18
|
inlineScam: boolean;
|
|
20
19
|
symbolName: string;
|
|
21
20
|
projectName: string;
|
|
22
|
-
modulePath: string;
|
|
23
21
|
}
|
|
@@ -10,15 +10,11 @@
|
|
|
10
10
|
"command": "nx g @nx/angular:scam-directive mylib/src/lib/foo.directive.ts"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
|
-
"description": "Generate a directive without providing the file extension. It results in the directive `
|
|
13
|
+
"description": "Generate a directive without providing the file extension. It results in the directive `FooDirective` at `mylib/src/lib/foo.directive.ts`",
|
|
14
14
|
"command": "nx g @nx/angular:scam-directive mylib/src/lib/foo"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
"description": "Generate a directive with
|
|
18
|
-
"command": "nx g @nx/angular:scam-directive mylib/src/lib/foo --type=directive"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"description": "Generate a directive with the exported symbol different from the file name. It results in the directive `Custom` at `mylib/src/lib/foo.ts`",
|
|
17
|
+
"description": "Generate a directive with the exported symbol different from the file name. It results in the directive `CustomDirective` at `mylib/src/lib/foo.directive.ts`",
|
|
22
18
|
"command": "nx g @nx/angular:scam-directive mylib/src/lib/foo --name=custom"
|
|
23
19
|
}
|
|
24
20
|
],
|
|
@@ -74,10 +70,6 @@
|
|
|
74
70
|
"default": true,
|
|
75
71
|
"x-priority": "important"
|
|
76
72
|
},
|
|
77
|
-
"type": {
|
|
78
|
-
"type": "string",
|
|
79
|
-
"description": "Append a custom type to the directive's filename. It defaults to 'directive' for Angular versions below v20. For Angular v20 and above, no type is appended unless specified."
|
|
80
|
-
},
|
|
81
73
|
"skipFormat": {
|
|
82
74
|
"description": "Skip formatting files.",
|
|
83
75
|
"type": "boolean",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertPipeToScam = convertPipeToScam;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
4
5
|
const js_1 = require("@nx/js");
|
|
5
6
|
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
|
6
7
|
let tsModule;
|
|
@@ -21,7 +22,8 @@ function convertPipeToScam(tree, options) {
|
|
|
21
22
|
tree.write(options.filePath, updatedPipeSource);
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
const scamFilePath = (0, devkit_1.joinPathFragments)(options.directory, `${options.name}.module.ts`);
|
|
26
|
+
tree.write(scamFilePath, getModuleFileContent(options.symbolName, options.fileName));
|
|
25
27
|
}
|
|
26
28
|
function getModuleFileContent(pipeClassName, pipeFileName) {
|
|
27
29
|
return `import { NgModule } from '@angular/core';
|
|
@@ -3,17 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeOptions = normalizeOptions;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
6
|
-
const artifact_types_1 = require("../../utils/artifact-types");
|
|
7
6
|
const validations_1 = require("../../utils/validations");
|
|
8
|
-
const version_utils_1 = require("../../utils/version-utils");
|
|
9
7
|
async function normalizeOptions(tree, options) {
|
|
10
|
-
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
11
|
-
options.typeSeparator ??= angularMajorVersion < 20 ? '.' : '-';
|
|
12
8
|
const { artifactName: name, directory, fileName, filePath, project: projectName, } = await (0, artifact_name_and_directory_utils_1.determineArtifactNameAndDirectoryOptions)(tree, {
|
|
13
9
|
name: options.name,
|
|
14
10
|
path: options.path,
|
|
15
11
|
suffix: 'pipe',
|
|
16
|
-
suffixSeparator: options.typeSeparator,
|
|
17
12
|
allowedFileExtensions: ['ts'],
|
|
18
13
|
fileExtension: 'ts',
|
|
19
14
|
});
|
|
@@ -21,8 +16,6 @@ async function normalizeOptions(tree, options) {
|
|
|
21
16
|
const { className: suffixClassName } = (0, devkit_1.names)('pipe');
|
|
22
17
|
const symbolName = `${className}${suffixClassName}`;
|
|
23
18
|
(0, validations_1.validateClassName)(symbolName);
|
|
24
|
-
const moduleTypeSeparator = (0, artifact_types_1.getModuleTypeSeparator)(tree);
|
|
25
|
-
const modulePath = (0, devkit_1.joinPathFragments)(directory, `${name}${moduleTypeSeparator}module.ts`);
|
|
26
19
|
return {
|
|
27
20
|
...options,
|
|
28
21
|
export: options.export ?? true,
|
|
@@ -33,6 +26,5 @@ async function normalizeOptions(tree, options) {
|
|
|
33
26
|
name,
|
|
34
27
|
symbolName,
|
|
35
28
|
projectName,
|
|
36
|
-
modulePath,
|
|
37
29
|
};
|
|
38
30
|
}
|
|
@@ -4,7 +4,6 @@ export interface Schema {
|
|
|
4
4
|
skipTests?: boolean;
|
|
5
5
|
inlineScam?: boolean;
|
|
6
6
|
export?: boolean;
|
|
7
|
-
typeSeparator?: string;
|
|
8
7
|
skipFormat?: boolean;
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -17,5 +16,4 @@ export interface NormalizedSchema extends Schema {
|
|
|
17
16
|
inlineScam: boolean;
|
|
18
17
|
projectName: string;
|
|
19
18
|
symbolName: string;
|
|
20
|
-
modulePath: string;
|
|
21
19
|
}
|
|
@@ -51,11 +51,6 @@
|
|
|
51
51
|
"default": true,
|
|
52
52
|
"x-priority": "important"
|
|
53
53
|
},
|
|
54
|
-
"typeSeparator": {
|
|
55
|
-
"type": "string",
|
|
56
|
-
"enum": ["-", "."],
|
|
57
|
-
"description": "The separator character to use before the type within the generated file's name. For example, if you set the option to `.`, the file will be named `example.pipe.ts`. It defaults to '-' for Angular v20+. For versions below v20, it defaults to '.'."
|
|
58
|
-
},
|
|
59
54
|
"skipFormat": {
|
|
60
55
|
"description": "Skip formatting files.",
|
|
61
56
|
"type": "boolean",
|
|
@@ -2,17 +2,17 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';<% if(routing) { %>
|
|
3
3
|
import { RouterModule } from '@angular/router';<% } %>
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { RemoteEntryComponent } from './entry.component';
|
|
6
|
+
import { NxWelcomeComponent } from './nx-welcome.component';<% if(routing) { %>
|
|
7
7
|
import { remoteRoutes } from './entry.routes';<% } %>
|
|
8
8
|
|
|
9
9
|
@NgModule({
|
|
10
|
-
declarations: [
|
|
10
|
+
declarations: [RemoteEntryComponent, NxWelcomeComponent],
|
|
11
11
|
imports: [
|
|
12
12
|
CommonModule,<% if(routing) { %>
|
|
13
13
|
RouterModule.forChild(remoteRoutes),<% } %>
|
|
14
14
|
],
|
|
15
15
|
providers: [],<% if(!routing) { %>
|
|
16
|
-
exports: [
|
|
16
|
+
exports: [RemoteEntryComponent],<% } %>
|
|
17
17
|
})
|
|
18
18
|
export class RemoteEntryModule {}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Route } from '@angular/router';
|
|
2
|
-
import {
|
|
2
|
+
import { RemoteEntryComponent } from './entry.component';
|
|
3
3
|
|
|
4
|
-
export const remoteRoutes: Route[] = [{ path: '', component:
|
|
4
|
+
export const remoteRoutes: Route[] = [{ path: '', component: RemoteEntryComponent }];
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { fakeAsync, TestBed, tick } from '@angular/core/testing';
|
|
2
|
+
import { AppComponent } from './app.component';
|
|
3
|
+
import { NxWelcomeComponent } from './nx-welcome.component';<% if(useRouterTestingModule) { %>
|
|
4
|
+
import { RouterTestingModule } from '@angular/router/testing';<% } %>
|
|
5
|
+
import { Router<% if(!useRouterTestingModule) { %>, RouterModule<% } %> } from '@angular/router';
|
|
6
|
+
|
|
7
|
+
describe('AppComponent', () => {
|
|
8
|
+
beforeEach(async () => {
|
|
9
|
+
await TestBed.configureTestingModule({
|
|
10
|
+
imports: [<% if(useRouterTestingModule) { %>
|
|
11
|
+
RouterTestingModule.withRoutes([
|
|
12
|
+
{ path: '', component: NxWelcomeComponent },
|
|
13
|
+
]),<% } %><% if(!useRouterTestingModule) { %>
|
|
14
|
+
RouterModule.forRoot([
|
|
15
|
+
{ path: '', component: NxWelcomeComponent },
|
|
16
|
+
]),<% } %><% if (standalone) { %>
|
|
17
|
+
AppComponent,
|
|
18
|
+
NxWelcomeComponent,<% } %>
|
|
19
|
+
],<% if (!standalone) { %>
|
|
20
|
+
declarations: [AppComponent, NxWelcomeComponent],<% } %>
|
|
21
|
+
}).compileComponents();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('should create the app', () => {
|
|
25
|
+
const fixture = TestBed.createComponent(AppComponent);
|
|
26
|
+
const app = fixture.componentInstance;
|
|
27
|
+
expect(app).toBeTruthy();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it(`should have as title '<%= appName %>'`, () => {
|
|
31
|
+
const fixture = TestBed.createComponent(AppComponent);
|
|
32
|
+
const app = fixture.componentInstance;
|
|
33
|
+
expect(app.title).toEqual('<%= appName %>');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should render title', fakeAsync(() => {
|
|
37
|
+
const fixture = TestBed.createComponent(AppComponent);
|
|
38
|
+
const router = TestBed.inject(Router);
|
|
39
|
+
fixture.ngZone?.run(() => router.navigate(['']));
|
|
40
|
+
tick();
|
|
41
|
+
fixture.detectChanges();
|
|
42
|
+
const compiled = fixture.nativeElement as HTMLElement;
|
|
43
|
+
expect(compiled.querySelector('h1')?.textContent).toContain(
|
|
44
|
+
'Welcome <%= appName %>'
|
|
45
|
+
);
|
|
46
|
+
}));
|
|
47
|
+
});
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import {
|
|
3
|
+
import { NxWelcomeComponent } from './nx-welcome.component';
|
|
4
4
|
|
|
5
5
|
@Component({<% if (setStandaloneTrue) { %>
|
|
6
6
|
standalone: true,<% } %>
|
|
7
|
-
imports: [CommonModule,
|
|
7
|
+
imports: [CommonModule, NxWelcomeComponent],<% if (prefix) { %>
|
|
8
8
|
selector: '<%= prefix %>-<%= appName %>-entry',
|
|
9
9
|
template: `<<%= prefix %>-nx-welcome></<%= prefix %>-nx-welcome>`<% } else { %>
|
|
10
10
|
selector: '<%= appName %>-entry',
|
|
11
11
|
template: `<nx-welcome></nx-welcome>`<% } %>
|
|
12
12
|
})
|
|
13
|
-
export class
|
|
13
|
+
export class RemoteEntryComponent {}
|
package/src/generators/setup-mf/files/standalone-entry-component-files/entry.routes.ts__tmpl__
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Route } from '@angular/router';
|
|
2
|
-
import {
|
|
2
|
+
import { RemoteEntryComponent } from './entry.component';
|
|
3
3
|
|
|
4
|
-
export const remoteRoutes: Route[] = [{ path: '', component:
|
|
4
|
+
export const remoteRoutes: Route[] = [{ path: '', component: RemoteEntryComponent }];
|
|
@@ -17,7 +17,7 @@ const config: ModuleFederationConfig = {
|
|
|
17
17
|
remotes: [<% if (federationType === 'static') { remotes.forEach(function(remote) { %>'<%= remote.remoteName %>',<% }); } %>]<% } %><% if(type === 'remote') { %>
|
|
18
18
|
exposes: {<% if(standalone) { %>
|
|
19
19
|
'./Routes': '<%= projectRoot %>/src/app/remote-entry/entry.routes.ts',<% } else { %>
|
|
20
|
-
'./Module': '<%= projectRoot %>/src/app/remote-entry
|
|
20
|
+
'./Module': '<%= projectRoot %>/src/app/remote-entry/entry.module.ts',<% } %>
|
|
21
21
|
},<% } %>
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
},
|
|
6
6
|
"include": [
|
|
7
7
|
"src/main.ts",
|
|
8
|
-
<% if(type === "remote") { %> "src/remote-entry/<% if(standalone) { %>entry.routes.ts"
|
|
8
|
+
<% if(type === "remote") { %> "src/remote-entry/<% if(standalone) { %>entry.routes.ts", <% } else { %> entry.module.ts", <% } } %>
|
|
9
9
|
"webpack.config.ts",
|
|
10
10
|
"webpack.prod.config.ts"
|
|
11
11
|
]
|
|
@@ -18,6 +18,6 @@ module.exports = {
|
|
|
18
18
|
remotes: [<% if (federationType === 'static') { remotes.forEach(function(remote) { %>'<%= remote.remoteName %>',<% }); } %>]<% } %><% if(type === 'remote') { %>
|
|
19
19
|
exposes: {<% if(standalone) { %>
|
|
20
20
|
'./Routes': '<%= projectRoot %>/src/app/remote-entry/entry.routes.ts',<% } else { %>
|
|
21
|
-
'./Module': '<%= projectRoot %>/src/app/remote-entry
|
|
21
|
+
'./Module': '<%= projectRoot %>/src/app/remote-entry/entry.module.ts',<% } %>
|
|
22
22
|
},<% } %>
|
|
23
23
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Tree } from '@nx/devkit';
|
|
2
|
-
import type {
|
|
3
|
-
export declare function addRemoteEntry(tree: Tree,
|
|
2
|
+
import type { Schema } from '../schema';
|
|
3
|
+
export declare function addRemoteEntry(tree: Tree, { appName, routing, prefix, standalone }: Schema, appRoot: string): void;
|
|
@@ -4,9 +4,8 @@ exports.addRemoteEntry = addRemoteEntry;
|
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
|
|
6
6
|
const version_utils_1 = require("../../utils/version-utils");
|
|
7
|
-
function addRemoteEntry(tree,
|
|
7
|
+
function addRemoteEntry(tree, { appName, routing, prefix, standalone }, appRoot) {
|
|
8
8
|
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
9
|
-
const { appName, routing, prefix, standalone, componentType, componentFileSuffix, nxWelcomeComponentInfo, entryModuleFileName, } = options;
|
|
10
9
|
(0, devkit_1.generateFiles)(tree, standalone
|
|
11
10
|
? (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-entry-component-files')
|
|
12
11
|
: (0, devkit_1.joinPathFragments)(__dirname, '../files/entry-module-files'), `${appRoot}/src/app/remote-entry`, {
|
|
@@ -14,19 +13,14 @@ function addRemoteEntry(tree, options, appRoot) {
|
|
|
14
13
|
appName,
|
|
15
14
|
routing,
|
|
16
15
|
prefix,
|
|
17
|
-
// Angular v19 or higher defaults to true, while lower
|
|
16
|
+
// Angular v19 or higher defaults to true, while v18 or lower defaults to false
|
|
18
17
|
setStandaloneFalse: angularMajorVersion >= 19,
|
|
19
18
|
setStandaloneTrue: angularMajorVersion < 19,
|
|
20
|
-
componentType,
|
|
21
|
-
componentFileSuffix,
|
|
22
|
-
entryModuleFileName,
|
|
23
|
-
nxWelcomeFileName: nxWelcomeComponentInfo.extensionlessFileName,
|
|
24
|
-
nxWelcomeSymbolName: nxWelcomeComponentInfo.symbolName,
|
|
25
19
|
});
|
|
26
20
|
if (standalone && routing) {
|
|
27
21
|
(0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{path: '', loadChildren: () => import('./remote-entry/entry.routes').then(m => m.remoteRoutes)}`);
|
|
28
22
|
}
|
|
29
23
|
else if (routing) {
|
|
30
|
-
(0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{ path: '', loadChildren: () => import('./remote-entry
|
|
24
|
+
(0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{ path: '', loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule) }`);
|
|
31
25
|
}
|
|
32
26
|
}
|
|
@@ -105,17 +105,7 @@ function addLazyLoadedRouteToHostAppModule(tree, options, hostFederationType) {
|
|
|
105
105
|
path: '${options.appName}',
|
|
106
106
|
loadChildren: () => ${routeToAdd}.then(m => m!.${exportedRemote})
|
|
107
107
|
}`);
|
|
108
|
-
|
|
109
|
-
const candidatePaths = [
|
|
110
|
-
pathToAppComponentTemplate,
|
|
111
|
-
(0, devkit_1.joinPathFragments)(hostAppConfig.sourceRoot, 'app/app.html'),
|
|
112
|
-
];
|
|
113
|
-
for (const path of candidatePaths) {
|
|
114
|
-
if (tree.exists(path)) {
|
|
115
|
-
pathToAppComponentTemplate = path;
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
108
|
+
const pathToAppComponentTemplate = (0, devkit_1.joinPathFragments)(hostAppConfig.sourceRoot, 'app/app.component.html');
|
|
119
109
|
const appComponent = tree.read(pathToAppComponentTemplate, 'utf-8');
|
|
120
110
|
if (appComponent.includes(`<ul class="remote-menu">`) &&
|
|
121
111
|
appComponent.includes('</ul>')) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type Tree } from '@nx/devkit';
|
|
2
|
-
import type {
|
|
3
|
-
export declare function fixBootstrap(tree: Tree, appRoot: string, options:
|
|
2
|
+
import type { Schema } from '../schema';
|
|
3
|
+
export declare function fixBootstrap(tree: Tree, appRoot: string, options: Schema): void;
|
|
@@ -6,7 +6,7 @@ function fixBootstrap(tree, appRoot, options) {
|
|
|
6
6
|
const mainFilePath = (0, devkit_1.joinPathFragments)(appRoot, 'src/main.ts');
|
|
7
7
|
const bootstrapCode = tree.read(mainFilePath, 'utf-8');
|
|
8
8
|
if (options.standalone && options.mfType === 'remote') {
|
|
9
|
-
tree.write(`${appRoot}/src/bootstrap.ts`, standaloneBootstrapCode(
|
|
9
|
+
tree.write(`${appRoot}/src/bootstrap.ts`, standaloneBootstrapCode());
|
|
10
10
|
}
|
|
11
11
|
else {
|
|
12
12
|
tree.write((0, devkit_1.joinPathFragments)(appRoot, 'src/bootstrap.ts'), bootstrapCode);
|
|
@@ -30,11 +30,11 @@ fetch('${manifestPath}')
|
|
|
30
30
|
tree.write(mainFilePath, fetchMFManifestCode);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
const standaloneBootstrapCode = (
|
|
33
|
+
const standaloneBootstrapCode = () => `import { bootstrapApplication } from '@angular/platform-browser';
|
|
34
34
|
import { appConfig } from './app/app.config';
|
|
35
|
-
import {
|
|
35
|
+
import { RemoteEntryComponent } from './app/remote-entry/entry.component';
|
|
36
36
|
|
|
37
|
-
bootstrapApplication(
|
|
37
|
+
bootstrapApplication(RemoteEntryComponent, appConfig).catch((err) =>
|
|
38
38
|
console.error(err)
|
|
39
39
|
);
|
|
40
40
|
`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Tree } from '@nx/devkit';
|
|
2
|
-
import type {
|
|
3
|
-
export declare function generateWebpackConfig(tree: Tree, options:
|
|
2
|
+
import type { Schema } from '../schema';
|
|
3
|
+
export declare function generateWebpackConfig(tree: Tree, options: Schema, appRoot: string, remotesWithPorts: {
|
|
4
4
|
remoteName: string;
|
|
5
5
|
port: number;
|
|
6
6
|
}[]): void;
|
|
@@ -23,7 +23,6 @@ function generateWebpackConfig(tree, options, appRoot, remotesWithPorts) {
|
|
|
23
23
|
remotes: remotesWithPorts ?? [],
|
|
24
24
|
projectRoot: appRoot,
|
|
25
25
|
standalone: options.standalone,
|
|
26
|
-
entryModuleFileName: options.entryModuleFileName,
|
|
27
26
|
});
|
|
28
27
|
if (!options.setParserOptionsProject) {
|
|
29
28
|
tree.delete((0, devkit_1.joinPathFragments)(appRoot, 'tsconfig.lint.json'));
|
|
@@ -1,26 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeOptions = normalizeOptions;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const app_components_info_1 = require("../../utils/app-components-info");
|
|
6
|
-
const artifact_types_1 = require("../../utils/artifact-types");
|
|
7
4
|
const project_1 = require("../../utils/project");
|
|
8
5
|
function normalizeOptions(tree, options) {
|
|
9
|
-
const componentType = (0, artifact_types_1.getComponentType)(tree);
|
|
10
|
-
const componentFileSuffix = componentType ? `.${componentType}` : '';
|
|
11
|
-
const moduleTypeSeparator = (0, artifact_types_1.getModuleTypeSeparator)(tree);
|
|
12
|
-
const entryModuleFileName = `entry${moduleTypeSeparator}module`;
|
|
13
|
-
const project = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
|
|
14
6
|
return {
|
|
15
7
|
...options,
|
|
16
8
|
typescriptConfiguration: options.typescriptConfiguration ?? true,
|
|
17
9
|
federationType: options.federationType ?? 'static',
|
|
18
10
|
prefix: options.prefix ?? (0, project_1.getProjectPrefix)(tree, options.appName) ?? 'app',
|
|
19
11
|
standalone: options.standalone ?? true,
|
|
20
|
-
componentType: componentType ? (0, devkit_1.names)(componentType).className : '',
|
|
21
|
-
componentFileSuffix,
|
|
22
|
-
entryModuleFileName,
|
|
23
|
-
appComponentInfo: (0, app_components_info_1.getAppComponentInfo)(tree, componentFileSuffix, project),
|
|
24
|
-
nxWelcomeComponentInfo: (0, app_components_info_1.getNxWelcomeComponentInfo)(tree, componentFileSuffix, project),
|
|
25
12
|
};
|
|
26
13
|
}
|