@nx/angular 24.0.0-pr.37405.acdaf31 → 24.0.0-rc.0
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/dist/executors.d.ts +0 -2
- package/dist/executors.js +0 -2
- package/dist/fesm2022/nx-angular.mjs +0 -4
- package/dist/generators.d.ts +0 -8
- package/dist/generators.js +0 -8
- package/dist/ready-check.d.ts +1 -0
- package/dist/ready-check.js +8 -0
- package/dist/src/executors/application/schema.json +1 -2
- package/dist/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.transform.js +9 -1
- package/dist/src/executors/unit-test/schema.json +6 -1
- package/dist/src/executors/unit-test/unit-test.impl.js +5 -0
- package/dist/src/executors/utilities/ng-packagr/stylesheet-processor.js +35 -10
- package/dist/src/generators/add-linting/add-linting.js +1 -3
- package/dist/src/generators/add-linting/schema.d.ts +0 -5
- package/dist/src/generators/add-linting/schema.json +0 -6
- package/dist/src/generators/application/application.js +1 -2
- package/dist/src/generators/application/lib/add-e2e.js +3 -8
- package/dist/src/generators/application/lib/add-linting.js +1 -3
- package/dist/src/generators/application/lib/add-serve-static-target.js +2 -0
- package/dist/src/generators/application/lib/add-unit-test-runner.js +0 -2
- package/dist/src/generators/application/lib/create-project.js +2 -0
- package/dist/src/generators/application/lib/normalize-options.d.ts +1 -1
- package/dist/src/generators/application/lib/normalize-options.js +1 -8
- package/dist/src/generators/application/schema.d.ts +0 -5
- package/dist/src/generators/application/schema.json +1 -7
- package/dist/src/generators/convert-to-rspack/convert-to-rspack.js +9 -4
- package/dist/src/generators/convert-to-rspack/lib/get-custom-webpack-config.d.ts +1 -2
- package/dist/src/generators/convert-to-rspack/lib/get-custom-webpack-config.js +0 -63
- package/dist/src/generators/convert-to-rspack/lib/validate-no-module-federation.d.ts +2 -0
- package/dist/src/generators/convert-to-rspack/lib/validate-no-module-federation.js +32 -0
- package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.js +3 -15
- package/dist/src/generators/init/init.js +1 -2
- package/dist/src/generators/init/schema.d.ts +0 -2
- package/dist/src/generators/library/lib/normalized-schema.d.ts +0 -4
- package/dist/src/generators/library/library.js +3 -4
- package/dist/src/generators/library/schema.d.ts +0 -5
- package/dist/src/generators/library/schema.json +0 -6
- package/dist/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js +12 -1
- package/dist/src/generators/ng-add/migrators/projects/app.migrator.d.ts +1 -0
- package/dist/src/generators/ng-add/migrators/projects/app.migrator.js +22 -0
- package/dist/src/generators/ng-add/migrators/projects/e2e.migrator.js +12 -16
- package/dist/src/generators/ng-add/utilities/workspace.js +1 -3
- package/dist/src/generators/setup-ssr/files/v20+/application-builder/server/__serverFileName__ +15 -1
- package/dist/src/generators/setup-ssr/lib/add-dependencies.js +4 -0
- package/dist/src/generators/setup-ssr/lib/update-project-config.js +1 -0
- package/dist/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +0 -2
- package/dist/src/generators/utils/add-jest.d.ts +0 -1
- package/dist/src/generators/utils/add-jest.js +0 -2
- package/dist/src/generators/utils/add-vitest.d.ts +0 -1
- package/dist/src/generators/utils/add-vitest.js +0 -1
- package/dist/src/generators/utils/testing.d.ts +4 -4
- package/dist/src/generators/utils/testing.js +19 -12
- package/dist/src/migrations/update-23-1-0/add-angular-build.js +7 -3
- package/dist/src/migrations/update-23-1-0/add-angular-build.md +1 -1
- package/dist/src/migrations/update-23-1-0/add-trust-proxy-headers.js +9 -2
- package/dist/src/migrations/update-24-0-0/add-ready-when-signal.d.ts +4 -0
- package/dist/src/migrations/update-24-0-0/add-ready-when-signal.js +12 -0
- package/dist/src/migrations/update-24-0-0/add-ready-when-signal.md +59 -0
- package/dist/src/migrations/update-24-0-0/remove-scam-generator-defaults.d.ts +2 -0
- package/dist/src/migrations/update-24-0-0/remove-scam-generator-defaults.js +85 -0
- package/dist/src/migrations/update-24-0-0/remove-scam-generator-defaults.md +48 -0
- package/dist/src/migrations/update-24-0-0/upgrade-to-angular-22-2.d.ts +5 -0
- package/dist/src/migrations/update-24-0-0/upgrade-to-angular-22-2.js +332 -0
- package/dist/src/migrations/update-24-0-0/upgrade-to-angular-22-2.md +46 -0
- package/dist/src/plugins/plugin.js +3 -5
- package/dist/src/plugins/utils/dev-server-ready-check.d.ts +17 -0
- package/dist/src/plugins/utils/dev-server-ready-check.js +213 -0
- package/dist/src/utils/assert-cypress-component-testing-support.js +10 -0
- package/dist/src/utils/backward-compatible-versions.js +0 -8
- package/dist/src/utils/versions.d.ts +4 -8
- package/dist/src/utils/versions.js +5 -9
- package/dist/types/nx-angular.d.ts +1 -3
- package/executors.json +0 -10
- package/generators.json +0 -59
- package/migrations.json +109 -0
- package/package.json +13 -21
- package/dist/.npmignore +0 -2
- package/dist/fesm2022/nx-angular-mf.mjs +0 -193
- package/dist/fesm2022/nx-angular-mf.mjs.map +0 -1
- package/dist/fesm2022/nx-angular.mjs.map +0 -1
- package/dist/mf/package.json +0 -4
- package/dist/src/builders/utilities/module-federation.d.ts +0 -11
- package/dist/src/builders/utilities/module-federation.js +0 -109
- package/dist/src/executors/module-federation-dev-server/lib/index.d.ts +0 -2
- package/dist/src/executors/module-federation-dev-server/lib/index.js +0 -5
- package/dist/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +0 -2
- package/dist/src/executors/module-federation-dev-server/lib/normalize-options.js +0 -22
- package/dist/src/executors/module-federation-dev-server/lib/start-dev-remotes.d.ts +0 -5
- package/dist/src/executors/module-federation-dev-server/lib/start-dev-remotes.js +0 -29
- package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -4
- package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +0 -111
- package/dist/src/executors/module-federation-dev-server/schema.d.ts +0 -38
- package/dist/src/executors/module-federation-dev-server/schema.json +0 -171
- package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +0 -2
- package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +0 -20
- package/dist/src/executors/module-federation-ssr-dev-server/lib/start-dev-remotes.d.ts +0 -5
- package/dist/src/executors/module-federation-ssr-dev-server/lib/start-dev-remotes.js +0 -30
- package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +0 -4
- package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +0 -110
- package/dist/src/executors/module-federation-ssr-dev-server/schema.d.ts +0 -17
- package/dist/src/executors/module-federation-ssr-dev-server/schema.json +0 -124
- package/dist/src/generators/convert-to-with-mf/convert-to-with-mf.d.ts +0 -4
- package/dist/src/generators/convert-to-with-mf/convert-to-with-mf.js +0 -36
- package/dist/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.d.ts +0 -5
- package/dist/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.js +0 -448
- package/dist/src/generators/convert-to-with-mf/lib/check-name-matches.d.ts +0 -2
- package/dist/src/generators/convert-to-with-mf/lib/check-name-matches.js +0 -22
- package/dist/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.d.ts +0 -2
- package/dist/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js +0 -45
- package/dist/src/generators/convert-to-with-mf/lib/get-webpack-config-path.d.ts +0 -2
- package/dist/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +0 -18
- package/dist/src/generators/convert-to-with-mf/lib/index.d.ts +0 -6
- package/dist/src/generators/convert-to-with-mf/lib/index.js +0 -9
- package/dist/src/generators/convert-to-with-mf/lib/is-host-remote-config.d.ts +0 -5
- package/dist/src/generators/convert-to-with-mf/lib/is-host-remote-config.js +0 -57
- package/dist/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.d.ts +0 -2
- package/dist/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js +0 -13
- package/dist/src/generators/convert-to-with-mf/lib/write-new-webpack-config.d.ts +0 -3
- package/dist/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +0 -50
- package/dist/src/generators/convert-to-with-mf/schema.d.ts +0 -4
- package/dist/src/generators/convert-to-with-mf/schema.json +0 -33
- package/dist/src/generators/federate-module/federate-module.d.ts +0 -4
- package/dist/src/generators/federate-module/federate-module.js +0 -49
- package/dist/src/generators/federate-module/lib/add-file-to-remote-tsconfig.d.ts +0 -2
- package/dist/src/generators/federate-module/lib/add-file-to-remote-tsconfig.js +0 -14
- package/dist/src/generators/federate-module/lib/add-path-to-exposes.d.ts +0 -8
- package/dist/src/generators/federate-module/lib/add-path-to-exposes.js +0 -77
- package/dist/src/generators/federate-module/lib/add-path-to-ts-config.d.ts +0 -8
- package/dist/src/generators/federate-module/lib/add-path-to-ts-config.js +0 -11
- package/dist/src/generators/federate-module/lib/add-remote.d.ts +0 -7
- package/dist/src/generators/federate-module/lib/add-remote.js +0 -42
- package/dist/src/generators/federate-module/lib/check-remote-exists.d.ts +0 -2
- package/dist/src/generators/federate-module/lib/check-remote-exists.js +0 -21
- package/dist/src/generators/federate-module/lib/index.d.ts +0 -4
- package/dist/src/generators/federate-module/lib/index.js +0 -7
- package/dist/src/generators/federate-module/schema.d.ts +0 -13
- package/dist/src/generators/federate-module/schema.json +0 -83
- package/dist/src/generators/host/files/common/src/main.server.ts__tmpl__ +0 -78
- package/dist/src/generators/host/files/js/webpack.server.config.js__tmpl__ +0 -8
- package/dist/src/generators/host/files/ts/webpack.server.config.ts__tmpl__ +0 -9
- package/dist/src/generators/host/host.d.ts +0 -4
- package/dist/src/generators/host/host.js +0 -133
- package/dist/src/generators/host/lib/index.d.ts +0 -2
- package/dist/src/generators/host/lib/index.js +0 -5
- package/dist/src/generators/host/lib/update-ssr-setup.d.ts +0 -3
- package/dist/src/generators/host/lib/update-ssr-setup.js +0 -54
- package/dist/src/generators/host/lib/validate-options.d.ts +0 -3
- package/dist/src/generators/host/lib/validate-options.js +0 -12
- package/dist/src/generators/host/schema.d.ts +0 -36
- package/dist/src/generators/host/schema.json +0 -195
- package/dist/src/generators/remote/files/base/webpack.server.config.js__tmpl__ +0 -9
- package/dist/src/generators/remote/files/base-ts/webpack.server.config.ts__tmpl__ +0 -9
- package/dist/src/generators/remote/files/common/src/main.server.ts__tmpl__ +0 -84
- package/dist/src/generators/remote/files/standalone/src/bootstrap.server.ts__tmpl__ +0 -12
- package/dist/src/generators/remote/lib/find-next-available-port.d.ts +0 -2
- package/dist/src/generators/remote/lib/find-next-available-port.js +0 -16
- package/dist/src/generators/remote/lib/index.d.ts +0 -3
- package/dist/src/generators/remote/lib/index.js +0 -6
- package/dist/src/generators/remote/lib/update-ssr-setup.d.ts +0 -9
- package/dist/src/generators/remote/lib/update-ssr-setup.js +0 -82
- package/dist/src/generators/remote/lib/validate-options.d.ts +0 -3
- package/dist/src/generators/remote/lib/validate-options.js +0 -12
- package/dist/src/generators/remote/remote.d.ts +0 -4
- package/dist/src/generators/remote/remote.js +0 -114
- package/dist/src/generators/remote/schema.d.ts +0 -34
- package/dist/src/generators/remote/schema.json +0 -184
- package/dist/src/generators/scam/lib/convert-component-to-scam.d.ts +0 -3
- package/dist/src/generators/scam/lib/convert-component-to-scam.js +0 -41
- package/dist/src/generators/scam/lib/index.d.ts +0 -2
- package/dist/src/generators/scam/lib/index.js +0 -5
- package/dist/src/generators/scam/lib/normalize-options.d.ts +0 -3
- package/dist/src/generators/scam/lib/normalize-options.js +0 -34
- package/dist/src/generators/scam/scam.d.ts +0 -7
- package/dist/src/generators/scam/scam.js +0 -28
- package/dist/src/generators/scam/schema.d.ts +0 -30
- package/dist/src/generators/scam/schema.json +0 -126
- package/dist/src/generators/scam-directive/lib/convert-directive-to-scam.d.ts +0 -3
- package/dist/src/generators/scam-directive/lib/convert-directive-to-scam.js +0 -41
- package/dist/src/generators/scam-directive/lib/index.d.ts +0 -2
- package/dist/src/generators/scam-directive/lib/index.js +0 -5
- package/dist/src/generators/scam-directive/lib/normalize-options.d.ts +0 -3
- package/dist/src/generators/scam-directive/lib/normalize-options.js +0 -34
- package/dist/src/generators/scam-directive/scam-directive.d.ts +0 -7
- package/dist/src/generators/scam-directive/scam-directive.js +0 -28
- package/dist/src/generators/scam-directive/schema.d.ts +0 -23
- package/dist/src/generators/scam-directive/schema.json +0 -89
- package/dist/src/generators/scam-pipe/lib/convert-pipe-to-scam.d.ts +0 -3
- package/dist/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +0 -41
- package/dist/src/generators/scam-pipe/lib/index.d.ts +0 -2
- package/dist/src/generators/scam-pipe/lib/index.js +0 -5
- package/dist/src/generators/scam-pipe/lib/normalize-options.d.ts +0 -3
- package/dist/src/generators/scam-pipe/lib/normalize-options.js +0 -36
- package/dist/src/generators/scam-pipe/scam-pipe.d.ts +0 -7
- package/dist/src/generators/scam-pipe/scam-pipe.js +0 -28
- package/dist/src/generators/scam-pipe/schema.d.ts +0 -21
- package/dist/src/generators/scam-pipe/schema.json +0 -67
- package/dist/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.d.ts +0 -3
- package/dist/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.js +0 -35
- package/dist/src/generators/scam-to-standalone/lib/get-component-data-from-ast.d.ts +0 -6
- package/dist/src/generators/scam-to-standalone/lib/get-component-data-from-ast.js +0 -15
- package/dist/src/generators/scam-to-standalone/lib/get-module-metadata-from-ast.d.ts +0 -9
- package/dist/src/generators/scam-to-standalone/lib/get-module-metadata-from-ast.js +0 -51
- package/dist/src/generators/scam-to-standalone/lib/get-target-project.d.ts +0 -2
- package/dist/src/generators/scam-to-standalone/lib/get-target-project.js +0 -13
- package/dist/src/generators/scam-to-standalone/lib/index.d.ts +0 -8
- package/dist/src/generators/scam-to-standalone/lib/index.js +0 -11
- package/dist/src/generators/scam-to-standalone/lib/replace-module-usages-with-component.d.ts +0 -2
- package/dist/src/generators/scam-to-standalone/lib/replace-module-usages-with-component.js +0 -20
- package/dist/src/generators/scam-to-standalone/lib/selector-exists-in-ast.d.ts +0 -2
- package/dist/src/generators/scam-to-standalone/lib/selector-exists-in-ast.js +0 -7
- package/dist/src/generators/scam-to-standalone/lib/verify-is-inline-scam.d.ts +0 -2
- package/dist/src/generators/scam-to-standalone/lib/verify-is-inline-scam.js +0 -10
- package/dist/src/generators/scam-to-standalone/lib/verify-module-is-scam.d.ts +0 -1
- package/dist/src/generators/scam-to-standalone/lib/verify-module-is-scam.js +0 -11
- package/dist/src/generators/scam-to-standalone/scam-to-standalone.d.ts +0 -7
- package/dist/src/generators/scam-to-standalone/scam-to-standalone.js +0 -31
- package/dist/src/generators/scam-to-standalone/schema.d.ts +0 -5
- package/dist/src/generators/scam-to-standalone/schema.json +0 -32
- package/dist/src/generators/setup-mf/files/entry-module-files/__entryModuleFileName__.ts__tmpl__ +0 -18
- package/dist/src/generators/setup-mf/files/entry-module-files/entry.routes.ts__tmpl__ +0 -4
- package/dist/src/generators/setup-mf/files/entry-module-files/entry__componentFileSuffix__.ts__tmpl__ +0 -10
- package/dist/src/generators/setup-mf/files/host-files/__appFileName__.spec.ts__tmpl__ +0 -42
- package/dist/src/generators/setup-mf/files/standalone-entry-component-files/entry.routes.ts__tmpl__ +0 -4
- package/dist/src/generators/setup-mf/files/standalone-entry-component-files/entry__componentFileSuffix__.ts__tmpl__ +0 -11
- package/dist/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +0 -27
- package/dist/src/generators/setup-mf/files/ts-webpack/tsconfig.lint.json__tmpl__ +0 -12
- package/dist/src/generators/setup-mf/files/ts-webpack/webpack.config.ts__tmpl__ +0 -9
- package/dist/src/generators/setup-mf/files/ts-webpack/webpack.prod.config.ts__tmpl__ +0 -21
- package/dist/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +0 -23
- package/dist/src/generators/setup-mf/files/webpack/webpack.config.js__tmpl__ +0 -9
- package/dist/src/generators/setup-mf/files/webpack/webpack.prod.config.js__tmpl__ +0 -21
- package/dist/src/generators/setup-mf/lib/add-cypress-workaround.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/add-cypress-workaround.js +0 -52
- package/dist/src/generators/setup-mf/lib/add-remote-entry.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/add-remote-entry.js +0 -27
- package/dist/src/generators/setup-mf/lib/add-remote-to-host.d.ts +0 -9
- package/dist/src/generators/setup-mf/lib/add-remote-to-host.js +0 -127
- package/dist/src/generators/setup-mf/lib/change-build-target.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/change-build-target.js +0 -24
- package/dist/src/generators/setup-mf/lib/fix-bootstrap.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/fix-bootstrap.js +0 -40
- package/dist/src/generators/setup-mf/lib/generate-config.d.ts +0 -6
- package/dist/src/generators/setup-mf/lib/generate-config.js +0 -32
- package/dist/src/generators/setup-mf/lib/get-remotes-with-ports.d.ts +0 -6
- package/dist/src/generators/setup-mf/lib/get-remotes-with-ports.js +0 -20
- package/dist/src/generators/setup-mf/lib/index.d.ts +0 -15
- package/dist/src/generators/setup-mf/lib/index.js +0 -18
- package/dist/src/generators/setup-mf/lib/move-angular-plugin-to-dependencies.d.ts +0 -2
- package/dist/src/generators/setup-mf/lib/move-angular-plugin-to-dependencies.js +0 -15
- package/dist/src/generators/setup-mf/lib/normalize-options.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/normalize-options.js +0 -26
- package/dist/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +0 -61
- package/dist/src/generators/setup-mf/lib/setup-host-if-dynamic.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/setup-host-if-dynamic.js +0 -20
- package/dist/src/generators/setup-mf/lib/setup-serve-target.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/setup-serve-target.js +0 -39
- package/dist/src/generators/setup-mf/lib/setup-tspath-for-remote.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/setup-tspath-for-remote.js +0 -15
- package/dist/src/generators/setup-mf/lib/update-host-app-routes.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/update-host-app-routes.js +0 -39
- package/dist/src/generators/setup-mf/lib/update-tsconfig.d.ts +0 -3
- package/dist/src/generators/setup-mf/lib/update-tsconfig.js +0 -18
- package/dist/src/generators/setup-mf/schema.d.ts +0 -35
- package/dist/src/generators/setup-mf/schema.json +0 -99
- package/dist/src/generators/setup-mf/setup-mf.d.ts +0 -4
- package/dist/src/generators/setup-mf/setup-mf.js +0 -90
- package/dist/src/generators/utils/add-mf-env-to-inputs.d.ts +0 -2
- package/dist/src/generators/utils/add-mf-env-to-inputs.js +0 -36
- package/dist/src/generators/utils/assert-mf-utils.d.ts +0 -1
- package/dist/src/generators/utils/assert-mf-utils.js +0 -8
- package/dist/src/generators/utils/export-scam.d.ts +0 -11
- package/dist/src/generators/utils/export-scam.js +0 -35
- package/dist/src/utils/get-mf-projects.d.ts +0 -4
- package/dist/src/utils/get-mf-projects.js +0 -31
- package/dist/src/utils/module-federation-deprecation.d.ts +0 -4
- package/dist/src/utils/module-federation-deprecation.js +0 -29
- package/dist/types/nx-angular-mf.d.ts +0 -72
- package/dist/types/nx-angular-mf.d.ts.map +0 -1
- package/dist/types/nx-angular.d.ts.map +0 -1
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkIsCommaNeeded = checkIsCommaNeeded;
|
|
4
|
-
exports.addRemoteToHost = addRemoteToHost;
|
|
5
|
-
const devkit_1 = require("@nx/devkit");
|
|
6
|
-
const js_1 = require("@nx/js");
|
|
7
|
-
const internal_1 = require("@nx/js/internal");
|
|
8
|
-
const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
|
|
9
|
-
let tsModule;
|
|
10
|
-
function checkIsCommaNeeded(mfRemoteText) {
|
|
11
|
-
const remoteText = mfRemoteText.replace(/\s+/g, '');
|
|
12
|
-
return !remoteText.endsWith(',]')
|
|
13
|
-
? remoteText === '[]'
|
|
14
|
-
? false
|
|
15
|
-
: true
|
|
16
|
-
: false;
|
|
17
|
-
}
|
|
18
|
-
function addRemoteToHost(tree, options) {
|
|
19
|
-
if (options.host) {
|
|
20
|
-
const hostProject = (0, devkit_1.readProjectConfiguration)(tree, options.host);
|
|
21
|
-
const pathToMFManifest = getDynamicManifestFile(tree, hostProject);
|
|
22
|
-
const hostFederationType = !!pathToMFManifest ? 'dynamic' : 'static';
|
|
23
|
-
const isHostUsingTypescriptConfig = tree.exists((0, devkit_1.joinPathFragments)(hostProject.root, 'module-federation.config.ts'));
|
|
24
|
-
if (hostFederationType === 'static') {
|
|
25
|
-
addRemoteToStaticHost(tree, options, hostProject, isHostUsingTypescriptConfig);
|
|
26
|
-
}
|
|
27
|
-
else if (hostFederationType === 'dynamic') {
|
|
28
|
-
addRemoteToDynamicHost(tree, options, pathToMFManifest, (0, internal_1.getProjectSourceRoot)(hostProject, tree));
|
|
29
|
-
}
|
|
30
|
-
addLazyLoadedRouteToHostAppModule(tree, options, hostFederationType);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function getDynamicManifestFile(tree, project) {
|
|
34
|
-
// {sourceRoot}/assets/module-federation.manifest.json was the generated
|
|
35
|
-
// path for the manifest file in the past. We now generate the manifest
|
|
36
|
-
// file at {root}/public/module-federation.manifest.json. This check
|
|
37
|
-
// ensures that we can still support the old path for backwards
|
|
38
|
-
// compatibility since old projects may still have the manifest file
|
|
39
|
-
// at the old path.
|
|
40
|
-
return [
|
|
41
|
-
(0, devkit_1.joinPathFragments)(project.root, 'public/module-federation.manifest.json'),
|
|
42
|
-
(0, devkit_1.joinPathFragments)((0, internal_1.getProjectSourceRoot)(project, tree), 'assets/module-federation.manifest.json'),
|
|
43
|
-
].find((path) => tree.exists(path));
|
|
44
|
-
}
|
|
45
|
-
function addRemoteToStaticHost(tree, options, hostProject, isHostUsingTypescript) {
|
|
46
|
-
const hostMFConfigPath = (0, devkit_1.joinPathFragments)(hostProject.root, isHostUsingTypescript
|
|
47
|
-
? 'module-federation.config.ts'
|
|
48
|
-
: 'module-federation.config.js');
|
|
49
|
-
if (!hostMFConfigPath || !tree.exists(hostMFConfigPath)) {
|
|
50
|
-
throw new Error(`The selected host application, ${options.host}, does not contain a module-federation.config.{ts,js} or module-federation.manifest.json file. Are you sure it has been set up as a host application?`);
|
|
51
|
-
}
|
|
52
|
-
const hostMFConfig = tree.read(hostMFConfigPath, 'utf-8');
|
|
53
|
-
const { ast, query } = require('@phenomnomnominal/tsquery');
|
|
54
|
-
const webpackAst = ast(hostMFConfig);
|
|
55
|
-
const mfRemotesNode = query(webpackAst, 'ObjectLiteralExpression > PropertyAssignment:has(Identifier[name=remotes]) > ArrayLiteralExpression')[0];
|
|
56
|
-
const endOfPropertiesPos = mfRemotesNode.getEnd() - 1;
|
|
57
|
-
const isCommaNeeded = checkIsCommaNeeded(mfRemotesNode.getText());
|
|
58
|
-
const updatedConfig = `${hostMFConfig.slice(0, endOfPropertiesPos)}${isCommaNeeded ? ',' : ''}'${options.appName}',${hostMFConfig.slice(endOfPropertiesPos)}`;
|
|
59
|
-
tree.write(hostMFConfigPath, updatedConfig);
|
|
60
|
-
}
|
|
61
|
-
function addRemoteToDynamicHost(tree, options, pathToMfManifest, hostSourceRoot) {
|
|
62
|
-
// TODO(Colum): Remove for Nx 22
|
|
63
|
-
const usingLegacyDynamicFederation = tree
|
|
64
|
-
.read(`${hostSourceRoot}/main.ts`, 'utf-8')
|
|
65
|
-
.includes('setRemoteDefinitions(');
|
|
66
|
-
(0, devkit_1.updateJson)(tree, pathToMfManifest, (manifest) => {
|
|
67
|
-
return {
|
|
68
|
-
...manifest,
|
|
69
|
-
[options.appName]: `http://localhost:${options.port}${usingLegacyDynamicFederation ? '' : '/mf-manifest.json'}`,
|
|
70
|
-
};
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
function addLazyLoadedRouteToHostAppModule(tree, options, hostFederationType) {
|
|
74
|
-
if (!tsModule) {
|
|
75
|
-
tsModule = (0, internal_1.ensureTypescript)();
|
|
76
|
-
}
|
|
77
|
-
const hostAppConfig = (0, devkit_1.readProjectConfiguration)(tree, options.host);
|
|
78
|
-
const sourceRoot = (0, internal_1.getProjectSourceRoot)(hostAppConfig, tree);
|
|
79
|
-
const pathToHostRootRouting = `${sourceRoot}/app/app.routes.ts`;
|
|
80
|
-
if (!tree.exists(pathToHostRootRouting)) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
const hostRootRoutingFile = tree.read(pathToHostRootRouting, 'utf-8');
|
|
84
|
-
let sourceFile = tsModule.createSourceFile(pathToHostRootRouting, hostRootRoutingFile, tsModule.ScriptTarget.Latest, true);
|
|
85
|
-
// TODO(Colum): Remove for Nx 22
|
|
86
|
-
const usingLegacyDynamicFederation = hostFederationType === 'dynamic' &&
|
|
87
|
-
tree
|
|
88
|
-
.read(`${sourceRoot}/main.ts`, 'utf-8')
|
|
89
|
-
.includes('setRemoteDefinitions(');
|
|
90
|
-
if (hostFederationType === 'dynamic') {
|
|
91
|
-
sourceFile = (0, js_1.insertImport)(tree, sourceFile, pathToHostRootRouting, usingLegacyDynamicFederation ? 'loadRemoteModule' : 'loadRemote', usingLegacyDynamicFederation
|
|
92
|
-
? '@nx/angular/mf'
|
|
93
|
-
: '@module-federation/enhanced/runtime');
|
|
94
|
-
}
|
|
95
|
-
const routePathName = options.standalone ? 'Routes' : 'Module';
|
|
96
|
-
const exportedRemote = options.standalone
|
|
97
|
-
? 'remoteRoutes'
|
|
98
|
-
: 'RemoteEntryModule';
|
|
99
|
-
const remoteModulePath = `${options.appName.replace(/-/g, '_')}/${routePathName}`;
|
|
100
|
-
const routeToAdd = hostFederationType === 'dynamic'
|
|
101
|
-
? usingLegacyDynamicFederation
|
|
102
|
-
? `loadRemoteModule('${options.appName.replace(/-/g, '_')}', './${routePathName}')`
|
|
103
|
-
: `loadRemote<typeof import('${remoteModulePath}')>('${remoteModulePath}')`
|
|
104
|
-
: `import('${remoteModulePath}')`;
|
|
105
|
-
(0, route_utils_1.addRoute)(tree, pathToHostRootRouting, `{
|
|
106
|
-
path: '${options.appName}',
|
|
107
|
-
loadChildren: () => ${routeToAdd}.then(m => m!.${exportedRemote})
|
|
108
|
-
}`);
|
|
109
|
-
let pathToAppComponentTemplate = (0, devkit_1.joinPathFragments)(sourceRoot, 'app/app.component.html');
|
|
110
|
-
const candidatePaths = [
|
|
111
|
-
pathToAppComponentTemplate,
|
|
112
|
-
(0, devkit_1.joinPathFragments)(sourceRoot, 'app/app.html'),
|
|
113
|
-
];
|
|
114
|
-
for (const path of candidatePaths) {
|
|
115
|
-
if (tree.exists(path)) {
|
|
116
|
-
pathToAppComponentTemplate = path;
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
const appComponent = tree.read(pathToAppComponentTemplate, 'utf-8');
|
|
121
|
-
if (appComponent.includes(`<ul class="remote-menu">`) &&
|
|
122
|
-
appComponent.includes('</ul>')) {
|
|
123
|
-
const indexOfClosingMenuTag = appComponent.indexOf('</ul>');
|
|
124
|
-
const newAppComponent = `${appComponent.slice(0, indexOfClosingMenuTag)}<li><a routerLink="${options.appName}">${(0, devkit_1.names)(options.appName).className}</a></li>\n${appComponent.slice(indexOfClosingMenuTag)}`;
|
|
125
|
-
tree.write(pathToAppComponentTemplate, newAppComponent);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.changeBuildTarget = changeBuildTarget;
|
|
4
|
-
const internal_1 = require("@nx/devkit/internal");
|
|
5
|
-
const devkit_1 = require("@nx/devkit");
|
|
6
|
-
function changeBuildTarget(host, options) {
|
|
7
|
-
const appConfig = (0, devkit_1.readProjectConfiguration)(host, options.appName);
|
|
8
|
-
const configExtName = options.typescriptConfiguration ? 'ts' : 'js';
|
|
9
|
-
appConfig.targets.build.executor = '@nx/angular:webpack-browser';
|
|
10
|
-
appConfig.targets.build.options = {
|
|
11
|
-
...appConfig.targets.build.options,
|
|
12
|
-
customWebpackConfig: {
|
|
13
|
-
path: `${appConfig.root}/webpack.config.${configExtName}`,
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
appConfig.targets.build.configurations.production = {
|
|
17
|
-
...appConfig.targets.build.configurations.production,
|
|
18
|
-
customWebpackConfig: {
|
|
19
|
-
path: `${appConfig.root}/webpack.prod.config.${configExtName}`,
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
(0, devkit_1.updateProjectConfiguration)(host, options.appName, appConfig);
|
|
23
|
-
(0, internal_1.addBuildTargetDefaults)(host, '@nx/angular:webpack-browser');
|
|
24
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fixBootstrap = fixBootstrap;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
function fixBootstrap(tree, appRoot, options) {
|
|
6
|
-
const mainFilePath = (0, devkit_1.joinPathFragments)(appRoot, 'src/main.ts');
|
|
7
|
-
const bootstrapCode = tree.read(mainFilePath, 'utf-8');
|
|
8
|
-
if (options.standalone && options.mfType === 'remote') {
|
|
9
|
-
tree.write(`${appRoot}/src/bootstrap.ts`, standaloneBootstrapCode(options.componentType, options.componentFileSuffix));
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
tree.write((0, devkit_1.joinPathFragments)(appRoot, 'src/bootstrap.ts'), bootstrapCode);
|
|
13
|
-
}
|
|
14
|
-
const bootstrapImportCode = `import('./bootstrap').catch(err => console.error(err))`;
|
|
15
|
-
if (options.mfType === 'remote' || options.federationType === 'static') {
|
|
16
|
-
tree.write(mainFilePath, `${bootstrapImportCode};`);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
let manifestPath = '/assets/module-federation.manifest.json';
|
|
20
|
-
if (tree.exists((0, devkit_1.joinPathFragments)(appRoot, 'public/module-federation.manifest.json'))) {
|
|
21
|
-
manifestPath = '/module-federation.manifest.json';
|
|
22
|
-
}
|
|
23
|
-
const fetchMFManifestCode = `import { registerRemotes } from '@module-federation/enhanced/runtime';
|
|
24
|
-
|
|
25
|
-
fetch('${manifestPath}')
|
|
26
|
-
.then((res) => res.json())
|
|
27
|
-
.then((remotes: Record<string, string>) => Object.entries(remotes).map(([name, entry]) => ({ name,entry})))
|
|
28
|
-
.then(remotes => registerRemotes(remotes))
|
|
29
|
-
.then(() => ${bootstrapImportCode});`;
|
|
30
|
-
tree.write(mainFilePath, fetchMFManifestCode);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const standaloneBootstrapCode = (componentType, componentFileSuffix) => `import { bootstrapApplication } from '@angular/platform-browser';
|
|
34
|
-
import { appConfig } from './app/app.config';
|
|
35
|
-
import { RemoteEntry${componentType} } from './app/remote-entry/entry${componentFileSuffix}';
|
|
36
|
-
|
|
37
|
-
bootstrapApplication(RemoteEntry${componentType}, appConfig).catch((err) =>
|
|
38
|
-
console.error(err)
|
|
39
|
-
);
|
|
40
|
-
`;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Tree } from '@nx/devkit';
|
|
2
|
-
import type { NormalizedOptions } from '../schema';
|
|
3
|
-
export declare function generateWebpackConfig(tree: Tree, options: NormalizedOptions, appRoot: string, remotesWithPorts: {
|
|
4
|
-
remoteName: string;
|
|
5
|
-
port: number;
|
|
6
|
-
}[]): void;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateWebpackConfig = generateWebpackConfig;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const internal_1 = require("@nx/eslint/internal");
|
|
6
|
-
function generateWebpackConfig(tree, options, appRoot, remotesWithPorts) {
|
|
7
|
-
if (tree.exists(`${appRoot}/module-federation.config.js`) ||
|
|
8
|
-
tree.exists(`${appRoot}/webpack.config.js`) ||
|
|
9
|
-
tree.exists(`${appRoot}/webpack.prod.config.js`) ||
|
|
10
|
-
tree.exists(`${appRoot}/module-federation.config.ts`) ||
|
|
11
|
-
tree.exists(`${appRoot}/webpack.config.ts`) ||
|
|
12
|
-
tree.exists(`${appRoot}/webpack.prod.config.ts`)) {
|
|
13
|
-
devkit_1.logger.warn(`NOTE: We encountered an existing webpack config for the app ${options.appName}. We have overwritten this file with the Module Federation Config.\n
|
|
14
|
-
If this was not the outcome you expected, you can discard the changes we have made, create a backup of your current webpack config, and run the command again.`);
|
|
15
|
-
}
|
|
16
|
-
const pathToWebpackTemplateFiles = options.typescriptConfiguration
|
|
17
|
-
? 'ts-webpack'
|
|
18
|
-
: 'webpack';
|
|
19
|
-
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, `../files/${pathToWebpackTemplateFiles}`), appRoot, {
|
|
20
|
-
tmpl: '',
|
|
21
|
-
type: options.mfType,
|
|
22
|
-
federationType: options.federationType,
|
|
23
|
-
name: options.appName,
|
|
24
|
-
remotes: remotesWithPorts ?? [],
|
|
25
|
-
projectRoot: appRoot,
|
|
26
|
-
standalone: options.standalone,
|
|
27
|
-
entryModuleFileName: options.entryModuleFileName,
|
|
28
|
-
});
|
|
29
|
-
if (!(0, internal_1.isTypedLintingEnabled)(options)) {
|
|
30
|
-
tree.delete((0, devkit_1.joinPathFragments)(appRoot, 'tsconfig.lint.json'));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRemotesWithPorts = getRemotesWithPorts;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
function getRemotesWithPorts(host, options) {
|
|
6
|
-
// If type is host and remotes supplied, check remotes exist
|
|
7
|
-
const remotesWithPort = [];
|
|
8
|
-
if (options.mfType === 'host' &&
|
|
9
|
-
Array.isArray(options.remotes) &&
|
|
10
|
-
options.remotes.length > 0) {
|
|
11
|
-
for (const remote of options.remotes) {
|
|
12
|
-
const remoteConfig = (0, devkit_1.readProjectConfiguration)(host, remote);
|
|
13
|
-
remotesWithPort.push({
|
|
14
|
-
remoteName: remote,
|
|
15
|
-
port: remoteConfig.targets['serve']?.options?.port ?? 4200,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return remotesWithPort;
|
|
20
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export * from './add-cypress-workaround';
|
|
2
|
-
export * from './add-remote-entry';
|
|
3
|
-
export * from './add-remote-to-host';
|
|
4
|
-
export * from './change-build-target';
|
|
5
|
-
export * from './fix-bootstrap';
|
|
6
|
-
export * from './generate-config';
|
|
7
|
-
export * from './get-remotes-with-ports';
|
|
8
|
-
export * from './move-angular-plugin-to-dependencies';
|
|
9
|
-
export * from './normalize-options';
|
|
10
|
-
export * from './update-tsconfig';
|
|
11
|
-
export * from './setup-host-if-dynamic';
|
|
12
|
-
export * from './setup-serve-target';
|
|
13
|
-
export * from './update-host-app-routes';
|
|
14
|
-
export * from './remove-dead-code-from-remote';
|
|
15
|
-
export * from './setup-tspath-for-remote';
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./add-cypress-workaround"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./add-remote-entry"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./add-remote-to-host"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./change-build-target"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./fix-bootstrap"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./generate-config"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./get-remotes-with-ports"), exports);
|
|
11
|
-
tslib_1.__exportStar(require("./move-angular-plugin-to-dependencies"), exports);
|
|
12
|
-
tslib_1.__exportStar(require("./normalize-options"), exports);
|
|
13
|
-
tslib_1.__exportStar(require("./update-tsconfig"), exports);
|
|
14
|
-
tslib_1.__exportStar(require("./setup-host-if-dynamic"), exports);
|
|
15
|
-
tslib_1.__exportStar(require("./setup-serve-target"), exports);
|
|
16
|
-
tslib_1.__exportStar(require("./update-host-app-routes"), exports);
|
|
17
|
-
tslib_1.__exportStar(require("./remove-dead-code-from-remote"), exports);
|
|
18
|
-
tslib_1.__exportStar(require("./setup-tspath-for-remote"), exports);
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.moveAngularPluginToDependencies = moveAngularPluginToDependencies;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
function moveAngularPluginToDependencies(tree) {
|
|
6
|
-
const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
|
|
7
|
-
if (packageJson.dependencies?.['@nx/angular']) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
packageJson.dependencies ??= {};
|
|
11
|
-
packageJson.dependencies['@nx/angular'] =
|
|
12
|
-
packageJson.devDependencies['@nx/angular'];
|
|
13
|
-
delete packageJson.devDependencies['@nx/angular'];
|
|
14
|
-
(0, devkit_1.writeJson)(tree, 'package.json', packageJson);
|
|
15
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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
|
-
const project_1 = require("../../utils/project");
|
|
8
|
-
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
|
-
return {
|
|
15
|
-
...options,
|
|
16
|
-
typescriptConfiguration: options.typescriptConfiguration ?? true,
|
|
17
|
-
federationType: options.federationType ?? 'static',
|
|
18
|
-
prefix: options.prefix ?? (0, project_1.getProjectPrefix)(tree, options.appName) ?? 'app',
|
|
19
|
-
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
|
-
};
|
|
26
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeDeadCodeFromRemote = removeDeadCodeFromRemote;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const internal_1 = require("@nx/js/internal");
|
|
6
|
-
function removeDeadCodeFromRemote(tree, options) {
|
|
7
|
-
const projectName = options.appName;
|
|
8
|
-
const project = (0, devkit_1.readProjectConfiguration)(tree, projectName);
|
|
9
|
-
const sourceRoot = (0, internal_1.getProjectSourceRoot)(project, tree);
|
|
10
|
-
const { appComponentInfo, nxWelcomeComponentInfo, entryModuleFileName } = options;
|
|
11
|
-
['css', 'less', 'scss', 'sass'].forEach((style) => {
|
|
12
|
-
const pathToComponentStyle = (0, devkit_1.joinPathFragments)(sourceRoot, `app/${appComponentInfo.extensionlessFileName}.${style}`);
|
|
13
|
-
if (tree.exists(pathToComponentStyle)) {
|
|
14
|
-
tree.delete(pathToComponentStyle);
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
tree.rename(nxWelcomeComponentInfo.path, (0, devkit_1.joinPathFragments)(sourceRoot, `app/remote-entry/${nxWelcomeComponentInfo.fileName}`));
|
|
18
|
-
tree.delete((0, devkit_1.joinPathFragments)(sourceRoot, `app/${appComponentInfo.extensionlessFileName}.spec.ts`));
|
|
19
|
-
tree.delete((0, devkit_1.joinPathFragments)(sourceRoot, `app/${appComponentInfo.extensionlessFileName}.html`));
|
|
20
|
-
if (!options.standalone) {
|
|
21
|
-
const componentContents = tree.read(appComponentInfo.path, 'utf-8');
|
|
22
|
-
const isInlineTemplate = !componentContents.includes('templateUrl');
|
|
23
|
-
const component = componentContents.split(isInlineTemplate ? 'template' : 'templateUrl')[0] +
|
|
24
|
-
`template: '<router-outlet></router-outlet>'
|
|
25
|
-
|
|
26
|
-
})
|
|
27
|
-
export class ${appComponentInfo.symbolName} {}`;
|
|
28
|
-
tree.write(appComponentInfo.path, component);
|
|
29
|
-
let modulePath = (0, devkit_1.joinPathFragments)(sourceRoot, 'app/app.module.ts');
|
|
30
|
-
if (!tree.exists(modulePath)) {
|
|
31
|
-
modulePath = (0, devkit_1.joinPathFragments)(sourceRoot, 'app/app-module.ts');
|
|
32
|
-
}
|
|
33
|
-
tree.write(modulePath, `import { NgModule } from '@angular/core';
|
|
34
|
-
import { BrowserModule } from '@angular/platform-browser';
|
|
35
|
-
import { RouterModule } from '@angular/router';
|
|
36
|
-
import { ${appComponentInfo.symbolName} } from './${appComponentInfo.extensionlessFileName}';
|
|
37
|
-
|
|
38
|
-
@NgModule({
|
|
39
|
-
declarations: [${appComponentInfo.symbolName}],
|
|
40
|
-
imports: [
|
|
41
|
-
BrowserModule,
|
|
42
|
-
RouterModule.forRoot([{
|
|
43
|
-
path: '',
|
|
44
|
-
loadChildren: () => import('./remote-entry/${entryModuleFileName}').then(m => m.RemoteEntryModule)
|
|
45
|
-
}], { initialNavigation: 'enabledBlocking' }),
|
|
46
|
-
],
|
|
47
|
-
providers: [],
|
|
48
|
-
bootstrap: [${appComponentInfo.symbolName}],
|
|
49
|
-
})
|
|
50
|
-
export class AppModule {}`);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
tree.delete(appComponentInfo.path);
|
|
54
|
-
const pathToIndexHtml = project.targets.build.options.index;
|
|
55
|
-
const indexContents = tree.read(pathToIndexHtml, 'utf-8');
|
|
56
|
-
const rootSelectorRegex = new RegExp(`${options.prefix || 'app'}-root`, 'ig');
|
|
57
|
-
const remoteEntrySelector = `${options.prefix || 'app'}-${projectName}-entry`;
|
|
58
|
-
const newIndexContents = indexContents.replace(rootSelectorRegex, remoteEntrySelector);
|
|
59
|
-
tree.write(pathToIndexHtml, newIndexContents);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setupHostIfDynamic = setupHostIfDynamic;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
function setupHostIfDynamic(tree, options) {
|
|
6
|
-
if (options.federationType === 'static') {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
const project = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
|
|
10
|
-
const pathToMFManifest = (0, devkit_1.joinPathFragments)(project.root, 'public/module-federation.manifest.json');
|
|
11
|
-
if (!tree.exists(pathToMFManifest)) {
|
|
12
|
-
tree.write(pathToMFManifest, '{}');
|
|
13
|
-
}
|
|
14
|
-
const pathToProdWebpackConfig = (0, devkit_1.joinPathFragments)(project.root, `webpack.prod.config.${options.typescriptConfiguration ? 'ts' : 'js'}`);
|
|
15
|
-
if (tree.exists(pathToProdWebpackConfig)) {
|
|
16
|
-
tree.delete(pathToProdWebpackConfig);
|
|
17
|
-
}
|
|
18
|
-
delete project.targets.build.configurations.production?.customWebpackConfig;
|
|
19
|
-
(0, devkit_1.updateProjectConfiguration)(tree, options.appName, project);
|
|
20
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setupServeTarget = setupServeTarget;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
function setupServeTarget(host, options) {
|
|
6
|
-
const appConfig = (0, devkit_1.readProjectConfiguration)(host, options.appName);
|
|
7
|
-
appConfig.targets['serve'] = {
|
|
8
|
-
...appConfig.targets['serve'],
|
|
9
|
-
executor: options.mfType === 'host'
|
|
10
|
-
? '@nx/angular:module-federation-dev-server'
|
|
11
|
-
: '@nx/angular:dev-server',
|
|
12
|
-
options: {
|
|
13
|
-
...appConfig.targets['serve'].options,
|
|
14
|
-
port: options.port ?? undefined,
|
|
15
|
-
publicHost: `http://localhost:${options.port ?? 4200}`,
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
if (options.mfType === 'remote') {
|
|
19
|
-
appConfig.targets['serve-static'] = {
|
|
20
|
-
continuous: true,
|
|
21
|
-
executor: '@nx/web:file-server',
|
|
22
|
-
defaultConfiguration: 'production',
|
|
23
|
-
options: {
|
|
24
|
-
buildTarget: `${options.appName}:build`,
|
|
25
|
-
port: options.port,
|
|
26
|
-
watch: false,
|
|
27
|
-
},
|
|
28
|
-
configurations: {
|
|
29
|
-
development: {
|
|
30
|
-
buildTarget: `${options.appName}:build:development`,
|
|
31
|
-
},
|
|
32
|
-
production: {
|
|
33
|
-
buildTarget: `${options.appName}:build:production`,
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
(0, devkit_1.updateProjectConfiguration)(host, options.appName, appConfig);
|
|
39
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setupTspathForRemote = setupTspathForRemote;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const js_1 = require("@nx/js");
|
|
6
|
-
const versions_1 = require("../../../utils/versions");
|
|
7
|
-
function setupTspathForRemote(tree, options) {
|
|
8
|
-
const { normalizeProjectName } = (0, devkit_1.ensurePackage)('@nx/module-federation', versions_1.nxVersion);
|
|
9
|
-
const project = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
|
|
10
|
-
const exportPath = options.standalone
|
|
11
|
-
? `./src/app/remote-entry/entry.routes.ts`
|
|
12
|
-
: `./src/app/remote-entry/${options.entryModuleFileName}.ts`;
|
|
13
|
-
const exportName = options.standalone ? 'Routes' : 'Module';
|
|
14
|
-
(0, js_1.addTsConfigPath)(tree, `${normalizeProjectName(options.appName)}/${exportName}`, [(0, devkit_1.joinPathFragments)(project.root, exportPath)]);
|
|
15
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateHostAppRoutes = updateHostAppRoutes;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
|
|
6
|
-
const zoneless_1 = require("../../../utils/zoneless");
|
|
7
|
-
function updateHostAppRoutes(tree, options) {
|
|
8
|
-
const project = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
|
|
9
|
-
const { appComponentInfo, nxWelcomeComponentInfo } = options;
|
|
10
|
-
const zoneless = (0, zoneless_1.isZonelessApp)(project);
|
|
11
|
-
tree.write((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app', `${appComponentInfo.extensionlessFileName}.html`), `<ul class="remote-menu">
|
|
12
|
-
<li><a routerLink="/">Home</a></li>
|
|
13
|
-
</ul>
|
|
14
|
-
<router-outlet></router-outlet>
|
|
15
|
-
`);
|
|
16
|
-
let pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.routes.ts');
|
|
17
|
-
if (!tree.exists(pathToHostRootRoutingFile)) {
|
|
18
|
-
pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app-routing.module.ts');
|
|
19
|
-
}
|
|
20
|
-
if (!tree.exists(pathToHostRootRoutingFile)) {
|
|
21
|
-
pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app-routing-module.ts');
|
|
22
|
-
}
|
|
23
|
-
(0, route_utils_1.addRoute)(tree, pathToHostRootRoutingFile, `{
|
|
24
|
-
path: '',
|
|
25
|
-
component: ${nxWelcomeComponentInfo.symbolName}
|
|
26
|
-
}`);
|
|
27
|
-
tree.write(pathToHostRootRoutingFile, `import { ${nxWelcomeComponentInfo.symbolName} } from './${nxWelcomeComponentInfo.extensionlessFileName}';
|
|
28
|
-
${tree.read(pathToHostRootRoutingFile, 'utf-8')}`);
|
|
29
|
-
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/host-files'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app'), {
|
|
30
|
-
appName: options.appName,
|
|
31
|
-
standalone: options.standalone,
|
|
32
|
-
appFileName: appComponentInfo.extensionlessFileName,
|
|
33
|
-
appSymbolName: appComponentInfo.symbolName,
|
|
34
|
-
nxWelcomeFileName: nxWelcomeComponentInfo.extensionlessFileName,
|
|
35
|
-
nxWelcomeSymbolName: nxWelcomeComponentInfo.symbolName,
|
|
36
|
-
zoneless,
|
|
37
|
-
tmpl: '',
|
|
38
|
-
});
|
|
39
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateTsConfig = updateTsConfig;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
function updateTsConfig(tree, options) {
|
|
6
|
-
const { root } = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
|
|
7
|
-
(0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(root, `tsconfig.app.json`), (json) => {
|
|
8
|
-
json.compilerOptions ??= {};
|
|
9
|
-
json.compilerOptions.target = 'ES2020';
|
|
10
|
-
if (options.mfType === 'remote') {
|
|
11
|
-
json.files ??= [];
|
|
12
|
-
json.files.push(options.standalone
|
|
13
|
-
? 'src/app/remote-entry/entry.routes.ts'
|
|
14
|
-
: `src/app/remote-entry/${options.entryModuleFileName}.ts`);
|
|
15
|
-
}
|
|
16
|
-
return json;
|
|
17
|
-
});
|
|
18
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { ComponentMetadata } from '../utils/app-components-info';
|
|
2
|
-
|
|
3
|
-
type FederationType = 'static' | 'dynamic';
|
|
4
|
-
|
|
5
|
-
export interface Schema {
|
|
6
|
-
appName: string;
|
|
7
|
-
mfType: 'host' | 'remote';
|
|
8
|
-
port?: number;
|
|
9
|
-
remotes?: string[];
|
|
10
|
-
host?: string;
|
|
11
|
-
federationType?: FederationType;
|
|
12
|
-
routing?: boolean;
|
|
13
|
-
skipFormat?: boolean;
|
|
14
|
-
skipPackageJson?: boolean;
|
|
15
|
-
e2eProjectName?: string;
|
|
16
|
-
prefix?: string;
|
|
17
|
-
standalone?: boolean;
|
|
18
|
-
skipE2E?: boolean;
|
|
19
|
-
typescriptConfiguration?: boolean;
|
|
20
|
-
enableTypedLinting?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* @deprecated Use `enableTypedLinting` instead. This option will be removed in Nx v24.
|
|
23
|
-
*/
|
|
24
|
-
setParserOptionsProject?: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface NormalizedOptions extends Schema {
|
|
28
|
-
federationType: FederationType;
|
|
29
|
-
prefix: string | undefined;
|
|
30
|
-
componentType: string;
|
|
31
|
-
componentFileSuffix: string;
|
|
32
|
-
entryModuleFileName: string;
|
|
33
|
-
appComponentInfo: ComponentMetadata;
|
|
34
|
-
nxWelcomeComponentInfo: ComponentMetadata;
|
|
35
|
-
}
|