@nx/react 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/index.d.ts +0 -2
- package/dist/index.js +1 -5
- package/dist/internal.d.ts +1 -0
- package/dist/internal.js +3 -1
- package/dist/module-federation.d.ts +6 -5
- package/dist/module-federation.js +29 -18
- package/dist/plugins/component-testing/index.js +92 -33
- package/dist/plugins/storybook/index.js +18 -18
- package/dist/plugins/with-react.d.ts +3 -7
- package/dist/plugins/with-react.js +5 -19
- package/dist/ready-check.d.ts +1 -0
- package/dist/ready-check.js +5 -0
- package/dist/src/generators/_utils/mf-dependencies.js +3 -0
- package/dist/src/generators/application/application.js +1 -36
- package/dist/src/generators/application/files/base-rspack/rspack.config.js__tmpl__ +1 -24
- package/dist/src/generators/application/files/base-webpack/webpack.config.js__tmpl__ +1 -26
- package/dist/src/generators/application/lib/add-e2e.js +11 -11
- package/dist/src/generators/application/lib/add-linting.js +1 -2
- package/dist/src/generators/application/lib/add-project.js +0 -167
- package/dist/src/generators/application/lib/bundlers/add-rsbuild.js +0 -1
- package/dist/src/generators/application/lib/bundlers/add-vite.js +0 -2
- package/dist/src/generators/application/lib/bundlers/add-webpack.js +0 -1
- package/dist/src/generators/application/lib/create-application-files.d.ts +0 -2
- package/dist/src/generators/application/lib/create-application-files.js +2 -11
- package/dist/src/generators/application/lib/normalize-options.js +0 -4
- package/dist/src/generators/application/schema.d.ts +0 -6
- package/dist/src/generators/application/schema.json +0 -6
- package/dist/src/generators/consumer/consumer.js +2 -0
- package/dist/src/generators/consumer/files/rsbuild/package.json__tmpl__ +1 -0
- package/dist/src/generators/consumer/files/rsbuild/rsbuild.config.ts__tmpl__ +2 -0
- package/dist/src/generators/consumer/files/rspack/package.json__tmpl__ +1 -0
- package/dist/src/generators/consumer/files/rspack/rspack.config.ts__tmpl__ +2 -0
- package/dist/src/generators/consumer/files/vite/package.json__tmpl__ +1 -0
- package/dist/src/generators/consumer/files/vite/vite.config.mts__tmpl__ +2 -0
- package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.js +4 -16
- package/dist/src/generators/cypress-component-configuration/lib/add-files.d.ts +1 -2
- package/dist/src/generators/cypress-component-configuration/lib/add-files.js +4 -2
- package/dist/src/generators/cypress-component-configuration/schema.d.ts +0 -1
- package/dist/src/generators/init/init.js +3 -5
- package/dist/src/generators/init/schema.d.ts +0 -1
- package/dist/src/generators/library/lib/add-linting.js +1 -2
- package/dist/src/generators/library/lib/add-rollup-build-target.js +3 -47
- package/dist/src/generators/library/lib/normalize-options.js +0 -4
- package/dist/src/generators/library/library.js +1 -4
- package/dist/src/generators/library/schema.d.ts +0 -5
- package/dist/src/generators/library/schema.json +0 -6
- package/dist/src/generators/provider/files/rsbuild/package.json__tmpl__ +1 -0
- package/dist/src/generators/provider/files/rsbuild/rsbuild.config.ts__tmpl__ +2 -0
- package/dist/src/generators/provider/files/rspack/package.json__tmpl__ +1 -0
- package/dist/src/generators/provider/files/rspack/rspack.config.ts__tmpl__ +2 -0
- package/dist/src/generators/provider/files/vite/package.json__tmpl__ +1 -0
- package/dist/src/generators/provider/files/vite/vite.config.mts__tmpl__ +2 -0
- package/dist/src/generators/provider/provider.js +2 -0
- package/dist/src/generators/stories/stories.js +0 -5
- package/dist/src/generators/storybook-configuration/configuration.js +1 -9
- package/dist/src/generators/storybook-configuration/schema.d.ts +0 -1
- package/dist/src/migrations/update-23-2-0/add-optional-module-federation-packages.js +2 -1
- package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.d.ts +4 -0
- package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.js +13 -0
- package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.md +40 -0
- package/dist/src/plugins/router-plugin-utils.d.ts +4 -0
- package/dist/src/plugins/router-plugin-utils.js +15 -0
- package/dist/src/plugins/router-plugin.d.ts +0 -1
- package/dist/src/plugins/router-plugin.js +35 -44
- package/dist/src/utils/ast-utils.d.ts +0 -1
- package/dist/src/utils/ast-utils.js +0 -23
- package/dist/src/utils/ct-utils.d.ts +0 -7
- package/dist/src/utils/ct-utils.js +71 -55
- package/dist/src/utils/deprecation.d.ts +1 -1
- package/dist/src/utils/deprecation.js +3 -5
- package/dist/src/utils/framework.js +1 -3
- package/dist/src/utils/react-router-serve-ready-check.d.ts +11 -0
- package/dist/src/utils/react-router-serve-ready-check.js +25 -0
- package/dist/src/utils/versions.d.ts +0 -7
- package/dist/src/utils/versions.js +2 -9
- package/executors.json +1 -17
- package/generators.json +0 -27
- package/migrations.json +6 -0
- package/package.json +25 -39
- package/dist/mf/dynamic-federation.d.ts +0 -69
- package/dist/mf/dynamic-federation.js +0 -141
- package/dist/mf/index.d.ts +0 -1
- package/dist/mf/index.js +0 -8
- 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 -4
- package/dist/src/executors/module-federation-dev-server/lib/normalize-options.js +0 -19
- package/dist/src/executors/module-federation-dev-server/lib/start-remotes.d.ts +0 -5
- package/dist/src/executors/module-federation-dev-server/lib/start-remotes.js +0 -33
- package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -6
- package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +0 -80
- package/dist/src/executors/module-federation-dev-server/schema.d.ts +0 -19
- package/dist/src/executors/module-federation-dev-server/schema.json +0 -142
- package/dist/src/executors/module-federation-ssr-dev-server/lib/index.d.ts +0 -2
- package/dist/src/executors/module-federation-ssr-dev-server/lib/index.js +0 -5
- package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +0 -4
- package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +0 -23
- package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.d.ts +0 -5
- package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.js +0 -34
- package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +0 -3
- package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +0 -83
- package/dist/src/executors/module-federation-ssr-dev-server/schema.d.ts +0 -29
- package/dist/src/executors/module-federation-ssr-dev-server/schema.json +0 -81
- package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts +0 -12
- package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.js +0 -244
- package/dist/src/executors/module-federation-static-server/schema.d.ts +0 -3
- package/dist/src/executors/module-federation-static-server/schema.json +0 -16
- package/dist/src/generators/federate-module/federate-module.d.ts +0 -4
- package/dist/src/generators/federate-module/federate-module.js +0 -67
- package/dist/src/generators/federate-module/lib/utils.d.ts +0 -23
- package/dist/src/generators/federate-module/lib/utils.js +0 -99
- package/dist/src/generators/federate-module/schema.d.ts +0 -15
- package/dist/src/generators/federate-module/schema.json +0 -89
- package/dist/src/generators/host/files/common/src/app/__fileName__.js__tmpl__ +0 -40
- package/dist/src/generators/host/files/common/src/main.js__tmpl__ +0 -13
- package/dist/src/generators/host/files/common/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/host/files/common-ts/src/app/__fileName__.tsx__tmpl__ +0 -41
- package/dist/src/generators/host/files/common-ts/src/main.ts__tmpl__ +0 -13
- package/dist/src/generators/host/files/rspack-common/src/app/__fileName__.jsx__tmpl__ +0 -42
- package/dist/src/generators/host/files/rspack-common/src/main.jsx__tmpl__ +0 -13
- package/dist/src/generators/host/files/rspack-common/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/host/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -24
- package/dist/src/generators/host/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -42
- package/dist/src/generators/host/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -66
- package/dist/src/generators/host/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -27
- package/dist/src/generators/host/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -68
- package/dist/src/generators/host/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -49
- package/dist/src/generators/host/files/rspack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -22
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -68
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -49
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/host/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -67
- package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -42
- package/dist/src/generators/host/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -24
- package/dist/src/generators/host/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -39
- package/dist/src/generators/host/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -19
- package/dist/src/generators/host/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/webpack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -16
- package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -40
- package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -18
- package/dist/src/generators/host/host.d.ts +0 -4
- package/dist/src/generators/host/host.js +0 -174
- package/dist/src/generators/host/lib/add-module-federation-files.d.ts +0 -6
- package/dist/src/generators/host/lib/add-module-federation-files.js +0 -92
- package/dist/src/generators/host/lib/normalize-host-name.d.ts +0 -2
- package/dist/src/generators/host/lib/normalize-host-name.js +0 -12
- package/dist/src/generators/host/lib/setup-ssr-for-host.d.ts +0 -6
- package/dist/src/generators/host/lib/setup-ssr-for-host.js +0 -59
- package/dist/src/generators/host/lib/update-module-federation-e2e-project.d.ts +0 -3
- package/dist/src/generators/host/lib/update-module-federation-e2e-project.js +0 -19
- package/dist/src/generators/host/lib/update-module-federation-tsconfig.d.ts +0 -3
- package/dist/src/generators/host/lib/update-module-federation-tsconfig.js +0 -34
- package/dist/src/generators/host/schema.d.ts +0 -44
- package/dist/src/generators/host/schema.json +0 -173
- package/dist/src/generators/remote/files/common/src/main.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/common/src/remote-entry.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/common-ts/src/main.ts__tmpl__ +0 -1
- package/dist/src/generators/remote/files/common-ts/src/remote-entry.ts__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-common/src/main.jsx__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-common/src/remote-entry.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -12
- package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -15
- package/dist/src/generators/remote/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -71
- package/dist/src/generators/remote/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -19
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -71
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/remote/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
- package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/remote/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -12
- package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
- package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -9
- package/dist/src/generators/remote/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
- package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -13
- package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
- package/dist/src/generators/remote/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
- package/dist/src/generators/remote/files/webpack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -1
- package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -17
- package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.d.ts +0 -2
- package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.js +0 -12
- package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.d.ts +0 -3
- package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.js +0 -30
- package/dist/src/generators/remote/lib/setup-ssr-for-remote.d.ts +0 -4
- package/dist/src/generators/remote/lib/setup-ssr-for-remote.js +0 -61
- package/dist/src/generators/remote/lib/setup-tspath-for-remote.d.ts +0 -3
- package/dist/src/generators/remote/lib/setup-tspath-for-remote.js +0 -14
- package/dist/src/generators/remote/lib/update-host-with-remote.d.ts +0 -2
- package/dist/src/generators/remote/lib/update-host-with-remote.js +0 -79
- package/dist/src/generators/remote/remote.d.ts +0 -6
- package/dist/src/generators/remote/remote.js +0 -201
- package/dist/src/generators/remote/schema.d.ts +0 -39
- package/dist/src/generators/remote/schema.json +0 -173
- package/dist/src/generators/setup-ssr/files/server.ts__tmpl__ +0 -28
- package/dist/src/generators/setup-ssr/files/src/main.server.tsx__tmpl__ +0 -47
- package/dist/src/generators/setup-ssr/files/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/setup-ssr/schema.d.ts +0 -8
- package/dist/src/generators/setup-ssr/schema.json +0 -54
- package/dist/src/generators/setup-ssr/setup-ssr.d.ts +0 -4
- package/dist/src/generators/setup-ssr/setup-ssr.js +0 -198
- package/dist/src/module-federation/ast-utils.d.ts +0 -8
- package/dist/src/module-federation/ast-utils.js +0 -101
- package/dist/src/rules/update-module-federation-project.d.ts +0 -11
- package/dist/src/rules/update-module-federation-project.js +0 -72
- package/dist/src/utils/add-mf-env-to-inputs.d.ts +0 -2
- package/dist/src/utils/add-mf-env-to-inputs.js +0 -29
- package/dist/src/utils/module-federation-deprecation.d.ts +0 -12
- package/dist/src/utils/module-federation-deprecation.js +0 -46
- package/dist/src/utils/normalize-remote.d.ts +0 -8
- package/dist/src/utils/normalize-remote.js +0 -31
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setRemoteUrlResolver = setRemoteUrlResolver;
|
|
4
|
-
exports.setRemoteDefinitions = setRemoteDefinitions;
|
|
5
|
-
exports.setRemoteDefinition = setRemoteDefinition;
|
|
6
|
-
exports.loadRemoteModule = loadRemoteModule;
|
|
7
|
-
const url_helpers_1 = require("@nx/module-federation/url-helpers");
|
|
8
|
-
let remoteUrlDefinitions;
|
|
9
|
-
let resolveRemoteUrl;
|
|
10
|
-
const remoteModuleMap = new Map();
|
|
11
|
-
const remoteContainerMap = new Map();
|
|
12
|
-
let initialSharingScopeCreated = false;
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated Use Runtime Helpers from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
|
|
15
|
-
*/
|
|
16
|
-
function setRemoteUrlResolver(_resolveRemoteUrl) {
|
|
17
|
-
resolveRemoteUrl = _resolveRemoteUrl;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* @deprecated Use init() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
|
|
21
|
-
* If you have a remote app called `my-remote-app` and you want to use the `http://localhost:4201/mf-manifest.json` as the remote url, you should change it from:
|
|
22
|
-
* ```ts
|
|
23
|
-
* import { setRemoteDefinitions } from '@nx/react/mf';
|
|
24
|
-
*
|
|
25
|
-
* setRemoteDefinitions({
|
|
26
|
-
* 'my-remote-app': 'http://localhost:4201/mf-manifest.json'
|
|
27
|
-
* });
|
|
28
|
-
* ```
|
|
29
|
-
* to use init():
|
|
30
|
-
* ```ts
|
|
31
|
-
* import { init } from '@module-federation/enhanced/runtime';
|
|
32
|
-
*
|
|
33
|
-
* init({
|
|
34
|
-
* name: 'host',
|
|
35
|
-
* remotes: [{
|
|
36
|
-
* name: 'my-remote-app',
|
|
37
|
-
* entry: 'http://localhost:4201/mf-manifest.json'
|
|
38
|
-
* }]
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
function setRemoteDefinitions(definitions) {
|
|
43
|
-
remoteUrlDefinitions = definitions;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* @deprecated Use registerRemotes() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
|
|
47
|
-
* If you set a remote app with `setRemoteDefinition` such as:
|
|
48
|
-
* ```ts
|
|
49
|
-
* import { setRemoteDefinition } from '@nx/react/mf';
|
|
50
|
-
*
|
|
51
|
-
* setRemoteDefinition(
|
|
52
|
-
* 'my-remote-app',
|
|
53
|
-
* 'http://localhost:4201/mf-manifest.json'
|
|
54
|
-
* );
|
|
55
|
-
* ```
|
|
56
|
-
* change it to use registerRemotes():
|
|
57
|
-
* ```ts
|
|
58
|
-
* import { registerRemotes } from '@module-federation/enhanced/runtime';
|
|
59
|
-
*
|
|
60
|
-
* registerRemotes([
|
|
61
|
-
* {
|
|
62
|
-
* name: 'my-remote-app',
|
|
63
|
-
* entry: 'http://localhost:4201/mf-manifest.json'
|
|
64
|
-
* }
|
|
65
|
-
* ]);
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
function setRemoteDefinition(remoteName, remoteUrl) {
|
|
69
|
-
remoteUrlDefinitions ??= {};
|
|
70
|
-
remoteUrlDefinitions[remoteName] = remoteUrl;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* @deprecated Use loadRemote() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
|
|
74
|
-
* If you set a load a remote with `loadRemoteModule` such as:
|
|
75
|
-
* ```ts
|
|
76
|
-
* import { loadRemoteModule } from '@nx/react/mf';
|
|
77
|
-
*
|
|
78
|
-
* loadRemoteModule('my-remote-app', './Module').then(m => m.RemoteEntryModule);
|
|
79
|
-
* ```
|
|
80
|
-
* change it to use loadRemote():
|
|
81
|
-
* ```ts
|
|
82
|
-
* import { loadRemote } from '@module-federation/enhanced/runtime';
|
|
83
|
-
*
|
|
84
|
-
* loadRemote<typeof import('my-remote-app/Module')>('my-remote-app/Module').then(m => m.RemoteEntryModule);
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
87
|
-
async function loadRemoteModule(remoteName, moduleName) {
|
|
88
|
-
const remoteModuleKey = `${remoteName}:${moduleName}`;
|
|
89
|
-
if (remoteModuleMap.has(remoteModuleKey)) {
|
|
90
|
-
return remoteModuleMap.get(remoteModuleKey);
|
|
91
|
-
}
|
|
92
|
-
const container = remoteContainerMap.has(remoteName)
|
|
93
|
-
? remoteContainerMap.get(remoteName)
|
|
94
|
-
: await loadRemoteContainer(remoteName);
|
|
95
|
-
const factory = await container.get(moduleName);
|
|
96
|
-
const Module = factory();
|
|
97
|
-
remoteModuleMap.set(remoteModuleKey, Module);
|
|
98
|
-
return Module;
|
|
99
|
-
}
|
|
100
|
-
const fetchRemoteModule = (url, remoteName) => {
|
|
101
|
-
return new Promise((resolve, reject) => {
|
|
102
|
-
const script = document.createElement('script');
|
|
103
|
-
script.src = url;
|
|
104
|
-
script.type = 'text/javascript';
|
|
105
|
-
script.async = true;
|
|
106
|
-
script.onload = () => {
|
|
107
|
-
const proxy = {
|
|
108
|
-
get: (request) => window[remoteName].get(request),
|
|
109
|
-
init: (arg) => {
|
|
110
|
-
try {
|
|
111
|
-
window[remoteName].init(arg);
|
|
112
|
-
}
|
|
113
|
-
catch (e) {
|
|
114
|
-
console.error(`Failed to initialize remote ${remoteName}`, e);
|
|
115
|
-
reject(e);
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
resolve(proxy);
|
|
120
|
-
};
|
|
121
|
-
script.onerror = () => reject(new Error(`Remote ${remoteName} not found`));
|
|
122
|
-
document.head.appendChild(script);
|
|
123
|
-
});
|
|
124
|
-
};
|
|
125
|
-
async function loadRemoteContainer(remoteName) {
|
|
126
|
-
if (!resolveRemoteUrl && !remoteUrlDefinitions) {
|
|
127
|
-
throw new Error('Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.');
|
|
128
|
-
}
|
|
129
|
-
if (!initialSharingScopeCreated) {
|
|
130
|
-
initialSharingScopeCreated = true;
|
|
131
|
-
await __webpack_init_sharing__('default');
|
|
132
|
-
}
|
|
133
|
-
const remoteUrl = remoteUrlDefinitions
|
|
134
|
-
? remoteUrlDefinitions[remoteName]
|
|
135
|
-
: await resolveRemoteUrl(remoteName);
|
|
136
|
-
const containerUrl = (0, url_helpers_1.processRuntimeRemoteUrl)(remoteUrl, 'mjs');
|
|
137
|
-
const container = await fetchRemoteModule(containerUrl, remoteName);
|
|
138
|
-
await container.init(__webpack_share_scopes__.default);
|
|
139
|
-
remoteContainerMap.set(remoteName, container);
|
|
140
|
-
return container;
|
|
141
|
-
}
|
package/dist/mf/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { loadRemoteModule, setRemoteDefinition, setRemoteDefinitions, setRemoteUrlResolver, } from './dynamic-federation';
|
package/dist/mf/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setRemoteUrlResolver = exports.setRemoteDefinitions = exports.setRemoteDefinition = exports.loadRemoteModule = void 0;
|
|
4
|
-
var dynamic_federation_1 = require("./dynamic-federation");
|
|
5
|
-
Object.defineProperty(exports, "loadRemoteModule", { enumerable: true, get: function () { return dynamic_federation_1.loadRemoteModule; } });
|
|
6
|
-
Object.defineProperty(exports, "setRemoteDefinition", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteDefinition; } });
|
|
7
|
-
Object.defineProperty(exports, "setRemoteDefinitions", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteDefinitions; } });
|
|
8
|
-
Object.defineProperty(exports, "setRemoteUrlResolver", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteUrlResolver; } });
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
-
import { ModuleFederationDevServerOptions, NormalizedModuleFederationDevServerOptions } from '../schema';
|
|
3
|
-
export declare function getBuildOptions(buildTarget: string, context: ExecutorContext): any;
|
|
4
|
-
export declare function normalizeOptions(options: ModuleFederationDevServerOptions): NormalizedModuleFederationDevServerOptions;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBuildOptions = getBuildOptions;
|
|
4
|
-
exports.normalizeOptions = normalizeOptions;
|
|
5
|
-
const devkit_1 = require("@nx/devkit");
|
|
6
|
-
function getBuildOptions(buildTarget, context) {
|
|
7
|
-
const target = (0, devkit_1.parseTargetString)(buildTarget, context);
|
|
8
|
-
const buildOptions = (0, devkit_1.readTargetOptions)(target, context);
|
|
9
|
-
return {
|
|
10
|
-
...buildOptions,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
function normalizeOptions(options) {
|
|
14
|
-
return {
|
|
15
|
-
...options,
|
|
16
|
-
devRemotes: options.devRemotes ?? [],
|
|
17
|
-
verbose: options.verbose ?? false,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ExecutorContext, ProjectConfiguration } from '@nx/devkit';
|
|
2
|
-
import { NormalizedModuleFederationDevServerOptions } from '../schema';
|
|
3
|
-
export declare function startRemotes(remotes: string[], workspaceProjects: Record<string, ProjectConfiguration>, options: Pick<NormalizedModuleFederationDevServerOptions, 'devRemotes' | 'host' | 'ssl' | 'sslCert' | 'sslKey' | 'verbose'>, context: ExecutorContext, target?: 'serve' | 'serve-static'): Promise<AsyncIterable<{
|
|
4
|
-
success: boolean;
|
|
5
|
-
}>[]>;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.startRemotes = startRemotes;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
async function startRemotes(remotes, workspaceProjects, options, context, target = 'serve') {
|
|
6
|
-
const remoteIters = [];
|
|
7
|
-
for (const app of remotes) {
|
|
8
|
-
const remoteProjectServeTarget = workspaceProjects[app].targets[target];
|
|
9
|
-
const isUsingModuleFederationDevServerExecutor = remoteProjectServeTarget.executor.includes('module-federation-dev-server');
|
|
10
|
-
const configurationOverride = options.devRemotes?.find((r) => typeof r !== 'string' && r.remoteName === app)?.configuration;
|
|
11
|
-
const defaultOverrides = {
|
|
12
|
-
...(options.host ? { host: options.host } : {}),
|
|
13
|
-
...(options.ssl ? { ssl: options.ssl } : {}),
|
|
14
|
-
...(options.sslCert ? { sslCert: options.sslCert } : {}),
|
|
15
|
-
...(options.sslKey ? { sslKey: options.sslKey } : {}),
|
|
16
|
-
};
|
|
17
|
-
const overrides = target === 'serve'
|
|
18
|
-
? {
|
|
19
|
-
watch: true,
|
|
20
|
-
...(isUsingModuleFederationDevServerExecutor
|
|
21
|
-
? { isInitialHost: false }
|
|
22
|
-
: {}),
|
|
23
|
-
...defaultOverrides,
|
|
24
|
-
}
|
|
25
|
-
: { ...defaultOverrides };
|
|
26
|
-
remoteIters.push(await (0, devkit_1.runExecutor)({
|
|
27
|
-
project: app,
|
|
28
|
-
target,
|
|
29
|
-
configuration: configurationOverride ?? context.configurationName,
|
|
30
|
-
}, overrides, context));
|
|
31
|
-
}
|
|
32
|
-
return remoteIters;
|
|
33
|
-
}
|
package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
-
import { ModuleFederationDevServerOptions } from './schema';
|
|
3
|
-
export default function moduleFederationDevServer(schema: ModuleFederationDevServerOptions, context: ExecutorContext): AsyncIterableIterator<{
|
|
4
|
-
success: boolean;
|
|
5
|
-
baseUrl?: string;
|
|
6
|
-
}>;
|
package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = moduleFederationDevServer;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const internal_1 = require("@nx/devkit/internal");
|
|
6
|
-
const internal_2 = require("@nx/js/internal");
|
|
7
|
-
const internal_3 = require("@nx/web/internal");
|
|
8
|
-
const fs_1 = require("fs");
|
|
9
|
-
const path_1 = require("path");
|
|
10
|
-
const lib_1 = require("./lib");
|
|
11
|
-
const assert_package_1 = require("../../utils/assert-package");
|
|
12
|
-
const module_federation_deprecation_1 = require("../../utils/module-federation-deprecation");
|
|
13
|
-
const executorName = '@nx/react:module-federation-dev-server';
|
|
14
|
-
async function* moduleFederationDevServer(schema, context) {
|
|
15
|
-
(0, assert_package_1.assertPackageIsInstalled)('@nx/module-federation', executorName);
|
|
16
|
-
(0, assert_package_1.assertPackageIsInstalled)('@nx/webpack', executorName);
|
|
17
|
-
const { startRemoteIterators } = await import('@nx/module-federation/internal');
|
|
18
|
-
const { devServerExecutor } = await import('@nx/webpack');
|
|
19
|
-
(0, module_federation_deprecation_1.warnReactMfDevServerExecutorDeprecation)();
|
|
20
|
-
const options = (0, lib_1.normalizeOptions)(schema);
|
|
21
|
-
const currIter = options.static
|
|
22
|
-
? (0, internal_3.fileServerExecutor)({
|
|
23
|
-
...options,
|
|
24
|
-
parallel: false,
|
|
25
|
-
withDeps: false,
|
|
26
|
-
spa: false,
|
|
27
|
-
cors: true,
|
|
28
|
-
cacheSeconds: -1,
|
|
29
|
-
}, context)
|
|
30
|
-
: // TODO(JamesHenry): remove type assertion once the nx repo is updated to use https://github.com/nrwl/nx/pull/33095
|
|
31
|
-
devServerExecutor(options, context);
|
|
32
|
-
const p = context.projectsConfigurations.projects[context.projectName];
|
|
33
|
-
let pathToManifestFile = (0, path_1.join)(context.root, (0, internal_2.getProjectSourceRoot)(p), 'assets/module-federation.manifest.json');
|
|
34
|
-
if (options.pathToManifestFile) {
|
|
35
|
-
const userPathToManifestFile = (0, path_1.join)(context.root, options.pathToManifestFile);
|
|
36
|
-
if (!(0, fs_1.existsSync)(userPathToManifestFile)) {
|
|
37
|
-
throw new Error(`The provided Module Federation manifest file path does not exist. Please check the file exists at "${userPathToManifestFile}".`);
|
|
38
|
-
}
|
|
39
|
-
else if ((0, path_1.extname)(options.pathToManifestFile) !== '.json') {
|
|
40
|
-
throw new Error(`The Module Federation manifest file must be a JSON. Please ensure the file at ${userPathToManifestFile} is a JSON.`);
|
|
41
|
-
}
|
|
42
|
-
pathToManifestFile = userPathToManifestFile;
|
|
43
|
-
}
|
|
44
|
-
if (!options.isInitialHost) {
|
|
45
|
-
return yield* currIter;
|
|
46
|
-
}
|
|
47
|
-
const { staticRemotesIter, devRemoteIters, remotes } = await startRemoteIterators(options, context, lib_1.startRemotes, pathToManifestFile, 'react');
|
|
48
|
-
return yield* (0, internal_1.combineAsyncIterables)(currIter, ...devRemoteIters, ...(staticRemotesIter ? [staticRemotesIter] : []), (0, internal_1.createAsyncIterable)(async ({ next, done }) => {
|
|
49
|
-
if (!options.isInitialHost) {
|
|
50
|
-
done();
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (remotes.remotePorts.length === 0) {
|
|
54
|
-
done();
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
try {
|
|
58
|
-
const host = options.host ?? 'localhost';
|
|
59
|
-
const baseUrl = `http${options.ssl ? 's' : ''}://${host}:${options.port}`;
|
|
60
|
-
const portsToWaitFor = staticRemotesIter && options.staticRemotesPort
|
|
61
|
-
? [options.staticRemotesPort, ...remotes.remotePorts]
|
|
62
|
-
: [...remotes.remotePorts];
|
|
63
|
-
await Promise.all(portsToWaitFor.map((port) => (0, internal_3.waitForPortOpen)(port, {
|
|
64
|
-
retries: 480,
|
|
65
|
-
retryDelay: 2500,
|
|
66
|
-
host: host,
|
|
67
|
-
})));
|
|
68
|
-
devkit_1.logger.info(`NX All remotes started, server ready at ${baseUrl}`);
|
|
69
|
-
next({ success: true, baseUrl: baseUrl });
|
|
70
|
-
}
|
|
71
|
-
catch (err) {
|
|
72
|
-
throw new Error(`Failed to start remotes. Check above for any errors.`, {
|
|
73
|
-
cause: err,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
finally {
|
|
77
|
-
done();
|
|
78
|
-
}
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { WebDevServerOptions } from '@nx/webpack';
|
|
2
|
-
import { DevRemoteDefinition } from '@nx/module-federation/internal';
|
|
3
|
-
|
|
4
|
-
export type ModuleFederationDevServerOptions = WebDevServerOptions & {
|
|
5
|
-
devRemotes?: DevRemoteDefinition[];
|
|
6
|
-
skipRemotes?: string[];
|
|
7
|
-
static?: boolean;
|
|
8
|
-
isInitialHost?: boolean;
|
|
9
|
-
parallel?: number;
|
|
10
|
-
staticRemotesPort?: number;
|
|
11
|
-
pathToManifestFile?: string;
|
|
12
|
-
verbose?: boolean;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export type NormalizedModuleFederationDevServerOptions =
|
|
16
|
-
ModuleFederationDevServerOptions & {
|
|
17
|
-
devRemotes: DevRemoteDefinition[];
|
|
18
|
-
verbose: boolean;
|
|
19
|
-
};
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 2,
|
|
3
|
-
"continuous": true,
|
|
4
|
-
"outputCapture": "direct-nodejs",
|
|
5
|
-
"title": "Module Federation Dev Server",
|
|
6
|
-
"x-deprecated": "The `@nx/react:module-federation-dev-server` executor is deprecated. Dynamic federation in `@nx/react:consumer` removes the need for host-orchestrated remote serving. Removed in Nx v24.",
|
|
7
|
-
"description": "Serve a web application.",
|
|
8
|
-
"cli": "nx",
|
|
9
|
-
"type": "object",
|
|
10
|
-
"properties": {
|
|
11
|
-
"devRemotes": {
|
|
12
|
-
"type": "array",
|
|
13
|
-
"items": {
|
|
14
|
-
"oneOf": [
|
|
15
|
-
{
|
|
16
|
-
"type": "string"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"type": "object",
|
|
20
|
-
"properties": {
|
|
21
|
-
"remoteName": {
|
|
22
|
-
"type": "string"
|
|
23
|
-
},
|
|
24
|
-
"configuration": {
|
|
25
|
-
"type": "string"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"required": ["remoteName"],
|
|
29
|
-
"additionalProperties": false
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
"description": "List of Producer (remote) applications to run in development mode (i.e. using serve target).",
|
|
34
|
-
"x-priority": "important",
|
|
35
|
-
"alias": "devProducers"
|
|
36
|
-
},
|
|
37
|
-
"skipRemotes": {
|
|
38
|
-
"type": "array",
|
|
39
|
-
"items": {
|
|
40
|
-
"type": "string"
|
|
41
|
-
},
|
|
42
|
-
"description": "List of Producer (remote) applications to not automatically serve, either statically or in development mode. This will not remove the Producers (remotes) from the `module-federation.config` file, and therefore the application may still try to fetch these Producers (remotes).\nThis option is useful if you have other means for serving the Producer (remote) application(s).\n**NOTE:** Producers (remotes) that are not in the workspace will be skipped automatically.",
|
|
43
|
-
"x-priority": "important",
|
|
44
|
-
"alias": "skipProducers"
|
|
45
|
-
},
|
|
46
|
-
"buildTarget": {
|
|
47
|
-
"type": "string",
|
|
48
|
-
"description": "Target which builds the application.",
|
|
49
|
-
"x-priority": "important"
|
|
50
|
-
},
|
|
51
|
-
"port": {
|
|
52
|
-
"type": "number",
|
|
53
|
-
"description": "Port to listen on.",
|
|
54
|
-
"default": 4200,
|
|
55
|
-
"x-priority": "important"
|
|
56
|
-
},
|
|
57
|
-
"host": {
|
|
58
|
-
"type": "string",
|
|
59
|
-
"description": "Host to listen on.",
|
|
60
|
-
"default": "localhost"
|
|
61
|
-
},
|
|
62
|
-
"ssl": {
|
|
63
|
-
"type": "boolean",
|
|
64
|
-
"description": "Serve using `HTTPS`.",
|
|
65
|
-
"default": false
|
|
66
|
-
},
|
|
67
|
-
"sslKey": {
|
|
68
|
-
"type": "string",
|
|
69
|
-
"description": "SSL key to use for serving `HTTPS`."
|
|
70
|
-
},
|
|
71
|
-
"sslCert": {
|
|
72
|
-
"type": "string",
|
|
73
|
-
"description": "SSL certificate to use for serving `HTTPS`."
|
|
74
|
-
},
|
|
75
|
-
"watch": {
|
|
76
|
-
"type": "boolean",
|
|
77
|
-
"description": "Watches for changes and rebuilds application.",
|
|
78
|
-
"default": true
|
|
79
|
-
},
|
|
80
|
-
"liveReload": {
|
|
81
|
-
"type": "boolean",
|
|
82
|
-
"description": "Whether to reload the page on change, using live-reload.",
|
|
83
|
-
"default": true
|
|
84
|
-
},
|
|
85
|
-
"hmr": {
|
|
86
|
-
"type": "boolean",
|
|
87
|
-
"description": "Enable hot module replacement.",
|
|
88
|
-
"default": false
|
|
89
|
-
},
|
|
90
|
-
"publicHost": {
|
|
91
|
-
"type": "string",
|
|
92
|
-
"description": "Public URL where the application will be served."
|
|
93
|
-
},
|
|
94
|
-
"open": {
|
|
95
|
-
"type": "boolean",
|
|
96
|
-
"description": "Open the application in the browser.",
|
|
97
|
-
"default": false,
|
|
98
|
-
"x-priority": "important"
|
|
99
|
-
},
|
|
100
|
-
"allowedHosts": {
|
|
101
|
-
"type": "string",
|
|
102
|
-
"description": "This option allows you to whitelist services that are allowed to access the dev server."
|
|
103
|
-
},
|
|
104
|
-
"memoryLimit": {
|
|
105
|
-
"type": "number",
|
|
106
|
-
"description": "Memory limit for type checking service process in `MB`."
|
|
107
|
-
},
|
|
108
|
-
"maxWorkers": {
|
|
109
|
-
"type": "number",
|
|
110
|
-
"description": "Number of workers to use for type checking."
|
|
111
|
-
},
|
|
112
|
-
"baseHref": {
|
|
113
|
-
"type": "string",
|
|
114
|
-
"description": "Base url for the application being built."
|
|
115
|
-
},
|
|
116
|
-
"static": {
|
|
117
|
-
"type": "boolean",
|
|
118
|
-
"description": "Whether to use a static file server instead of the webpack-dev-server. This should be used for Producer (remote) applications that are also Consumer (host) applications."
|
|
119
|
-
},
|
|
120
|
-
"isInitialHost": {
|
|
121
|
-
"type": "boolean",
|
|
122
|
-
"description": "Whether the Consumer (host) that is running this executor is the first in the project tree to do so.",
|
|
123
|
-
"default": true,
|
|
124
|
-
"x-priority": "internal",
|
|
125
|
-
"alias": "isInitialConsumer"
|
|
126
|
-
},
|
|
127
|
-
"parallel": {
|
|
128
|
-
"type": "number",
|
|
129
|
-
"description": "Max number of parallel processes for building static Producers (remotes)"
|
|
130
|
-
},
|
|
131
|
-
"staticRemotesPort": {
|
|
132
|
-
"type": "number",
|
|
133
|
-
"description": "The port at which to serve the file-server for the static Producers (remotes).",
|
|
134
|
-
"alias": "staticProducersPort"
|
|
135
|
-
},
|
|
136
|
-
"pathToManifestFile": {
|
|
137
|
-
"type": "string",
|
|
138
|
-
"description": "Path to a Module Federation manifest file (e.g. `my/path/to/module-federation.manifest.json`) containing the dynamic Producer (remote) applications relative to the workspace root."
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
"examplesFile": "../../../docs/module-federation-dev-server-examples.md"
|
|
142
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ModuleFederationSsrDevServerOptions, NormalizedModuleFederationSsrDevServerOptions } from '../schema';
|
|
2
|
-
import { ExecutorContext } from '@nx/devkit';
|
|
3
|
-
export declare function normalizeOptions(options: ModuleFederationSsrDevServerOptions): NormalizedModuleFederationSsrDevServerOptions;
|
|
4
|
-
export declare function getBuildOptions(buildTarget: string, context: ExecutorContext): any;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeOptions = normalizeOptions;
|
|
4
|
-
exports.getBuildOptions = getBuildOptions;
|
|
5
|
-
const path_1 = require("path");
|
|
6
|
-
const devkit_1 = require("@nx/devkit");
|
|
7
|
-
function normalizeOptions(options) {
|
|
8
|
-
return {
|
|
9
|
-
...options,
|
|
10
|
-
devRemotes: options.devRemotes ?? [],
|
|
11
|
-
verbose: options.verbose ?? false,
|
|
12
|
-
ssl: options.ssl ?? false,
|
|
13
|
-
sslCert: options.sslCert ? (0, path_1.join)(devkit_1.workspaceRoot, options.sslCert) : undefined,
|
|
14
|
-
sslKey: options.sslKey ? (0, path_1.join)(devkit_1.workspaceRoot, options.sslKey) : undefined,
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
function getBuildOptions(buildTarget, context) {
|
|
18
|
-
const target = (0, devkit_1.parseTargetString)(buildTarget, context);
|
|
19
|
-
const buildOptions = (0, devkit_1.readTargetOptions)(target, context);
|
|
20
|
-
return {
|
|
21
|
-
...buildOptions,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ModuleFederationSsrDevServerOptions } from '../schema';
|
|
2
|
-
import { ExecutorContext, ProjectConfiguration } from '@nx/devkit';
|
|
3
|
-
export declare function startRemotes(remotes: string[], workspaceProjects: Record<string, ProjectConfiguration>, options: Partial<Pick<ModuleFederationSsrDevServerOptions, 'devRemotes' | 'host' | 'ssl' | 'sslCert' | 'sslKey' | 'verbose'>>, context: ExecutorContext): Promise<AsyncIterable<{
|
|
4
|
-
success: boolean;
|
|
5
|
-
}>[]>;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.startRemotes = startRemotes;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
async function startRemotes(remotes, workspaceProjects, options, context) {
|
|
6
|
-
const remoteIters = [];
|
|
7
|
-
const target = 'serve';
|
|
8
|
-
for (const app of remotes) {
|
|
9
|
-
const remoteProjectServeTarget = workspaceProjects[app].targets[target];
|
|
10
|
-
const isUsingModuleFederationSsrDevServerExecutor = remoteProjectServeTarget.executor.includes('module-federation-ssr-dev-server');
|
|
11
|
-
const configurationOverride = options.devRemotes?.find((remote) => typeof remote !== 'string' && remote.remoteName === app)?.configuration;
|
|
12
|
-
{
|
|
13
|
-
const defaultOverrides = {
|
|
14
|
-
...(options.host ? { host: options.host } : {}),
|
|
15
|
-
...(options.ssl ? { ssl: options.ssl } : {}),
|
|
16
|
-
...(options.sslCert ? { sslCert: options.sslCert } : {}),
|
|
17
|
-
...(options.sslKey ? { sslKey: options.sslKey } : {}),
|
|
18
|
-
};
|
|
19
|
-
const overrides = {
|
|
20
|
-
watch: true,
|
|
21
|
-
...defaultOverrides,
|
|
22
|
-
...(isUsingModuleFederationSsrDevServerExecutor
|
|
23
|
-
? { isInitialHost: false }
|
|
24
|
-
: {}),
|
|
25
|
-
};
|
|
26
|
-
remoteIters.push(await (0, devkit_1.runExecutor)({
|
|
27
|
-
project: app,
|
|
28
|
-
target,
|
|
29
|
-
configuration: configurationOverride ?? context.configurationName,
|
|
30
|
-
}, overrides, context));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return remoteIters;
|
|
34
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
-
import { ModuleFederationSsrDevServerOptions } from './schema';
|
|
3
|
-
export default function moduleFederationSsrDevServer(ssrDevServerOptions: ModuleFederationSsrDevServerOptions, context: ExecutorContext): AsyncGenerator<any, any, any>;
|
package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = moduleFederationSsrDevServer;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const internal_1 = require("@nx/devkit/internal");
|
|
6
|
-
const internal_2 = require("@nx/js/internal");
|
|
7
|
-
const internal_3 = require("@nx/web/internal");
|
|
8
|
-
const fs_1 = require("fs");
|
|
9
|
-
const path_1 = require("path");
|
|
10
|
-
const lib_1 = require("./lib");
|
|
11
|
-
const assert_package_1 = require("../../utils/assert-package");
|
|
12
|
-
const module_federation_deprecation_1 = require("../../utils/module-federation-deprecation");
|
|
13
|
-
const executorName = '@nx/react:module-federation-ssr-dev-server';
|
|
14
|
-
async function* moduleFederationSsrDevServer(ssrDevServerOptions, context) {
|
|
15
|
-
(0, assert_package_1.assertPackageIsInstalled)('@nx/module-federation', executorName);
|
|
16
|
-
(0, assert_package_1.assertPackageIsInstalled)('@nx/webpack', executorName);
|
|
17
|
-
const { startRemoteIterators } = await import('@nx/module-federation/internal');
|
|
18
|
-
const { ssrDevServerExecutor } = await import('@nx/webpack/internal');
|
|
19
|
-
(0, module_federation_deprecation_1.warnReactMfSsrDevServerExecutorDeprecation)();
|
|
20
|
-
const options = (0, lib_1.normalizeOptions)(ssrDevServerOptions);
|
|
21
|
-
// TODO(JamesHenry): remove type assertion once the nx repo is updated to use https://github.com/nrwl/nx/pull/33095
|
|
22
|
-
let iter = ssrDevServerExecutor(options, context);
|
|
23
|
-
const projectConfig = context.projectsConfigurations.projects[context.projectName];
|
|
24
|
-
let pathToManifestFile = (0, path_1.join)(context.root, (0, internal_2.getProjectSourceRoot)(projectConfig), 'assets/module-federation.manifest.json');
|
|
25
|
-
if (options.pathToManifestFile) {
|
|
26
|
-
const userPathToManifestFile = (0, path_1.join)(context.root, options.pathToManifestFile);
|
|
27
|
-
if (!(0, fs_1.existsSync)(userPathToManifestFile)) {
|
|
28
|
-
throw new Error(`The provided Module Federation manifest file path does not exist. Please check the file exists at "${userPathToManifestFile}".`);
|
|
29
|
-
}
|
|
30
|
-
else if ((0, path_1.extname)(userPathToManifestFile) !== '.json') {
|
|
31
|
-
throw new Error(`The Module Federation manifest file must be a JSON. Please ensure the file at ${userPathToManifestFile} is a JSON.`);
|
|
32
|
-
}
|
|
33
|
-
pathToManifestFile = userPathToManifestFile;
|
|
34
|
-
}
|
|
35
|
-
if (!options.isInitialHost) {
|
|
36
|
-
return yield* iter;
|
|
37
|
-
}
|
|
38
|
-
const { staticRemotesIter, devRemoteIters, remotes } = await startRemoteIterators(options, context, lib_1.startRemotes, pathToManifestFile, 'react', true);
|
|
39
|
-
const combined = (0, internal_1.combineAsyncIterables)(staticRemotesIter, ...devRemoteIters);
|
|
40
|
-
let refs = 1 + (devRemoteIters?.length ?? 0);
|
|
41
|
-
for await (const result of combined) {
|
|
42
|
-
if (result.success === false)
|
|
43
|
-
throw new Error('Remotes failed to start');
|
|
44
|
-
if (result.success)
|
|
45
|
-
refs--;
|
|
46
|
-
if (refs === 0)
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
return yield* (0, internal_1.combineAsyncIterables)(iter, (0, internal_1.createAsyncIterable)(async ({ next, done }) => {
|
|
50
|
-
const host = options.host ?? 'localhost';
|
|
51
|
-
const baseUrl = `http${options.ssl ? 's' : ''}://${host}:${options.port}`;
|
|
52
|
-
if (!options.isInitialHost) {
|
|
53
|
-
next({ success: true, baseUrl });
|
|
54
|
-
done();
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
if (remotes.remotePorts.length === 0) {
|
|
58
|
-
next({ success: true, baseUrl });
|
|
59
|
-
done();
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
try {
|
|
63
|
-
const portsToWaitFor = staticRemotesIter && options.staticRemotesPort
|
|
64
|
-
? [options.staticRemotesPort, ...remotes.remotePorts]
|
|
65
|
-
: [...remotes.remotePorts];
|
|
66
|
-
await Promise.all(portsToWaitFor.map((port) => (0, internal_3.waitForPortOpen)(port, {
|
|
67
|
-
retries: 480,
|
|
68
|
-
retryDelay: 2500,
|
|
69
|
-
host,
|
|
70
|
-
})));
|
|
71
|
-
devkit_1.logger.info(`Nx all ssr remotes have started, server ready at ${baseUrl}`);
|
|
72
|
-
next({ success: true, baseUrl });
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
throw new Error(`Nx failed to start ssr remotes. Check above for errors.`, {
|
|
76
|
-
cause: error,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
finally {
|
|
80
|
-
done();
|
|
81
|
-
}
|
|
82
|
-
}));
|
|
83
|
-
}
|