@nx/module-federation 24.0.0-beta.2 → 24.0.0-beta.3
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/README.md +1 -3
- package/dist/angular.d.ts +1 -5
- package/dist/angular.js +7 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.js +0 -2
- package/dist/rspack.d.ts +1 -5
- package/dist/rspack.js +7 -6
- package/dist/src/migrations/update-24-0-0/inventory.d.ts +11 -0
- package/dist/src/migrations/update-24-0-0/inventory.js +139 -0
- package/dist/src/migrations/update-24-0-0/migrate-angular-module-federation.d.ts +5 -0
- package/dist/src/migrations/update-24-0-0/migrate-angular-module-federation.js +18 -0
- package/dist/src/migrations/update-24-0-0/migrate-module-federation.d.ts +10 -0
- package/dist/src/migrations/update-24-0-0/migrate-module-federation.js +26 -0
- package/dist/src/migrations/update-24-0-0/migrate-module-federation.md +1931 -0
- package/dist/src/migrations/update-24-0-0/migrate-react-module-federation.d.ts +5 -0
- package/dist/src/migrations/update-24-0-0/migrate-react-module-federation.js +18 -0
- package/dist/src/stubs/models.d.ts +26 -0
- package/dist/src/stubs/stubs.d.ts +19 -0
- package/dist/src/stubs/stubs.js +43 -0
- package/dist/webpack.d.ts +1 -2
- package/dist/webpack.js +4 -3
- package/migrations.json +6 -0
- package/package.json +5 -60
- package/readme-template.md +1 -3
- package/dist/internal.d.ts +0 -2
- package/dist/internal.js +0 -13
- package/dist/src/executors/utils/build-static-remotes.d.ts +0 -4
- package/dist/src/executors/utils/build-static-remotes.js +0 -67
- package/dist/src/executors/utils/index.d.ts +0 -4
- package/dist/src/executors/utils/index.js +0 -6
- package/dist/src/executors/utils/models.d.ts +0 -30
- package/dist/src/executors/utils/start-remote-iterators.d.ts +0 -25
- package/dist/src/executors/utils/start-remote-iterators.js +0 -52
- package/dist/src/executors/utils/start-static-remotes-file-server.d.ts +0 -15
- package/dist/src/executors/utils/start-static-remotes-file-server.js +0 -61
- package/dist/src/plugins/models/index.d.ts +0 -14
- package/dist/src/plugins/models/index.js +0 -2
- package/dist/src/plugins/nx-module-federation-plugin/angular/nx-module-federation-dev-server-plugin.d.ts +0 -13
- package/dist/src/plugins/nx-module-federation-plugin/angular/nx-module-federation-dev-server-plugin.js +0 -75
- package/dist/src/plugins/nx-module-federation-plugin/angular/nx-module-federation-plugin.d.ts +0 -11
- package/dist/src/plugins/nx-module-federation-plugin/angular/nx-module-federation-plugin.js +0 -93
- package/dist/src/plugins/nx-module-federation-plugin/angular/nx-module-federation-ssr-dev-server-plugin.d.ts +0 -15
- package/dist/src/plugins/nx-module-federation-plugin/angular/nx-module-federation-ssr-dev-server-plugin.js +0 -107
- package/dist/src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-dev-server-plugin.d.ts +0 -13
- package/dist/src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-dev-server-plugin.js +0 -75
- package/dist/src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-plugin.d.ts +0 -11
- package/dist/src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-plugin.js +0 -80
- package/dist/src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-ssr-dev-server-plugin.d.ts +0 -15
- package/dist/src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-ssr-dev-server-plugin.js +0 -107
- package/dist/src/plugins/utils/build-static-remotes.d.ts +0 -3
- package/dist/src/plugins/utils/build-static-remotes.js +0 -65
- package/dist/src/plugins/utils/get-dynamic-manifest-file.d.ts +0 -2
- package/dist/src/plugins/utils/get-dynamic-manifest-file.js +0 -18
- package/dist/src/plugins/utils/get-remotes.d.ts +0 -7
- package/dist/src/plugins/utils/get-remotes.js +0 -68
- package/dist/src/plugins/utils/get-static-remotes.d.ts +0 -3
- package/dist/src/plugins/utils/get-static-remotes.js +0 -27
- package/dist/src/plugins/utils/index.d.ts +0 -7
- package/dist/src/plugins/utils/index.js +0 -10
- package/dist/src/plugins/utils/parse-remotes-config.d.ts +0 -6
- package/dist/src/plugins/utils/parse-remotes-config.js +0 -35
- package/dist/src/plugins/utils/start-remote-proxies.d.ts +0 -5
- package/dist/src/plugins/utils/start-remote-proxies.js +0 -65
- package/dist/src/plugins/utils/start-static-remotes-file-server.d.ts +0 -2
- package/dist/src/plugins/utils/start-static-remotes-file-server.js +0 -46
- package/dist/src/utils/dependencies.d.ts +0 -6
- package/dist/src/utils/dependencies.js +0 -70
- package/dist/src/utils/framework-detection.d.ts +0 -2
- package/dist/src/utils/framework-detection.js +0 -20
- package/dist/src/utils/get-remotes-for-host.d.ts +0 -17
- package/dist/src/utils/get-remotes-for-host.js +0 -154
- package/dist/src/utils/index.d.ts +0 -11
- package/dist/src/utils/index.js +0 -14
- package/dist/src/utils/is-serve-mode.d.ts +0 -2
- package/dist/src/utils/is-serve-mode.js +0 -19
- package/dist/src/utils/models/index.d.ts +0 -47
- package/dist/src/utils/models/index.js +0 -2
- package/dist/src/utils/module-federation-config.d.ts +0 -57
- package/dist/src/utils/module-federation-config.js +0 -144
- package/dist/src/utils/normalize-project-name.d.ts +0 -1
- package/dist/src/utils/normalize-project-name.js +0 -10
- package/dist/src/utils/package-json.d.ts +0 -2
- package/dist/src/utils/package-json.js +0 -12
- package/dist/src/utils/parse-static-remotes-config.d.ts +0 -13
- package/dist/src/utils/parse-static-remotes-config.js +0 -62
- package/dist/src/utils/plugins/runtime-library-control.plugin.d.ts +0 -3
- package/dist/src/utils/plugins/runtime-library-control.plugin.js +0 -54
- package/dist/src/utils/port-utils.d.ts +0 -7
- package/dist/src/utils/port-utils.js +0 -22
- package/dist/src/utils/public-api.d.ts +0 -7
- package/dist/src/utils/public-api.js +0 -18
- package/dist/src/utils/remotes.d.ts +0 -19
- package/dist/src/utils/remotes.js +0 -75
- package/dist/src/utils/rspack-version.d.ts +0 -3
- package/dist/src/utils/rspack-version.js +0 -11
- package/dist/src/utils/secondary-entry-points.d.ts +0 -12
- package/dist/src/utils/secondary-entry-points.js +0 -125
- package/dist/src/utils/share.d.ts +0 -58
- package/dist/src/utils/share.js +0 -334
- package/dist/src/utils/start-remote-proxies.d.ts +0 -5
- package/dist/src/utils/start-remote-proxies.js +0 -55
- package/dist/src/utils/start-ssr-remote-proxies.d.ts +0 -5
- package/dist/src/utils/start-ssr-remote-proxies.js +0 -69
- package/dist/src/utils/typescript.d.ts +0 -4
- package/dist/src/utils/typescript.js +0 -53
- package/dist/src/utils/url-helpers.d.ts +0 -13
- package/dist/src/utils/url-helpers.js +0 -70
- package/dist/src/with-module-federation/angular/utils.d.ts +0 -28
- package/dist/src/with-module-federation/angular/utils.js +0 -83
- package/dist/src/with-module-federation/angular/with-module-federation-ssr.d.ts +0 -2
- package/dist/src/with-module-federation/angular/with-module-federation-ssr.js +0 -86
- package/dist/src/with-module-federation/angular/with-module-federation.d.ts +0 -2
- package/dist/src/with-module-federation/angular/with-module-federation.js +0 -85
- package/dist/src/with-module-federation/react/utils.d.ts +0 -2
- package/dist/src/with-module-federation/react/utils.js +0 -17
- package/dist/src/with-module-federation/rspack/utils.d.ts +0 -10
- package/dist/src/with-module-federation/rspack/utils.js +0 -32
- package/dist/src/with-module-federation/rspack/with-module-federation-ssr.d.ts +0 -4
- package/dist/src/with-module-federation/rspack/with-module-federation-ssr.js +0 -75
- package/dist/src/with-module-federation/rspack/with-module-federation.d.ts +0 -9
- package/dist/src/with-module-federation/rspack/with-module-federation.js +0 -82
- package/dist/src/with-module-federation/webpack/utils.d.ts +0 -10
- package/dist/src/with-module-federation/webpack/utils.js +0 -32
- package/dist/src/with-module-federation/webpack/with-module-federation-ssr.d.ts +0 -2
- package/dist/src/with-module-federation/webpack/with-module-federation-ssr.js +0 -69
- package/dist/src/with-module-federation/webpack/with-module-federation.d.ts +0 -5
- package/dist/src/with-module-federation/webpack/with-module-federation.js +0 -72
- package/dist/url-helpers.d.ts +0 -13
- package/dist/url-helpers.js +0 -78
- package/executors.json +0 -4
- /package/dist/src/{executors/utils → stubs}/models.js +0 -0
package/README.md
CHANGED
|
@@ -23,9 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Get to green PRs in half the time. Nx optimizes your builds, scales your CI, and fixes failed PRs. Built for developers and AI agents.
|
|
25
25
|
|
|
26
|
-
This package
|
|
27
|
-
Module Federation allows developers to share code between deployed applications easier and makes team collaboration more efficient.
|
|
28
|
-
To learn more about Module Federation, check out the [official documentation](https://module-federation.io/).
|
|
26
|
+
Nx Module Federation was removed in Nx v24. This package only ships the migrations that move a workspace to the official [Module Federation](https://module-federation.io/) plugins. See the [React](https://nx.dev/docs/kb/migrate-from-nx-module-federation) and [Angular](https://nx.dev/docs/kb/migrate-angular-module-federation) migration guides.
|
|
29
27
|
|
|
30
28
|
## Getting Started
|
|
31
29
|
|
package/dist/angular.d.ts
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './src/with-module-federation/angular/with-module-federation-ssr';
|
|
3
|
-
export * from './src/plugins/nx-module-federation-plugin/angular/nx-module-federation-plugin';
|
|
4
|
-
export * from './src/plugins/nx-module-federation-plugin/angular/nx-module-federation-dev-server-plugin';
|
|
5
|
-
export * from './src/plugins/nx-module-federation-plugin/angular/nx-module-federation-ssr-dev-server-plugin';
|
|
1
|
+
export { withModuleFederation, withModuleFederationForSSR, NxModuleFederationPlugin, NxModuleFederationDevServerPlugin, NxModuleFederationSSRDevServerPlugin, } from './src/stubs/stubs';
|
package/dist/angular.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
exports.NxModuleFederationSSRDevServerPlugin = exports.NxModuleFederationDevServerPlugin = exports.NxModuleFederationPlugin = exports.withModuleFederationForSSR = exports.withModuleFederation = void 0;
|
|
4
|
+
var stubs_1 = require("./src/stubs/stubs");
|
|
5
|
+
Object.defineProperty(exports, "withModuleFederation", { enumerable: true, get: function () { return stubs_1.withModuleFederation; } });
|
|
6
|
+
Object.defineProperty(exports, "withModuleFederationForSSR", { enumerable: true, get: function () { return stubs_1.withModuleFederationForSSR; } });
|
|
7
|
+
Object.defineProperty(exports, "NxModuleFederationPlugin", { enumerable: true, get: function () { return stubs_1.NxModuleFederationPlugin; } });
|
|
8
|
+
Object.defineProperty(exports, "NxModuleFederationDevServerPlugin", { enumerable: true, get: function () { return stubs_1.NxModuleFederationDevServerPlugin; } });
|
|
9
|
+
Object.defineProperty(exports, "NxModuleFederationSSRDevServerPlugin", { enumerable: true, get: function () { return stubs_1.NxModuleFederationSSRDevServerPlugin; } });
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './src/
|
|
1
|
+
export type * from './src/stubs/models';
|
package/dist/index.js
CHANGED
package/dist/rspack.d.ts
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './src/with-module-federation/rspack/with-module-federation-ssr';
|
|
3
|
-
export * from './src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-plugin';
|
|
4
|
-
export * from './src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-dev-server-plugin';
|
|
5
|
-
export * from './src/plugins/nx-module-federation-plugin/rspack/nx-module-federation-ssr-dev-server-plugin';
|
|
1
|
+
export { withModuleFederation, withModuleFederationForSSR, NxModuleFederationPlugin, NxModuleFederationDevServerPlugin, NxModuleFederationSSRDevServerPlugin, } from './src/stubs/stubs';
|
package/dist/rspack.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
exports.NxModuleFederationSSRDevServerPlugin = exports.NxModuleFederationDevServerPlugin = exports.NxModuleFederationPlugin = exports.withModuleFederationForSSR = exports.withModuleFederation = void 0;
|
|
4
|
+
var stubs_1 = require("./src/stubs/stubs");
|
|
5
|
+
Object.defineProperty(exports, "withModuleFederation", { enumerable: true, get: function () { return stubs_1.withModuleFederation; } });
|
|
6
|
+
Object.defineProperty(exports, "withModuleFederationForSSR", { enumerable: true, get: function () { return stubs_1.withModuleFederationForSSR; } });
|
|
7
|
+
Object.defineProperty(exports, "NxModuleFederationPlugin", { enumerable: true, get: function () { return stubs_1.NxModuleFederationPlugin; } });
|
|
8
|
+
Object.defineProperty(exports, "NxModuleFederationDevServerPlugin", { enumerable: true, get: function () { return stubs_1.NxModuleFederationDevServerPlugin; } });
|
|
9
|
+
Object.defineProperty(exports, "NxModuleFederationSSRDevServerPlugin", { enumerable: true, get: function () { return stubs_1.NxModuleFederationSSRDevServerPlugin; } });
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Tree } from '@nx/devkit';
|
|
2
|
+
export type Framework = 'react' | 'angular';
|
|
3
|
+
export interface ModuleFederationUsage {
|
|
4
|
+
projectRoot: string;
|
|
5
|
+
files: string[];
|
|
6
|
+
ssr: boolean;
|
|
7
|
+
}
|
|
8
|
+
export type ModuleFederationInventory = Record<Framework, ModuleFederationUsage[]>;
|
|
9
|
+
export declare function inventoryModuleFederation(tree: Tree): ModuleFederationInventory;
|
|
10
|
+
export declare function removeUnusedModuleFederationPackage(tree: Tree, inventory: ModuleFederationInventory): boolean;
|
|
11
|
+
export declare function describeUsage(usage: ModuleFederationUsage): string;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inventoryModuleFederation = inventoryModuleFederation;
|
|
4
|
+
exports.removeUnusedModuleFederationPackage = removeUnusedModuleFederationPackage;
|
|
5
|
+
exports.describeUsage = describeUsage;
|
|
6
|
+
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const posix_1 = require("node:path/posix");
|
|
8
|
+
const SCANNED_EXTENSIONS = new Set([
|
|
9
|
+
'.ts',
|
|
10
|
+
'.tsx',
|
|
11
|
+
'.mts',
|
|
12
|
+
'.cts',
|
|
13
|
+
'.js',
|
|
14
|
+
'.jsx',
|
|
15
|
+
'.mjs',
|
|
16
|
+
'.cjs',
|
|
17
|
+
'.json',
|
|
18
|
+
]);
|
|
19
|
+
// Name the package without using it.
|
|
20
|
+
const SKIPPED_FILES = new Set([
|
|
21
|
+
'migrations.json',
|
|
22
|
+
'package-lock.json',
|
|
23
|
+
'npm-shrinkwrap.json',
|
|
24
|
+
]);
|
|
25
|
+
const ANGULAR_MARKERS = [
|
|
26
|
+
'@nx/module-federation/angular',
|
|
27
|
+
'@nx/angular/mf',
|
|
28
|
+
'@nx/angular:module-federation-dev-server',
|
|
29
|
+
'@nx/angular:module-federation-dev-ssr',
|
|
30
|
+
];
|
|
31
|
+
const REACT_MARKERS = [
|
|
32
|
+
'@nx/module-federation/webpack',
|
|
33
|
+
'@nx/module-federation/rspack',
|
|
34
|
+
'@nx/react/mf',
|
|
35
|
+
'@nx/react/module-federation',
|
|
36
|
+
'@nx/rspack/module-federation',
|
|
37
|
+
'@nx/react:module-federation-',
|
|
38
|
+
'@nx/rspack:module-federation-',
|
|
39
|
+
];
|
|
40
|
+
// Root, `/url-helpers` and `/internal` imports say nothing about the framework.
|
|
41
|
+
const SHARED_MARKER = /['"]@nx\/module-federation(\/url-helpers|\/internal)?['"]/;
|
|
42
|
+
const SSR_MARKERS = [
|
|
43
|
+
'withModuleFederationForSSR',
|
|
44
|
+
'NxModuleFederationSSRDevServerPlugin',
|
|
45
|
+
'module-federation-ssr-dev-server',
|
|
46
|
+
'module-federation-dev-ssr',
|
|
47
|
+
];
|
|
48
|
+
const DEPENDENCY_FIELDS = [
|
|
49
|
+
'dependencies',
|
|
50
|
+
'devDependencies',
|
|
51
|
+
'peerDependencies',
|
|
52
|
+
'optionalDependencies',
|
|
53
|
+
];
|
|
54
|
+
function inventoryModuleFederation(tree) {
|
|
55
|
+
const byProject = new Map();
|
|
56
|
+
(0, devkit_1.visitNotIgnoredFiles)(tree, '', (filePath) => {
|
|
57
|
+
if (!SCANNED_EXTENSIONS.has((0, posix_1.extname)(filePath)))
|
|
58
|
+
return;
|
|
59
|
+
if (SKIPPED_FILES.has(filePath))
|
|
60
|
+
return;
|
|
61
|
+
const content = readScannableContent(tree, filePath);
|
|
62
|
+
if (!content)
|
|
63
|
+
return;
|
|
64
|
+
const frameworks = new Set();
|
|
65
|
+
if (ANGULAR_MARKERS.some((m) => content.includes(m))) {
|
|
66
|
+
frameworks.add('angular');
|
|
67
|
+
}
|
|
68
|
+
if (REACT_MARKERS.some((m) => content.includes(m))) {
|
|
69
|
+
frameworks.add('react');
|
|
70
|
+
}
|
|
71
|
+
if (frameworks.size === 0 && !SHARED_MARKER.test(content))
|
|
72
|
+
return;
|
|
73
|
+
const projectRoot = findProjectRoot(tree, filePath);
|
|
74
|
+
const usage = byProject.get(projectRoot) ?? {
|
|
75
|
+
frameworks: new Set(),
|
|
76
|
+
files: [],
|
|
77
|
+
ssr: false,
|
|
78
|
+
};
|
|
79
|
+
frameworks.forEach((f) => usage.frameworks.add(f));
|
|
80
|
+
usage.files.push(filePath);
|
|
81
|
+
usage.ssr ||= SSR_MARKERS.some((m) => content.includes(m));
|
|
82
|
+
byProject.set(projectRoot, usage);
|
|
83
|
+
});
|
|
84
|
+
const inventory = { react: [], angular: [] };
|
|
85
|
+
for (const [projectRoot, usage] of byProject) {
|
|
86
|
+
// Projects with only shared-entry imports are listed for both prompts to triage.
|
|
87
|
+
const frameworks = usage.frameworks.size > 0 ? [...usage.frameworks] : ['react', 'angular'];
|
|
88
|
+
for (const framework of frameworks) {
|
|
89
|
+
inventory[framework].push({
|
|
90
|
+
projectRoot,
|
|
91
|
+
files: usage.files.sort(),
|
|
92
|
+
ssr: usage.ssr,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return inventory;
|
|
97
|
+
}
|
|
98
|
+
// Nothing left to migrate, so the dependency can go without an agent.
|
|
99
|
+
function removeUnusedModuleFederationPackage(tree, inventory) {
|
|
100
|
+
if (inventory.react.length > 0 || inventory.angular.length > 0) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
if (!tree.exists('package.json'))
|
|
104
|
+
return false;
|
|
105
|
+
const before = tree.read('package.json', 'utf-8');
|
|
106
|
+
(0, devkit_1.removeDependenciesFromPackageJson)(tree, ['@nx/module-federation'], ['@nx/module-federation']);
|
|
107
|
+
return tree.read('package.json', 'utf-8') !== before;
|
|
108
|
+
}
|
|
109
|
+
function describeUsage(usage) {
|
|
110
|
+
return `${usage.projectRoot || '.'}${usage.ssr ? ' (server-side rendering)' : ''}: ${usage.files.join(', ')}`;
|
|
111
|
+
}
|
|
112
|
+
function readScannableContent(tree, filePath) {
|
|
113
|
+
const content = tree.read(filePath, 'utf-8');
|
|
114
|
+
if (!content || !content.includes('@nx/'))
|
|
115
|
+
return null;
|
|
116
|
+
if (!filePath.endsWith('package.json'))
|
|
117
|
+
return content;
|
|
118
|
+
// A declared dependency is not usage; package.json only counts for its `nx` targets.
|
|
119
|
+
try {
|
|
120
|
+
const packageJson = JSON.parse(content);
|
|
121
|
+
for (const field of DEPENDENCY_FIELDS)
|
|
122
|
+
delete packageJson[field];
|
|
123
|
+
return JSON.stringify(packageJson);
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return content;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function findProjectRoot(tree, filePath) {
|
|
130
|
+
let dir = (0, posix_1.dirname)(filePath);
|
|
131
|
+
while (dir !== '.' && dir !== '') {
|
|
132
|
+
if (tree.exists((0, posix_1.join)(dir, 'project.json')) ||
|
|
133
|
+
tree.exists((0, posix_1.join)(dir, 'package.json'))) {
|
|
134
|
+
return dir;
|
|
135
|
+
}
|
|
136
|
+
dir = (0, posix_1.dirname)(dir);
|
|
137
|
+
}
|
|
138
|
+
return '';
|
|
139
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angularModuleFederationSteps = angularModuleFederationSteps;
|
|
4
|
+
const inventory_1 = require("./inventory");
|
|
5
|
+
function angularModuleFederationSteps(inventory) {
|
|
6
|
+
const usages = inventory.angular;
|
|
7
|
+
if (usages.length === 0)
|
|
8
|
+
return null;
|
|
9
|
+
return {
|
|
10
|
+
nextSteps: [
|
|
11
|
+
`Migrate ${usages.length} Angular project(s) off Nx Module Federation. See https://nx.dev/docs/kb/migrate-angular-module-federation`,
|
|
12
|
+
],
|
|
13
|
+
agentContext: [
|
|
14
|
+
'Angular projects that use Nx Module Federation, with the files that reference it:',
|
|
15
|
+
...usages.map(inventory_1.describeUsage),
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Tree } from '@nx/devkit';
|
|
2
|
+
export default function migrateModuleFederation(tree: Tree): Promise<{
|
|
3
|
+
skipAgentic: boolean;
|
|
4
|
+
nextSteps?: undefined;
|
|
5
|
+
agentContext?: undefined;
|
|
6
|
+
} | {
|
|
7
|
+
skipAgentic?: undefined;
|
|
8
|
+
nextSteps: string[];
|
|
9
|
+
agentContext: string[];
|
|
10
|
+
}>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = migrateModuleFederation;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const inventory_1 = require("./inventory");
|
|
6
|
+
const migrate_angular_module_federation_1 = require("./migrate-angular-module-federation");
|
|
7
|
+
const migrate_react_module_federation_1 = require("./migrate-react-module-federation");
|
|
8
|
+
// One migration for both frameworks: removing `@nx/module-federation` triggers a
|
|
9
|
+
// reinstall, and any migration from this package that runs after it fails to load.
|
|
10
|
+
async function migrateModuleFederation(tree) {
|
|
11
|
+
const inventory = (0, inventory_1.inventoryModuleFederation)(tree);
|
|
12
|
+
const steps = [
|
|
13
|
+
(0, migrate_react_module_federation_1.reactModuleFederationSteps)(inventory),
|
|
14
|
+
(0, migrate_angular_module_federation_1.angularModuleFederationSteps)(inventory),
|
|
15
|
+
].filter((s) => s !== null);
|
|
16
|
+
if (steps.length === 0) {
|
|
17
|
+
if ((0, inventory_1.removeUnusedModuleFederationPackage)(tree, inventory)) {
|
|
18
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
19
|
+
}
|
|
20
|
+
return { skipAgentic: true };
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
nextSteps: steps.flatMap((s) => s.nextSteps),
|
|
24
|
+
agentContext: steps.flatMap((s) => s.agentContext),
|
|
25
|
+
};
|
|
26
|
+
}
|