@module-federation/bridge-react 0.0.0-next-20250926024003 → 0.0.0-perf-devtools-20260107043700
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/CHANGELOG.md +81 -3
- package/__tests__/bridge.spec.tsx +37 -14
- package/dist/base.cjs.js +29 -0
- package/dist/base.d.ts +311 -0
- package/dist/base.es.js +30 -0
- package/dist/{bridge-base-BwHtOqw_.mjs → bridge-base-CPSTBjEp.mjs} +30 -18
- package/dist/{bridge-base-Ds850AOx.js → bridge-base-RStDxH71.js} +30 -18
- package/dist/createHelpers-B_L612IN.js +190 -0
- package/dist/createHelpers-Ui5pt7je.mjs +191 -0
- package/dist/data-fetch-server-middleware.cjs.js +2 -2
- package/dist/data-fetch-server-middleware.es.js +2 -2
- package/dist/data-fetch-utils.cjs.js +2 -2
- package/dist/data-fetch-utils.es.js +8 -8
- package/dist/{index-eN2xRRXs.js → index-DRSBaSu3.js} +1 -1
- package/dist/{index-rAO0Wr0M.mjs → index-DyQNwY2M.mjs} +1 -1
- package/dist/index.cjs.js +11 -179
- package/dist/index.d.ts +31 -6
- package/dist/index.es.js +19 -186
- package/dist/{index.esm-Ju4RY-yW.js → index.esm-BWaKho-8.js} +108 -46
- package/dist/{index.esm-CtI0uQUR.mjs → index.esm-CPwSeCvw.mjs} +113 -51
- package/dist/{lazy-load-component-plugin-D6tEPyvX.mjs → lazy-load-component-plugin-CNyT62wB.mjs} +2 -2
- package/dist/{lazy-load-component-plugin-CWNzJM0v.js → lazy-load-component-plugin-Dr5VV1mu.js} +2 -2
- package/dist/lazy-load-component-plugin.cjs.js +2 -2
- package/dist/lazy-load-component-plugin.es.js +2 -2
- package/dist/lazy-utils.cjs.js +2 -2
- package/dist/lazy-utils.es.js +4 -4
- package/dist/{prefetch-hTVJ80G6.js → prefetch-J3x-_5zT.js} +43 -141
- package/dist/{prefetch-DCF_oa3O.mjs → prefetch-lrSPKiuu.mjs} +43 -141
- package/dist/router-v5.cjs.js +1 -1
- package/dist/router-v5.es.js +1 -1
- package/dist/router-v6.cjs.js +1 -1
- package/dist/router-v6.es.js +1 -1
- package/dist/router-v7.cjs.js +83 -0
- package/dist/router-v7.d.ts +20 -0
- package/dist/router-v7.es.js +61 -0
- package/dist/router.cjs.js +1 -1
- package/dist/router.es.js +1 -1
- package/dist/{utils-VSOJTX_o.mjs → utils-dUgb9Jkm.mjs} +7 -7
- package/dist/{utils-vIpCrZmn.js → utils-tM9yE73c.js} +1 -1
- package/dist/v18.cjs.js +1 -1
- package/dist/v18.es.js +1 -1
- package/dist/v19.cjs.js +1 -1
- package/dist/v19.es.js +1 -1
- package/package.json +54 -10
- package/src/base.ts +50 -0
- package/src/index.ts +6 -1
- package/src/provider/versions/bridge-base.tsx +45 -17
- package/src/provider/versions/legacy.ts +2 -1
- package/src/remote/RemoteAppWrapper.tsx +108 -0
- package/src/remote/base-component/component.tsx +2 -0
- package/src/remote/base-component/create.tsx +23 -0
- package/src/remote/base-component/index.tsx +10 -0
- package/src/remote/createHelpers.tsx +130 -0
- package/src/remote/{component.tsx → router-component/component.tsx} +3 -110
- package/src/remote/router-component/create.tsx +23 -0
- package/src/remote/router-component/index.tsx +10 -0
- package/src/router/v7.tsx +75 -0
- package/vite.config.ts +25 -0
- package/src/remote/create.tsx +0 -103
package/dist/router-v6.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const React = require("react");
|
|
4
4
|
const ReactRouterDom$1 = require("react-router-dom/dist/index.js");
|
|
5
|
-
const index = require("./index-
|
|
5
|
+
const index = require("./index-DRSBaSu3.js");
|
|
6
6
|
const ReactRouterDom = require("react-router-dom/dist/index.js");
|
|
7
7
|
function _interopNamespaceDefault(e) {
|
|
8
8
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
package/dist/router-v6.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React__default, { useContext } from "react";
|
|
2
2
|
import * as ReactRouterDom$1 from "react-router-dom/dist/index.js";
|
|
3
|
-
import { R as RouterContext, L as LoggerInstance } from "./index-
|
|
3
|
+
import { R as RouterContext, L as LoggerInstance } from "./index-DyQNwY2M.mjs";
|
|
4
4
|
export * from "react-router-dom/dist/index.js";
|
|
5
5
|
function WraperRouter(props) {
|
|
6
6
|
const { basename, ...propsRes } = props;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const React = require("react");
|
|
4
|
+
const ReactRouterDom = require("react-router");
|
|
5
|
+
const index = require("./index-DRSBaSu3.js");
|
|
6
|
+
function _interopNamespaceDefault(e) {
|
|
7
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
8
|
+
if (e) {
|
|
9
|
+
for (const k in e) {
|
|
10
|
+
if (k !== "default") {
|
|
11
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: () => e[k]
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
n.default = e;
|
|
20
|
+
return Object.freeze(n);
|
|
21
|
+
}
|
|
22
|
+
const ReactRouterDom__namespace = /* @__PURE__ */ _interopNamespaceDefault(ReactRouterDom);
|
|
23
|
+
function WraperRouter(props) {
|
|
24
|
+
const { basename, ...propsRes } = props;
|
|
25
|
+
const routerContextProps = React.useContext(index.RouterContext) || {};
|
|
26
|
+
index.LoggerInstance.debug(`WraperRouter info >>>`, {
|
|
27
|
+
...routerContextProps,
|
|
28
|
+
routerContextProps,
|
|
29
|
+
WraperRouterProps: props
|
|
30
|
+
});
|
|
31
|
+
if (routerContextProps == null ? void 0 : routerContextProps.memoryRoute) {
|
|
32
|
+
return /* @__PURE__ */ React.createElement(
|
|
33
|
+
ReactRouterDom__namespace.MemoryRouter,
|
|
34
|
+
{
|
|
35
|
+
...props,
|
|
36
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
return /* @__PURE__ */ React.createElement(
|
|
41
|
+
ReactRouterDom__namespace.BrowserRouter,
|
|
42
|
+
{
|
|
43
|
+
...propsRes,
|
|
44
|
+
basename: (routerContextProps == null ? void 0 : routerContextProps.basename) || basename
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
function WraperRouterProvider(props) {
|
|
49
|
+
const { router, ...propsRes } = props;
|
|
50
|
+
const routerContextProps = React.useContext(index.RouterContext) || {};
|
|
51
|
+
const routers = router.routes;
|
|
52
|
+
index.LoggerInstance.debug(`WraperRouterProvider info >>>`, {
|
|
53
|
+
...routerContextProps,
|
|
54
|
+
routerContextProps,
|
|
55
|
+
WraperRouterProviderProps: props,
|
|
56
|
+
router
|
|
57
|
+
});
|
|
58
|
+
const RouterProvider = ReactRouterDom__namespace["RouterProvider"];
|
|
59
|
+
const createMemoryRouter = ReactRouterDom__namespace["createMemoryRouter"];
|
|
60
|
+
const createBrowserRouter = ReactRouterDom__namespace["createBrowserRouter"];
|
|
61
|
+
if (routerContextProps.memoryRoute) {
|
|
62
|
+
const MemeoryRouterInstance = createMemoryRouter(routers, {
|
|
63
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
64
|
+
});
|
|
65
|
+
return /* @__PURE__ */ React.createElement(RouterProvider, { router: MemeoryRouterInstance });
|
|
66
|
+
} else {
|
|
67
|
+
const BrowserRouterInstance = createBrowserRouter(routers, {
|
|
68
|
+
// In host app, the routerContextProps is {}, so we should use router.basename as fallback
|
|
69
|
+
basename: routerContextProps.basename || router.basename,
|
|
70
|
+
future: router.future,
|
|
71
|
+
window: router.window
|
|
72
|
+
});
|
|
73
|
+
return /* @__PURE__ */ React.createElement(RouterProvider, { ...propsRes, router: BrowserRouterInstance });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.BrowserRouter = WraperRouter;
|
|
77
|
+
exports.RouterProvider = WraperRouterProvider;
|
|
78
|
+
Object.keys(ReactRouterDom).forEach((k) => {
|
|
79
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
get: () => ReactRouterDom[k]
|
|
82
|
+
});
|
|
83
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
import * as ReactRouterDom from 'react-router';
|
|
3
|
+
|
|
4
|
+
export declare function BrowserRouter(props: Parameters<typeof ReactRouterDom.BrowserRouter>[0] | Parameters<typeof ReactRouterDom.MemoryRouter>[0]): default_2.JSX.Element;
|
|
5
|
+
|
|
6
|
+
export declare function RouterProvider(props: Parameters<typeof ReactRouterDom.RouterProvider>[0]): default_2.JSX.Element;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
export * from "react-router";
|
|
10
|
+
|
|
11
|
+
export { }
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
declare module '@module-federation/runtime-core' {
|
|
15
|
+
interface ModuleFederation {
|
|
16
|
+
createLazyComponent<T, E extends keyof T>(options: Omit<CreateLazyComponentOptions<T, E>, 'instance'>): ReturnType<typeof createLazyComponent<T, E>>;
|
|
17
|
+
prefetch(options: Omit<PrefetchOptions, 'instance'>): ReturnType<typeof prefetch>;
|
|
18
|
+
collectSSRAssets(options: Omit<Parameters<typeof collectSSRAssets>[0], 'instance'>): ReturnType<typeof collectSSRAssets>;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React__default, { useContext } from "react";
|
|
2
|
+
import * as ReactRouterDom from 'react-router/dist/production/index.js';
|
|
3
|
+
export * from 'react-router/dist/production/index.js';
|
|
4
|
+
import { R as RouterContext, L as LoggerInstance } from "./index-DyQNwY2M.mjs";
|
|
5
|
+
function WraperRouter(props) {
|
|
6
|
+
const { basename, ...propsRes } = props;
|
|
7
|
+
const routerContextProps = useContext(RouterContext) || {};
|
|
8
|
+
LoggerInstance.debug(`WraperRouter info >>>`, {
|
|
9
|
+
...routerContextProps,
|
|
10
|
+
routerContextProps,
|
|
11
|
+
WraperRouterProps: props
|
|
12
|
+
});
|
|
13
|
+
if (routerContextProps == null ? void 0 : routerContextProps.memoryRoute) {
|
|
14
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
15
|
+
ReactRouterDom.MemoryRouter,
|
|
16
|
+
{
|
|
17
|
+
...props,
|
|
18
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
23
|
+
ReactRouterDom.BrowserRouter,
|
|
24
|
+
{
|
|
25
|
+
...propsRes,
|
|
26
|
+
basename: (routerContextProps == null ? void 0 : routerContextProps.basename) || basename
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
function WraperRouterProvider(props) {
|
|
31
|
+
const { router, ...propsRes } = props;
|
|
32
|
+
const routerContextProps = useContext(RouterContext) || {};
|
|
33
|
+
const routers = router.routes;
|
|
34
|
+
LoggerInstance.debug(`WraperRouterProvider info >>>`, {
|
|
35
|
+
...routerContextProps,
|
|
36
|
+
routerContextProps,
|
|
37
|
+
WraperRouterProviderProps: props,
|
|
38
|
+
router
|
|
39
|
+
});
|
|
40
|
+
const RouterProvider = ReactRouterDom["RouterProvider"];
|
|
41
|
+
const createMemoryRouter = ReactRouterDom["createMemoryRouter"];
|
|
42
|
+
const createBrowserRouter = ReactRouterDom["createBrowserRouter"];
|
|
43
|
+
if (routerContextProps.memoryRoute) {
|
|
44
|
+
const MemeoryRouterInstance = createMemoryRouter(routers, {
|
|
45
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
46
|
+
});
|
|
47
|
+
return /* @__PURE__ */ React__default.createElement(RouterProvider, { router: MemeoryRouterInstance });
|
|
48
|
+
} else {
|
|
49
|
+
const BrowserRouterInstance = createBrowserRouter(routers, {
|
|
50
|
+
// In host app, the routerContextProps is {}, so we should use router.basename as fallback
|
|
51
|
+
basename: routerContextProps.basename || router.basename,
|
|
52
|
+
future: router.future,
|
|
53
|
+
window: router.window
|
|
54
|
+
});
|
|
55
|
+
return /* @__PURE__ */ React__default.createElement(RouterProvider, { ...propsRes, router: BrowserRouterInstance });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export {
|
|
59
|
+
WraperRouter as BrowserRouter,
|
|
60
|
+
WraperRouterProvider as RouterProvider
|
|
61
|
+
};
|
package/dist/router.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const React = require("react");
|
|
4
4
|
const ReactRouterDom = require("react-router-dom/");
|
|
5
|
-
const index = require("./index-
|
|
5
|
+
const index = require("./index-DRSBaSu3.js");
|
|
6
6
|
function _interopNamespaceDefault(e) {
|
|
7
7
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
8
8
|
if (e) {
|
package/dist/router.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default, { useContext } from "react";
|
|
2
2
|
import * as ReactRouterDom from "react-router-dom/";
|
|
3
3
|
export * from "react-router-dom/";
|
|
4
|
-
import { R as RouterContext, L as LoggerInstance } from "./index-
|
|
4
|
+
import { R as RouterContext, L as LoggerInstance } from "./index-DyQNwY2M.mjs";
|
|
5
5
|
function WrapperRouter(props) {
|
|
6
6
|
const { basename, ...propsRes } = props;
|
|
7
7
|
const routerContextProps = useContext(RouterContext) || {};
|
|
@@ -18,7 +18,7 @@ var __privateWrapper = (obj, member, setter, getter) => ({
|
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
var _a, _constructing, _b, _c, _max, _maxSize, _dispose, _disposeAfter, _fetchMethod, _memoMethod, _size, _calculatedSize, _keyMap, _keyList, _valList, _next, _prev, _head, _tail, _free, _disposed, _sizes, _starts, _ttls, _hasDispose, _hasFetchMethod, _hasDisposeAfter, _LRUCache_instances, initializeTTLTracking_fn, _updateItemAge, _statusTTL, _setItemTTL, _isStale, initializeSizeTracking_fn, _removeItemSize, _addItemSize, _requireSize, indexes_fn, rindexes_fn, isValidIndex_fn, evict_fn, backgroundFetch_fn, isBackgroundFetch_fn, connect_fn, moveToTail_fn, delete_fn, clear_fn;
|
|
21
|
-
import { c as createLogger,
|
|
21
|
+
import { c as createLogger, d as isBrowserEnv, e as composeKeyWithSeparator } from "./index.esm-CPwSeCvw.mjs";
|
|
22
22
|
const PLUGIN_IDENTIFIER = "[ Module Federation React ]";
|
|
23
23
|
const DOWNGRADE_KEY = "_mfSSRDowngrade";
|
|
24
24
|
const DATA_FETCH_FUNCTION = "_mfDataFetch";
|
|
@@ -1987,14 +1987,14 @@ export {
|
|
|
1987
1987
|
flushDataFetch as J,
|
|
1988
1988
|
LOAD_REMOTE_ERROR_PREFIX as L,
|
|
1989
1989
|
MF_DATA_FETCH_STATUS as M,
|
|
1990
|
-
|
|
1991
|
-
|
|
1990
|
+
CacheTime as a,
|
|
1991
|
+
cache as b,
|
|
1992
1992
|
configureCache as c,
|
|
1993
|
-
|
|
1994
|
-
|
|
1993
|
+
clearStore as d,
|
|
1994
|
+
getDataFetchMap as e,
|
|
1995
1995
|
fetchData as f,
|
|
1996
|
-
|
|
1997
|
-
|
|
1996
|
+
generateKey as g,
|
|
1997
|
+
loadDataFetchModule as h,
|
|
1998
1998
|
initDataFetchMap as i,
|
|
1999
1999
|
isDataLoaderExpose as j,
|
|
2000
2000
|
getDataFetchInfo as k,
|
|
@@ -19,7 +19,7 @@ var __privateWrapper = (obj, member, setter, getter) => ({
|
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
var _a, _constructing, _b, _c, _max, _maxSize, _dispose, _disposeAfter, _fetchMethod, _memoMethod, _size, _calculatedSize, _keyMap, _keyList, _valList, _next, _prev, _head, _tail, _free, _disposed, _sizes, _starts, _ttls, _hasDispose, _hasFetchMethod, _hasDisposeAfter, _LRUCache_instances, initializeTTLTracking_fn, _updateItemAge, _statusTTL, _setItemTTL, _isStale, initializeSizeTracking_fn, _removeItemSize, _addItemSize, _requireSize, indexes_fn, rindexes_fn, isValidIndex_fn, evict_fn, backgroundFetch_fn, isBackgroundFetch_fn, connect_fn, moveToTail_fn, delete_fn, clear_fn;
|
|
22
|
-
const index_esm = require("./index.esm-
|
|
22
|
+
const index_esm = require("./index.esm-BWaKho-8.js");
|
|
23
23
|
const PLUGIN_IDENTIFIER = "[ Module Federation React ]";
|
|
24
24
|
const DOWNGRADE_KEY = "_mfSSRDowngrade";
|
|
25
25
|
const DATA_FETCH_FUNCTION = "_mfDataFetch";
|
package/dist/v18.cjs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const client = require("react-dom/client");
|
|
4
|
-
const bridgeBase = require("./bridge-base-
|
|
4
|
+
const bridgeBase = require("./bridge-base-RStDxH71.js");
|
|
5
5
|
function createReact18Root(container, options) {
|
|
6
6
|
return client.createRoot(container, options);
|
|
7
7
|
}
|
package/dist/v18.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRoot } from "react-dom/client";
|
|
2
|
-
import { c as createBaseBridgeComponent } from "./bridge-base-
|
|
2
|
+
import { c as createBaseBridgeComponent } from "./bridge-base-CPSTBjEp.mjs";
|
|
3
3
|
function createReact18Root(container, options) {
|
|
4
4
|
return createRoot(container, options);
|
|
5
5
|
}
|
package/dist/v19.cjs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const client = require("react-dom/client");
|
|
4
|
-
const bridgeBase = require("./bridge-base-
|
|
4
|
+
const bridgeBase = require("./bridge-base-RStDxH71.js");
|
|
5
5
|
function createReact19Root(container, options) {
|
|
6
6
|
return client.createRoot(container, options);
|
|
7
7
|
}
|
package/dist/v19.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRoot } from "react-dom/client";
|
|
2
|
-
import { c as createBaseBridgeComponent } from "./bridge-base-
|
|
2
|
+
import { c as createBaseBridgeComponent } from "./bridge-base-CPSTBjEp.mjs";
|
|
3
3
|
function createReact19Root(container, options) {
|
|
4
4
|
return createRoot(container, options);
|
|
5
5
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/bridge-react",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-perf-devtools-20260107043700",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -21,6 +21,11 @@
|
|
|
21
21
|
"import": "./dist/index.es.js",
|
|
22
22
|
"require": "./dist/index.cjs.js"
|
|
23
23
|
},
|
|
24
|
+
"./base": {
|
|
25
|
+
"types": "./dist/base.d.ts",
|
|
26
|
+
"import": "./dist/base.es.js",
|
|
27
|
+
"require": "./dist/base.cjs.js"
|
|
28
|
+
},
|
|
24
29
|
"./v18": {
|
|
25
30
|
"types": "./dist/v18.d.ts",
|
|
26
31
|
"import": "./dist/v18.es.js",
|
|
@@ -39,7 +44,7 @@
|
|
|
39
44
|
"./plugin": {
|
|
40
45
|
"types": "./dist/plugin.d.ts",
|
|
41
46
|
"import": "./dist/plugin.es.js",
|
|
42
|
-
"require": "./dist/plugin.
|
|
47
|
+
"require": "./dist/plugin.cjs.js"
|
|
43
48
|
},
|
|
44
49
|
"./router-v5": {
|
|
45
50
|
"types": "./dist/router-v5.d.ts",
|
|
@@ -51,6 +56,11 @@
|
|
|
51
56
|
"import": "./dist/router-v6.es.js",
|
|
52
57
|
"require": "./dist/router-v6.cjs.js"
|
|
53
58
|
},
|
|
59
|
+
"./router-v7": {
|
|
60
|
+
"types": "./dist/router-v7.d.ts",
|
|
61
|
+
"import": "./dist/router-v7.es.js",
|
|
62
|
+
"require": "./dist/router-v7.cjs.js"
|
|
63
|
+
},
|
|
54
64
|
"./lazy-utils": {
|
|
55
65
|
"types": "./dist/lazy-utils.d.ts",
|
|
56
66
|
"import": "./dist/lazy-utils.es.js",
|
|
@@ -76,7 +86,31 @@
|
|
|
76
86
|
"typesVersions": {
|
|
77
87
|
"*": {
|
|
78
88
|
".": [
|
|
79
|
-
"./dist/
|
|
89
|
+
"./dist/index.d.ts"
|
|
90
|
+
],
|
|
91
|
+
"base": [
|
|
92
|
+
"./dist/base.d.ts"
|
|
93
|
+
],
|
|
94
|
+
"v18": [
|
|
95
|
+
"./dist/v18.d.ts"
|
|
96
|
+
],
|
|
97
|
+
"v19": [
|
|
98
|
+
"./dist/v19.d.ts"
|
|
99
|
+
],
|
|
100
|
+
"router": [
|
|
101
|
+
"./dist/router.d.ts"
|
|
102
|
+
],
|
|
103
|
+
"plugin": [
|
|
104
|
+
"./dist/plugin.d.ts"
|
|
105
|
+
],
|
|
106
|
+
"router-v5": [
|
|
107
|
+
"./dist/router-v5.d.ts"
|
|
108
|
+
],
|
|
109
|
+
"router-v6": [
|
|
110
|
+
"./dist/router-v6.d.ts"
|
|
111
|
+
],
|
|
112
|
+
"router-v7": [
|
|
113
|
+
"./dist/router-v7.d.ts"
|
|
80
114
|
],
|
|
81
115
|
"lazy-load-component-plugin": [
|
|
82
116
|
"./dist/lazy-load-component-plugin.d.ts"
|
|
@@ -95,13 +129,22 @@
|
|
|
95
129
|
"dependencies": {
|
|
96
130
|
"react-error-boundary": "^4.1.2",
|
|
97
131
|
"lru-cache": "^10.4.3",
|
|
98
|
-
"@module-federation/bridge-shared": "0.0.0-
|
|
99
|
-
"@module-federation/sdk": "0.0.0-
|
|
132
|
+
"@module-federation/bridge-shared": "0.0.0-perf-devtools-20260107043700",
|
|
133
|
+
"@module-federation/sdk": "0.0.0-perf-devtools-20260107043700"
|
|
100
134
|
},
|
|
101
135
|
"peerDependencies": {
|
|
102
136
|
"react": ">=16.9.0",
|
|
103
137
|
"react-dom": ">=16.9.0",
|
|
104
|
-
"react-router-dom": "^4 || ^5 || ^6 || ^7"
|
|
138
|
+
"react-router-dom": "^4 || ^5 || ^6 || ^7",
|
|
139
|
+
"react-router": "^6 || ^7"
|
|
140
|
+
},
|
|
141
|
+
"peerDependenciesMeta": {
|
|
142
|
+
"react-router-dom": {
|
|
143
|
+
"optional": true
|
|
144
|
+
},
|
|
145
|
+
"react-router": {
|
|
146
|
+
"optional": true
|
|
147
|
+
}
|
|
105
148
|
},
|
|
106
149
|
"devDependencies": {
|
|
107
150
|
"@testing-library/react": "15.0.7",
|
|
@@ -114,12 +157,13 @@
|
|
|
114
157
|
"react": "18.3.1",
|
|
115
158
|
"react-dom": "18.3.1",
|
|
116
159
|
"react-router-dom": "6.22.3",
|
|
160
|
+
"react-router": "7.9.4",
|
|
117
161
|
"typescript": "^5.2.2",
|
|
118
|
-
"vite": "^5.4.
|
|
162
|
+
"vite": "^5.4.21",
|
|
119
163
|
"vite-plugin-dts": "^4.3.0",
|
|
120
|
-
"hono": "
|
|
121
|
-
"@module-federation/runtime-core": "0.0.0-
|
|
122
|
-
"@module-federation/runtime": "0.0.0-
|
|
164
|
+
"hono": "4.10.3",
|
|
165
|
+
"@module-federation/runtime-core": "0.0.0-perf-devtools-20260107043700",
|
|
166
|
+
"@module-federation/runtime": "0.0.0-perf-devtools-20260107043700"
|
|
123
167
|
},
|
|
124
168
|
"scripts": {
|
|
125
169
|
"dev": "vite",
|
package/src/base.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export { createBridgeComponent } from './provider/versions/legacy';
|
|
2
|
+
|
|
3
|
+
// Export router-free versions of remote component creators
|
|
4
|
+
export {
|
|
5
|
+
createRemoteComponent,
|
|
6
|
+
createRemoteAppComponent,
|
|
7
|
+
} from './remote/base-component';
|
|
8
|
+
export type { LazyRemoteComponentInfo } from './remote/base-component';
|
|
9
|
+
|
|
10
|
+
// Export all lazy loading and data fetching utilities (no router dependencies)
|
|
11
|
+
export {
|
|
12
|
+
ERROR_TYPE,
|
|
13
|
+
createLazyComponent,
|
|
14
|
+
collectSSRAssets,
|
|
15
|
+
callDataFetch,
|
|
16
|
+
setSSREnv,
|
|
17
|
+
autoFetchDataPlugin,
|
|
18
|
+
CacheSize,
|
|
19
|
+
CacheTime,
|
|
20
|
+
configureCache,
|
|
21
|
+
generateKey,
|
|
22
|
+
cache,
|
|
23
|
+
revalidateTag,
|
|
24
|
+
clearStore,
|
|
25
|
+
prefetch,
|
|
26
|
+
} from './lazy';
|
|
27
|
+
|
|
28
|
+
export { lazyLoadComponentPlugin } from './plugins/lazy-load-component-plugin';
|
|
29
|
+
|
|
30
|
+
// Export all types
|
|
31
|
+
export type { CreateRootOptions, Root } from './provider/versions/legacy';
|
|
32
|
+
export type {
|
|
33
|
+
ProviderParams,
|
|
34
|
+
ProviderFnParams,
|
|
35
|
+
RootType,
|
|
36
|
+
DestroyParams,
|
|
37
|
+
RenderParams,
|
|
38
|
+
RemoteComponentParams,
|
|
39
|
+
RenderFnParams,
|
|
40
|
+
RemoteComponentProps,
|
|
41
|
+
RemoteModule,
|
|
42
|
+
} from './types';
|
|
43
|
+
export type {
|
|
44
|
+
DataFetchParams,
|
|
45
|
+
NoSSRRemoteInfo,
|
|
46
|
+
CollectSSRAssetsOptions,
|
|
47
|
+
CreateLazyComponentOptions,
|
|
48
|
+
CacheStatus,
|
|
49
|
+
CacheStatsInfo,
|
|
50
|
+
} from './lazy';
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,8 @@ export { createBridgeComponent } from './provider/versions/legacy';
|
|
|
6
6
|
export {
|
|
7
7
|
createRemoteComponent,
|
|
8
8
|
createRemoteAppComponent,
|
|
9
|
-
} from './remote/
|
|
9
|
+
} from './remote/router-component';
|
|
10
|
+
export type { LazyRemoteComponentInfo } from './remote/router-component';
|
|
10
11
|
export {
|
|
11
12
|
ERROR_TYPE,
|
|
12
13
|
createLazyComponent,
|
|
@@ -34,6 +35,10 @@ export type {
|
|
|
34
35
|
RootType,
|
|
35
36
|
DestroyParams,
|
|
36
37
|
RenderParams,
|
|
38
|
+
RemoteComponentParams,
|
|
39
|
+
RenderFnParams,
|
|
40
|
+
RemoteComponentProps,
|
|
41
|
+
RemoteModule,
|
|
37
42
|
} from './types';
|
|
38
43
|
export type {
|
|
39
44
|
DataFetchParams,
|
|
@@ -43,6 +43,38 @@ export function createBaseBridgeComponent<T>({
|
|
|
43
43
|
);
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
+
const DefaultFallback = ({ error }: FallbackProps) => (
|
|
47
|
+
<div role="alert">
|
|
48
|
+
<p>Something went wrong:</p>
|
|
49
|
+
<pre style={{ color: 'red' }}>{error.message}</pre>
|
|
50
|
+
</div>
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
const BridgeWrapper = ({
|
|
54
|
+
basename,
|
|
55
|
+
moduleName,
|
|
56
|
+
memoryRoute,
|
|
57
|
+
propsInfo,
|
|
58
|
+
fallback,
|
|
59
|
+
}: {
|
|
60
|
+
basename?: string;
|
|
61
|
+
moduleName?: string;
|
|
62
|
+
memoryRoute?: any;
|
|
63
|
+
propsInfo: T;
|
|
64
|
+
fallback?: React.ComponentType<FallbackProps>;
|
|
65
|
+
}) => (
|
|
66
|
+
<ErrorBoundary FallbackComponent={fallback || DefaultFallback}>
|
|
67
|
+
<RawComponent
|
|
68
|
+
appInfo={{
|
|
69
|
+
moduleName,
|
|
70
|
+
basename,
|
|
71
|
+
memoryRoute,
|
|
72
|
+
}}
|
|
73
|
+
propsInfo={propsInfo}
|
|
74
|
+
/>
|
|
75
|
+
</ErrorBoundary>
|
|
76
|
+
);
|
|
77
|
+
|
|
46
78
|
return {
|
|
47
79
|
async render(info: RenderParams) {
|
|
48
80
|
LoggerInstance.debug(`createBridgeComponent render Info`, info);
|
|
@@ -65,23 +97,19 @@ export function createBaseBridgeComponent<T>({
|
|
|
65
97
|
instance?.bridgeHook?.lifecycle?.beforeBridgeRender?.emit(info) || {};
|
|
66
98
|
|
|
67
99
|
const rootComponentWithErrorBoundary = (
|
|
68
|
-
<
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
100
|
+
<BridgeWrapper
|
|
101
|
+
basename={basename}
|
|
102
|
+
moduleName={moduleName}
|
|
103
|
+
memoryRoute={memoryRoute}
|
|
104
|
+
fallback={fallback as React.ComponentType<FallbackProps>}
|
|
105
|
+
propsInfo={
|
|
106
|
+
{
|
|
107
|
+
...propsInfo,
|
|
74
108
|
basename,
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
...propsInfo,
|
|
80
|
-
...(beforeBridgeRenderRes as any)?.extraProps,
|
|
81
|
-
} as T
|
|
82
|
-
}
|
|
83
|
-
/>
|
|
84
|
-
</ErrorBoundary>
|
|
109
|
+
...(beforeBridgeRenderRes as any)?.extraProps,
|
|
110
|
+
} as T
|
|
111
|
+
}
|
|
112
|
+
/>
|
|
85
113
|
);
|
|
86
114
|
|
|
87
115
|
if (bridgeInfo.render) {
|
|
@@ -111,7 +139,7 @@ export function createBaseBridgeComponent<T>({
|
|
|
111
139
|
if ('unmount' in root) {
|
|
112
140
|
root.unmount();
|
|
113
141
|
} else {
|
|
114
|
-
|
|
142
|
+
LoggerInstance.warn('Root does not have unmount method');
|
|
115
143
|
}
|
|
116
144
|
rootMap.delete(dom);
|
|
117
145
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type { ProviderFnParams } from '../../types';
|
|
6
6
|
import { createBaseBridgeComponent } from './bridge-base';
|
|
7
7
|
import ReactDOM from 'react-dom';
|
|
8
|
+
import { LoggerInstance } from '../../utils';
|
|
8
9
|
|
|
9
10
|
export interface CreateRootOptions {
|
|
10
11
|
identifierPrefix?: string;
|
|
@@ -58,7 +59,7 @@ export function createReact16Or17Root(
|
|
|
58
59
|
* Provide warning for React 18
|
|
59
60
|
*/
|
|
60
61
|
if (isReact18) {
|
|
61
|
-
|
|
62
|
+
LoggerInstance.warn(
|
|
62
63
|
`[Bridge-React] React 18 detected in legacy mode. ` +
|
|
63
64
|
`For better compatibility, please use the version-specific import: ` +
|
|
64
65
|
`import { createBridgeComponent } from '@module-federation/bridge-react/v18'`,
|