@module-federation/bridge-react 0.0.0-next-20240731082143 → 0.0.0-next-20240731105745
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 +4 -2
- package/__tests__/bridge.spec.tsx +75 -4
- package/__tests__/util.ts +18 -0
- package/dist/index.cjs.js +129 -74
- package/dist/index.d.ts +15 -7
- package/dist/index.es.js +131 -76
- package/dist/router-v5.cjs.js +80 -0
- package/dist/router-v5.d.ts +8 -0
- package/dist/router-v5.es.js +63 -0
- package/dist/router-v6.cjs.js +87 -0
- package/dist/router-v6.d.ts +11 -0
- package/dist/router-v6.es.js +64 -0
- package/package.json +12 -2
- package/src/create.tsx +25 -25
- package/src/provider.tsx +45 -23
- package/src/remote/index.tsx +96 -54
- package/src/router-v5.tsx +78 -0
- package/src/router-v6.tsx +76 -0
- package/src/router.tsx +2 -0
- package/vite.config.ts +4 -0
package/dist/index.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import React__default, { createContext, Component, createElement, isValidElement,
|
|
3
|
-
import {
|
|
2
|
+
import React__default, { createContext, Component, createElement, isValidElement, forwardRef, useRef, useEffect, useContext, useState } from "react";
|
|
3
|
+
import { L as LoggerInstance, p as pathJoin, f, a as atLeastReact18, R as RouterContext } from "./context-Bw2PEwa6.js";
|
|
4
4
|
import * as ReactRouterDOM from "react-router-dom";
|
|
5
5
|
import ReactDOM from "react-dom";
|
|
6
6
|
const ErrorBoundaryContext = createContext(null);
|
|
@@ -98,55 +98,79 @@ function hasArrayChanged() {
|
|
|
98
98
|
let b = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
99
99
|
return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));
|
|
100
100
|
}
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
return () => {
|
|
130
|
-
clearTimeout(renderTimeout);
|
|
131
|
-
setTimeout(() => {
|
|
132
|
-
var _a, _b;
|
|
133
|
-
if ((_a = providerInfoRef.current) == null ? void 0 : _a.destroy) {
|
|
134
|
-
LoggerInstance.log(
|
|
135
|
-
`createRemoteComponent LazyComponent destroy >>>`,
|
|
136
|
-
{ name, basename, dom: renderDom.current }
|
|
137
|
-
);
|
|
138
|
-
(_b = providerInfoRef.current) == null ? void 0 : _b.destroy({
|
|
139
|
-
dom: renderDom.current
|
|
140
|
-
});
|
|
101
|
+
const RemoteAppWrapper = forwardRef(function(props, ref) {
|
|
102
|
+
const RemoteApp2 = () => {
|
|
103
|
+
const {
|
|
104
|
+
name,
|
|
105
|
+
memoryRoute,
|
|
106
|
+
basename,
|
|
107
|
+
providerInfo,
|
|
108
|
+
dom,
|
|
109
|
+
className,
|
|
110
|
+
style,
|
|
111
|
+
...resProps
|
|
112
|
+
} = props;
|
|
113
|
+
const rootRef = ref && "current" in ref ? ref : useRef(null);
|
|
114
|
+
const renderDom = useRef(null);
|
|
115
|
+
const providerInfoRef = useRef(null);
|
|
116
|
+
useEffect(() => {
|
|
117
|
+
const renderTimeout = setTimeout(() => {
|
|
118
|
+
const providerReturn = providerInfo();
|
|
119
|
+
providerInfoRef.current = providerReturn;
|
|
120
|
+
let domElement = null;
|
|
121
|
+
if (dom) {
|
|
122
|
+
domElement = document.querySelector(dom);
|
|
123
|
+
if (!domElement || !(domElement instanceof HTMLElement)) {
|
|
124
|
+
throw new Error(`Invalid dom: ${dom}`);
|
|
125
|
+
}
|
|
126
|
+
rootRef.current = domElement;
|
|
127
|
+
} else {
|
|
128
|
+
domElement = rootRef.current;
|
|
141
129
|
}
|
|
130
|
+
const renderProps = {
|
|
131
|
+
name,
|
|
132
|
+
dom: domElement,
|
|
133
|
+
basename,
|
|
134
|
+
memoryRoute,
|
|
135
|
+
...resProps
|
|
136
|
+
};
|
|
137
|
+
renderDom.current = rootRef.current;
|
|
138
|
+
LoggerInstance.log(
|
|
139
|
+
`createRemoteComponent LazyComponent render >>>`,
|
|
140
|
+
renderProps
|
|
141
|
+
);
|
|
142
|
+
providerReturn.render(renderProps);
|
|
142
143
|
});
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
return () => {
|
|
145
|
+
clearTimeout(renderTimeout);
|
|
146
|
+
setTimeout(() => {
|
|
147
|
+
var _a, _b;
|
|
148
|
+
if ((_a = providerInfoRef.current) == null ? void 0 : _a.destroy) {
|
|
149
|
+
LoggerInstance.log(
|
|
150
|
+
`createRemoteComponent LazyComponent destroy >>>`,
|
|
151
|
+
{ name, basename, dom: renderDom.current }
|
|
152
|
+
);
|
|
153
|
+
(_b = providerInfoRef.current) == null ? void 0 : _b.destroy({
|
|
154
|
+
dom: renderDom.current
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
}, []);
|
|
160
|
+
return dom ? null : /* @__PURE__ */ React__default.createElement(
|
|
161
|
+
"div",
|
|
162
|
+
{
|
|
163
|
+
className: props == null ? void 0 : props.className,
|
|
164
|
+
style: props == null ? void 0 : props.style,
|
|
165
|
+
ref: rootRef
|
|
166
|
+
}
|
|
167
|
+
);
|
|
168
|
+
};
|
|
169
|
+
RemoteApp2["__APP_VERSION__"] = "0.3.3";
|
|
170
|
+
return /* @__PURE__ */ React__default.createElement(RemoteApp2, null);
|
|
171
|
+
});
|
|
148
172
|
function withRouterData(WrappedComponent) {
|
|
149
|
-
|
|
173
|
+
const Component2 = forwardRef(function(props, ref) {
|
|
150
174
|
var _a;
|
|
151
175
|
let enableDispathPopstate = false;
|
|
152
176
|
let routerContextVal;
|
|
@@ -204,10 +228,13 @@ function withRouterData(WrappedComponent) {
|
|
|
204
228
|
setPathname(location.pathname);
|
|
205
229
|
}, [location]);
|
|
206
230
|
}
|
|
207
|
-
return /* @__PURE__ */ React__default.createElement(WrappedComponent, { ...props, basename });
|
|
208
|
-
};
|
|
231
|
+
return /* @__PURE__ */ React__default.createElement(WrappedComponent, { ...props, basename, ref });
|
|
232
|
+
});
|
|
233
|
+
return forwardRef(function(props, ref) {
|
|
234
|
+
return /* @__PURE__ */ React__default.createElement(Component2, { ...props, ref });
|
|
235
|
+
});
|
|
209
236
|
}
|
|
210
|
-
const RemoteApp
|
|
237
|
+
const RemoteApp = withRouterData(RemoteAppWrapper);
|
|
211
238
|
function createLazyRemoteComponent(info) {
|
|
212
239
|
const exportName = (info == null ? void 0 : info.export) || "default";
|
|
213
240
|
return React__default.lazy(async () => {
|
|
@@ -224,13 +251,14 @@ function createLazyRemoteComponent(info) {
|
|
|
224
251
|
);
|
|
225
252
|
const exportFn = m2[exportName];
|
|
226
253
|
if (exportName in m2 && typeof exportFn === "function") {
|
|
227
|
-
const RemoteAppComponent = forwardRef((props,
|
|
254
|
+
const RemoteAppComponent = forwardRef((props, ref) => {
|
|
228
255
|
return /* @__PURE__ */ React__default.createElement(
|
|
229
|
-
RemoteApp
|
|
256
|
+
RemoteApp,
|
|
230
257
|
{
|
|
231
258
|
name: moduleName,
|
|
232
259
|
providerInfo: exportFn,
|
|
233
260
|
exportName: info.export || "default",
|
|
261
|
+
ref,
|
|
234
262
|
...props
|
|
235
263
|
}
|
|
236
264
|
);
|
|
@@ -255,10 +283,10 @@ function createLazyRemoteComponent(info) {
|
|
|
255
283
|
});
|
|
256
284
|
}
|
|
257
285
|
function createRemoteComponent(info) {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return /* @__PURE__ */ React__default.createElement(ErrorBoundary, { FallbackComponent: info.fallback }, /* @__PURE__ */ React__default.createElement(React__default.Suspense, { fallback: info.loading }, /* @__PURE__ */ React__default.createElement(LazyComponent, { ...props })));
|
|
261
|
-
};
|
|
286
|
+
return forwardRef(function(props, ref) {
|
|
287
|
+
const LazyComponent = createLazyRemoteComponent(info);
|
|
288
|
+
return /* @__PURE__ */ React__default.createElement(ErrorBoundary, { FallbackComponent: info.fallback }, /* @__PURE__ */ React__default.createElement(React__default.Suspense, { fallback: info.loading }, /* @__PURE__ */ React__default.createElement(LazyComponent, { ...props, dom: info == null ? void 0 : info.dom, ref })));
|
|
289
|
+
});
|
|
262
290
|
}
|
|
263
291
|
var client = {};
|
|
264
292
|
var m = ReactDOM;
|
|
@@ -288,32 +316,59 @@ function createBridgeComponent(bridgeInfo) {
|
|
|
288
316
|
return () => {
|
|
289
317
|
const rootMap = /* @__PURE__ */ new Map();
|
|
290
318
|
const RawComponent = (info) => {
|
|
291
|
-
const { appInfo, propsInfo } = info;
|
|
319
|
+
const { appInfo, propsInfo, ...restProps } = info;
|
|
292
320
|
const { name, memoryRoute, basename = "/" } = appInfo;
|
|
293
|
-
return /* @__PURE__ */ React.createElement(RouterContext.Provider, { value: { name, basename, memoryRoute } }, /* @__PURE__ */ React.createElement(
|
|
321
|
+
return /* @__PURE__ */ React.createElement(RouterContext.Provider, { value: { name, basename, memoryRoute } }, /* @__PURE__ */ React.createElement(
|
|
322
|
+
bridgeInfo.rootComponent,
|
|
323
|
+
{
|
|
324
|
+
...propsInfo,
|
|
325
|
+
basename,
|
|
326
|
+
...restProps
|
|
327
|
+
}
|
|
328
|
+
));
|
|
294
329
|
};
|
|
295
330
|
return {
|
|
296
|
-
render(info) {
|
|
331
|
+
async render(info) {
|
|
297
332
|
LoggerInstance.log(`createBridgeComponent render Info`, info);
|
|
298
333
|
const { name, basename, memoryRoute, ...propsInfo } = info;
|
|
299
334
|
if (atLeastReact18(React)) {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
335
|
+
if (bridgeInfo == null ? void 0 : bridgeInfo.render) {
|
|
336
|
+
Promise.resolve(
|
|
337
|
+
bridgeInfo == null ? void 0 : bridgeInfo.render(
|
|
338
|
+
/* @__PURE__ */ React.createElement(
|
|
339
|
+
RawComponent,
|
|
340
|
+
{
|
|
341
|
+
propsInfo,
|
|
342
|
+
appInfo: {
|
|
343
|
+
name,
|
|
344
|
+
basename,
|
|
345
|
+
memoryRoute
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
),
|
|
349
|
+
info.dom
|
|
350
|
+
)
|
|
351
|
+
).then((root) => rootMap.set(info.dom, root));
|
|
352
|
+
} else {
|
|
353
|
+
const root = client.createRoot(info.dom);
|
|
354
|
+
root.render(
|
|
355
|
+
/* @__PURE__ */ React.createElement(
|
|
356
|
+
RawComponent,
|
|
357
|
+
{
|
|
358
|
+
propsInfo,
|
|
359
|
+
appInfo: {
|
|
360
|
+
name,
|
|
361
|
+
basename,
|
|
362
|
+
memoryRoute
|
|
363
|
+
}
|
|
311
364
|
}
|
|
312
|
-
|
|
313
|
-
)
|
|
314
|
-
|
|
365
|
+
)
|
|
366
|
+
);
|
|
367
|
+
rootMap.set(info.dom, root);
|
|
368
|
+
}
|
|
315
369
|
} else {
|
|
316
|
-
ReactDOM.render
|
|
370
|
+
const renderFunc = (bridgeInfo == null ? void 0 : bridgeInfo.render) || ReactDOM.render;
|
|
371
|
+
renderFunc(
|
|
317
372
|
/* @__PURE__ */ React.createElement(
|
|
318
373
|
RawComponent,
|
|
319
374
|
{
|
|
@@ -329,7 +384,7 @@ function createBridgeComponent(bridgeInfo) {
|
|
|
329
384
|
);
|
|
330
385
|
}
|
|
331
386
|
},
|
|
332
|
-
destroy(info) {
|
|
387
|
+
async destroy(info) {
|
|
333
388
|
LoggerInstance.log(`createBridgeComponent destroy Info`, {
|
|
334
389
|
dom: info.dom
|
|
335
390
|
});
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const React = require("react");
|
|
4
|
+
const ReactRouterDom = require("react-router-dom/index.js");
|
|
5
|
+
const context = require("./context--mtFt3tp.cjs");
|
|
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(context.RouterContext) || {};
|
|
26
|
+
context.LoggerInstance.log(`WraperRouter info >>>`, {
|
|
27
|
+
...routerContextProps,
|
|
28
|
+
routerContextProps,
|
|
29
|
+
WraperRouterProps: props
|
|
30
|
+
});
|
|
31
|
+
if (!routerContextProps)
|
|
32
|
+
return /* @__PURE__ */ React.createElement(ReactRouterDom__namespace.BrowserRouter, { ...props });
|
|
33
|
+
if (routerContextProps == null ? void 0 : routerContextProps.memoryRoute) {
|
|
34
|
+
return /* @__PURE__ */ React.createElement(
|
|
35
|
+
ReactRouterDom__namespace.MemoryRouter,
|
|
36
|
+
{
|
|
37
|
+
...props,
|
|
38
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
return /* @__PURE__ */ React.createElement(
|
|
43
|
+
ReactRouterDom__namespace.BrowserRouter,
|
|
44
|
+
{
|
|
45
|
+
...propsRes,
|
|
46
|
+
basename: (routerContextProps == null ? void 0 : routerContextProps.basename) || basename
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
function WraperRouterProvider(props) {
|
|
51
|
+
const { router, ...propsRes } = props;
|
|
52
|
+
const routerContextProps = React.useContext(context.RouterContext) || {};
|
|
53
|
+
const routers = router.routes;
|
|
54
|
+
context.LoggerInstance.log(`WraperRouterProvider info >>>`, {
|
|
55
|
+
...routerContextProps,
|
|
56
|
+
routerContextProps,
|
|
57
|
+
WraperRouterProviderProps: props,
|
|
58
|
+
router
|
|
59
|
+
});
|
|
60
|
+
const RouterProvider = ReactRouterDom__namespace["RouterProvider"];
|
|
61
|
+
const createMemoryRouter = ReactRouterDom__namespace["createMemoryRouter"];
|
|
62
|
+
const createBrowserRouter = ReactRouterDom__namespace["createBrowserRouter"];
|
|
63
|
+
if (!routerContextProps)
|
|
64
|
+
return /* @__PURE__ */ React.createElement(RouterProvider, { ...props });
|
|
65
|
+
if (routerContextProps.memoryRoute) {
|
|
66
|
+
const MemeoryRouterInstance = createMemoryRouter(routers, {
|
|
67
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
68
|
+
});
|
|
69
|
+
return /* @__PURE__ */ React.createElement(RouterProvider, { router: MemeoryRouterInstance });
|
|
70
|
+
} else {
|
|
71
|
+
const BrowserRouterInstance = createBrowserRouter(routers, {
|
|
72
|
+
basename: routerContextProps.basename,
|
|
73
|
+
future: router.future,
|
|
74
|
+
window: router.window
|
|
75
|
+
});
|
|
76
|
+
return /* @__PURE__ */ React.createElement(RouterProvider, { ...propsRes, router: BrowserRouterInstance });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.BrowserRouter = WraperRouter;
|
|
80
|
+
exports.RouterProvider = WraperRouterProvider;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
import * as ReactRouterDom from 'react-router-dom/index.js';
|
|
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
|
+
export { }
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React__default, { useContext } from "react";
|
|
2
|
+
import * as ReactRouterDom from "react-router-dom/index.js";
|
|
3
|
+
import { R as RouterContext, L as LoggerInstance } from "./context-Bw2PEwa6.js";
|
|
4
|
+
function WraperRouter(props) {
|
|
5
|
+
const { basename, ...propsRes } = props;
|
|
6
|
+
const routerContextProps = useContext(RouterContext) || {};
|
|
7
|
+
LoggerInstance.log(`WraperRouter info >>>`, {
|
|
8
|
+
...routerContextProps,
|
|
9
|
+
routerContextProps,
|
|
10
|
+
WraperRouterProps: props
|
|
11
|
+
});
|
|
12
|
+
if (!routerContextProps)
|
|
13
|
+
return /* @__PURE__ */ React__default.createElement(ReactRouterDom.BrowserRouter, { ...props });
|
|
14
|
+
if (routerContextProps == null ? void 0 : routerContextProps.memoryRoute) {
|
|
15
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
16
|
+
ReactRouterDom.MemoryRouter,
|
|
17
|
+
{
|
|
18
|
+
...props,
|
|
19
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
24
|
+
ReactRouterDom.BrowserRouter,
|
|
25
|
+
{
|
|
26
|
+
...propsRes,
|
|
27
|
+
basename: (routerContextProps == null ? void 0 : routerContextProps.basename) || basename
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
function WraperRouterProvider(props) {
|
|
32
|
+
const { router, ...propsRes } = props;
|
|
33
|
+
const routerContextProps = useContext(RouterContext) || {};
|
|
34
|
+
const routers = router.routes;
|
|
35
|
+
LoggerInstance.log(`WraperRouterProvider info >>>`, {
|
|
36
|
+
...routerContextProps,
|
|
37
|
+
routerContextProps,
|
|
38
|
+
WraperRouterProviderProps: props,
|
|
39
|
+
router
|
|
40
|
+
});
|
|
41
|
+
const RouterProvider = ReactRouterDom["RouterProvider"];
|
|
42
|
+
const createMemoryRouter = ReactRouterDom["createMemoryRouter"];
|
|
43
|
+
const createBrowserRouter = ReactRouterDom["createBrowserRouter"];
|
|
44
|
+
if (!routerContextProps)
|
|
45
|
+
return /* @__PURE__ */ React__default.createElement(RouterProvider, { ...props });
|
|
46
|
+
if (routerContextProps.memoryRoute) {
|
|
47
|
+
const MemeoryRouterInstance = createMemoryRouter(routers, {
|
|
48
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
49
|
+
});
|
|
50
|
+
return /* @__PURE__ */ React__default.createElement(RouterProvider, { router: MemeoryRouterInstance });
|
|
51
|
+
} else {
|
|
52
|
+
const BrowserRouterInstance = createBrowserRouter(routers, {
|
|
53
|
+
basename: routerContextProps.basename,
|
|
54
|
+
future: router.future,
|
|
55
|
+
window: router.window
|
|
56
|
+
});
|
|
57
|
+
return /* @__PURE__ */ React__default.createElement(RouterProvider, { ...propsRes, router: BrowserRouterInstance });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
WraperRouter as BrowserRouter,
|
|
62
|
+
WraperRouterProvider as RouterProvider
|
|
63
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const React = require("react");
|
|
4
|
+
const ReactRouterDom = require("react-router-dom/dist/index.js");
|
|
5
|
+
const context = require("./context--mtFt3tp.cjs");
|
|
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(context.RouterContext) || {};
|
|
26
|
+
context.LoggerInstance.log(`WraperRouter info >>>`, {
|
|
27
|
+
...routerContextProps,
|
|
28
|
+
routerContextProps,
|
|
29
|
+
WraperRouterProps: props
|
|
30
|
+
});
|
|
31
|
+
if (!routerContextProps)
|
|
32
|
+
return /* @__PURE__ */ React.createElement(ReactRouterDom__namespace.BrowserRouter, { ...props });
|
|
33
|
+
if (routerContextProps == null ? void 0 : routerContextProps.memoryRoute) {
|
|
34
|
+
return /* @__PURE__ */ React.createElement(
|
|
35
|
+
ReactRouterDom__namespace.MemoryRouter,
|
|
36
|
+
{
|
|
37
|
+
...props,
|
|
38
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
return /* @__PURE__ */ React.createElement(
|
|
43
|
+
ReactRouterDom__namespace.BrowserRouter,
|
|
44
|
+
{
|
|
45
|
+
...propsRes,
|
|
46
|
+
basename: (routerContextProps == null ? void 0 : routerContextProps.basename) || basename
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
function WraperRouterProvider(props) {
|
|
51
|
+
const { router, ...propsRes } = props;
|
|
52
|
+
const routerContextProps = React.useContext(context.RouterContext) || {};
|
|
53
|
+
const routers = router.routes;
|
|
54
|
+
context.LoggerInstance.log(`WraperRouterProvider info >>>`, {
|
|
55
|
+
...routerContextProps,
|
|
56
|
+
routerContextProps,
|
|
57
|
+
WraperRouterProviderProps: props,
|
|
58
|
+
router
|
|
59
|
+
});
|
|
60
|
+
const RouterProvider = ReactRouterDom__namespace["RouterProvider"];
|
|
61
|
+
const createMemoryRouter = ReactRouterDom__namespace["createMemoryRouter"];
|
|
62
|
+
const createBrowserRouter = ReactRouterDom__namespace["createBrowserRouter"];
|
|
63
|
+
if (!routerContextProps)
|
|
64
|
+
return /* @__PURE__ */ React.createElement(RouterProvider, { ...props });
|
|
65
|
+
if (routerContextProps.memoryRoute) {
|
|
66
|
+
const MemeoryRouterInstance = createMemoryRouter(routers, {
|
|
67
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
68
|
+
});
|
|
69
|
+
return /* @__PURE__ */ React.createElement(RouterProvider, { router: MemeoryRouterInstance });
|
|
70
|
+
} else {
|
|
71
|
+
const BrowserRouterInstance = createBrowserRouter(routers, {
|
|
72
|
+
basename: routerContextProps.basename,
|
|
73
|
+
future: router.future,
|
|
74
|
+
window: router.window
|
|
75
|
+
});
|
|
76
|
+
return /* @__PURE__ */ React.createElement(RouterProvider, { ...propsRes, router: BrowserRouterInstance });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.BrowserRouter = WraperRouter;
|
|
80
|
+
exports.RouterProvider = WraperRouterProvider;
|
|
81
|
+
Object.keys(ReactRouterDom).forEach((k) => {
|
|
82
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k))
|
|
83
|
+
Object.defineProperty(exports, k, {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
get: () => ReactRouterDom[k]
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
import * as ReactRouterDom from 'react-router-dom/dist/index.js';
|
|
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-dom/dist/index.js";
|
|
10
|
+
|
|
11
|
+
export { }
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React__default, { useContext } from "react";
|
|
2
|
+
import * as ReactRouterDom from "react-router-dom/dist/index.js";
|
|
3
|
+
export * from "react-router-dom/dist/index.js";
|
|
4
|
+
import { R as RouterContext, L as LoggerInstance } from "./context-Bw2PEwa6.js";
|
|
5
|
+
function WraperRouter(props) {
|
|
6
|
+
const { basename, ...propsRes } = props;
|
|
7
|
+
const routerContextProps = useContext(RouterContext) || {};
|
|
8
|
+
LoggerInstance.log(`WraperRouter info >>>`, {
|
|
9
|
+
...routerContextProps,
|
|
10
|
+
routerContextProps,
|
|
11
|
+
WraperRouterProps: props
|
|
12
|
+
});
|
|
13
|
+
if (!routerContextProps)
|
|
14
|
+
return /* @__PURE__ */ React__default.createElement(ReactRouterDom.BrowserRouter, { ...props });
|
|
15
|
+
if (routerContextProps == null ? void 0 : routerContextProps.memoryRoute) {
|
|
16
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
17
|
+
ReactRouterDom.MemoryRouter,
|
|
18
|
+
{
|
|
19
|
+
...props,
|
|
20
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
25
|
+
ReactRouterDom.BrowserRouter,
|
|
26
|
+
{
|
|
27
|
+
...propsRes,
|
|
28
|
+
basename: (routerContextProps == null ? void 0 : routerContextProps.basename) || basename
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
function WraperRouterProvider(props) {
|
|
33
|
+
const { router, ...propsRes } = props;
|
|
34
|
+
const routerContextProps = useContext(RouterContext) || {};
|
|
35
|
+
const routers = router.routes;
|
|
36
|
+
LoggerInstance.log(`WraperRouterProvider info >>>`, {
|
|
37
|
+
...routerContextProps,
|
|
38
|
+
routerContextProps,
|
|
39
|
+
WraperRouterProviderProps: props,
|
|
40
|
+
router
|
|
41
|
+
});
|
|
42
|
+
const RouterProvider = ReactRouterDom["RouterProvider"];
|
|
43
|
+
const createMemoryRouter = ReactRouterDom["createMemoryRouter"];
|
|
44
|
+
const createBrowserRouter = ReactRouterDom["createBrowserRouter"];
|
|
45
|
+
if (!routerContextProps)
|
|
46
|
+
return /* @__PURE__ */ React__default.createElement(RouterProvider, { ...props });
|
|
47
|
+
if (routerContextProps.memoryRoute) {
|
|
48
|
+
const MemeoryRouterInstance = createMemoryRouter(routers, {
|
|
49
|
+
initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
|
|
50
|
+
});
|
|
51
|
+
return /* @__PURE__ */ React__default.createElement(RouterProvider, { router: MemeoryRouterInstance });
|
|
52
|
+
} else {
|
|
53
|
+
const BrowserRouterInstance = createBrowserRouter(routers, {
|
|
54
|
+
basename: routerContextProps.basename,
|
|
55
|
+
future: router.future,
|
|
56
|
+
window: router.window
|
|
57
|
+
});
|
|
58
|
+
return /* @__PURE__ */ React__default.createElement(RouterProvider, { ...propsRes, router: BrowserRouterInstance });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
WraperRouter as BrowserRouter,
|
|
63
|
+
WraperRouterProvider as RouterProvider
|
|
64
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/bridge-react",
|
|
3
|
-
"version": "0.0.0-next-
|
|
3
|
+
"version": "0.0.0-next-20240731105745",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -20,12 +20,22 @@
|
|
|
20
20
|
"import": "./dist/router.es.js",
|
|
21
21
|
"require": "./dist/router.cjs.js"
|
|
22
22
|
},
|
|
23
|
+
"./router-v5": {
|
|
24
|
+
"types": "./dist/router-v5.d.ts",
|
|
25
|
+
"import": "./dist/router-v5.es.js",
|
|
26
|
+
"require": "./dist/router-v5.cjs.js"
|
|
27
|
+
},
|
|
28
|
+
"./router-v6": {
|
|
29
|
+
"types": "./dist/router-v6.d.ts",
|
|
30
|
+
"import": "./dist/router-v6.es.js",
|
|
31
|
+
"require": "./dist/router-v6.cjs.js"
|
|
32
|
+
},
|
|
23
33
|
"./*": "./*"
|
|
24
34
|
},
|
|
25
35
|
"dependencies": {
|
|
26
36
|
"@loadable/component": "^5.16.4",
|
|
27
37
|
"react-error-boundary": "^4.0.13",
|
|
28
|
-
"@module-federation/bridge-shared": "0.0.0-next-
|
|
38
|
+
"@module-federation/bridge-shared": "0.0.0-next-20240731105745"
|
|
29
39
|
},
|
|
30
40
|
"peerDependencies": {
|
|
31
41
|
"react": ">=16.9.0",
|