@module-federation/bridge-react 0.5.0 → 0.5.2

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @module-federation/bridge-react
2
2
 
3
+ ## 0.5.2
4
+
5
+ ### Patch Changes
6
+
7
+ - @module-federation/bridge-shared@0.5.2
8
+
9
+ ## 0.5.1
10
+
11
+ ### Patch Changes
12
+
13
+ - @module-federation/bridge-shared@0.5.1
14
+
3
15
  ## 0.5.0
4
16
 
5
17
  ### Patch Changes
package/dist/index.cjs.js CHANGED
@@ -177,7 +177,7 @@ const RemoteAppWrapper = React.forwardRef(function(props, ref) {
177
177
  }
178
178
  );
179
179
  };
180
- RemoteApp2["__APP_VERSION__"] = "0.5.0";
180
+ RemoteApp2["__APP_VERSION__"] = "0.5.2";
181
181
  return /* @__PURE__ */ React.createElement(RemoteApp2, null);
182
182
  });
183
183
  function withRouterData(WrappedComponent) {
@@ -295,13 +295,12 @@ function createLazyRemoteComponent(info) {
295
295
  });
296
296
  }
297
297
  function createRemoteComponent(info) {
298
- return React.forwardRef((props, ref) => {
299
- const LazyComponent = createLazyRemoteComponent(info);
300
- return (
301
- // set ErrorBoundary for LazyComponent rendering error, usually caused by inner bridge logic render process
302
- /* @__PURE__ */ React.createElement(ErrorBoundary, { FallbackComponent: info.fallback }, /* @__PURE__ */ React.createElement(React.Suspense, { fallback: info.loading }, /* @__PURE__ */ React.createElement(LazyComponent, { ...props, ref })))
303
- );
304
- });
298
+ return React.forwardRef(
299
+ (props, ref) => {
300
+ const LazyComponent = createLazyRemoteComponent(info);
301
+ return /* @__PURE__ */ React.createElement(ErrorBoundary, { FallbackComponent: info.fallback }, /* @__PURE__ */ React.createElement(React.Suspense, { fallback: info.loading }, /* @__PURE__ */ React.createElement(LazyComponent, { ...props, ref })));
302
+ }
303
+ );
305
304
  }
306
305
  var client = {};
307
306
  var m = ReactDOM;
package/dist/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export declare function createRemoteComponent<T, E extends keyof T>(info: {
19
19
  loading: default_2.ReactNode;
20
20
  fallback: ErrorBoundaryPropsWithComponent['FallbackComponent'];
21
21
  export?: E;
22
- }): default_2.ForwardRefExoticComponent<default_2.PropsWithoutRef<ProviderParams & ("__BRIDGE_FN__" extends keyof (T[E] extends (...args: any) => any ? ReturnType<T[E]> : never) ? (T[E] extends (...args: any) => any ? ReturnType<T[E]> : never)["__BRIDGE_FN__"] extends (...args: any) => any ? Parameters<(T[E] extends (...args: any) => any ? ReturnType<T[E]> : never)["__BRIDGE_FN__"]>[0] : {} : {})> & default_2.RefAttributes<unknown>>;
22
+ }): default_2.ForwardRefExoticComponent<default_2.PropsWithoutRef<ProviderParams & ("__BRIDGE_FN__" extends keyof (T[E] extends (...args: any) => any ? ReturnType<T[E]> : never) ? (T[E] extends (...args: any) => any ? ReturnType<T[E]> : never)["__BRIDGE_FN__"] extends (...args: any) => any ? Parameters<(T[E] extends (...args: any) => any ? ReturnType<T[E]> : never)["__BRIDGE_FN__"]>[0] : {} : {})> & default_2.RefAttributes<HTMLDivElement>>;
23
23
 
24
24
  declare type ErrorBoundaryPropsWithComponent = ErrorBoundarySharedProps & {
25
25
  fallback?: never;
package/dist/index.es.js CHANGED
@@ -158,7 +158,7 @@ const RemoteAppWrapper = forwardRef(function(props, ref) {
158
158
  }
159
159
  );
160
160
  };
161
- RemoteApp2["__APP_VERSION__"] = "0.5.0";
161
+ RemoteApp2["__APP_VERSION__"] = "0.5.2";
162
162
  return /* @__PURE__ */ React__default.createElement(RemoteApp2, null);
163
163
  });
164
164
  function withRouterData(WrappedComponent) {
@@ -276,13 +276,12 @@ function createLazyRemoteComponent(info) {
276
276
  });
277
277
  }
278
278
  function createRemoteComponent(info) {
279
- return forwardRef((props, ref) => {
280
- const LazyComponent = createLazyRemoteComponent(info);
281
- return (
282
- // set ErrorBoundary for LazyComponent rendering error, usually caused by inner bridge logic render process
283
- /* @__PURE__ */ React__default.createElement(ErrorBoundary, { FallbackComponent: info.fallback }, /* @__PURE__ */ React__default.createElement(React__default.Suspense, { fallback: info.loading }, /* @__PURE__ */ React__default.createElement(LazyComponent, { ...props, ref })))
284
- );
285
- });
279
+ return forwardRef(
280
+ (props, ref) => {
281
+ const LazyComponent = createLazyRemoteComponent(info);
282
+ 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, ref })));
283
+ }
284
+ );
286
285
  }
287
286
  var client = {};
288
287
  var m = ReactDOM;
@@ -1,11 +1,52 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- require("react");
3
+ const React = require("react");
4
+ const ReactRouterDom$1 = require("react-router-dom/index.js");
5
+ const context = require("./context--mtFt3tp.cjs");
4
6
  const ReactRouterDom = require("react-router-dom/index.js");
5
- require("./context--mtFt3tp.cjs");
6
- const router = require("./router.cjs.js");
7
- exports.BrowserRouter = router.BrowserRouter;
8
- exports.RouterProvider = router.RouterProvider;
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const ReactRouterDom__namespace = /* @__PURE__ */ _interopNamespaceDefault(ReactRouterDom$1);
24
+ function WraperRouter(props) {
25
+ const { basename, ...propsRes } = props;
26
+ const routerContextProps = React.useContext(context.RouterContext) || {};
27
+ context.LoggerInstance.log(`WraperRouter info >>>`, {
28
+ ...routerContextProps,
29
+ routerContextProps,
30
+ WraperRouterProps: props
31
+ });
32
+ if (routerContextProps == null ? void 0 : routerContextProps.memoryRoute) {
33
+ return /* @__PURE__ */ React.createElement(
34
+ ReactRouterDom__namespace.MemoryRouter,
35
+ {
36
+ ...props,
37
+ initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
38
+ }
39
+ );
40
+ }
41
+ return /* @__PURE__ */ React.createElement(
42
+ ReactRouterDom__namespace.BrowserRouter,
43
+ {
44
+ ...propsRes,
45
+ basename: (routerContextProps == null ? void 0 : routerContextProps.basename) || basename
46
+ }
47
+ );
48
+ }
49
+ exports.BrowserRouter = WraperRouter;
9
50
  Object.keys(ReactRouterDom).forEach((k) => {
10
51
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k))
11
52
  Object.defineProperty(exports, k, {
@@ -1,10 +1,8 @@
1
1
  import { default as default_2 } from 'react';
2
- import * as ReactRouterDom from 'react-router-dom/';
2
+ import * as ReactRouterDom from 'react-router-dom/index.js';
3
3
 
4
4
  export declare function BrowserRouter(props: Parameters<typeof ReactRouterDom.BrowserRouter>[0] | Parameters<typeof ReactRouterDom.MemoryRouter>[0]): default_2.JSX.Element;
5
5
 
6
- export declare function RouterProvider(props: Parameters<typeof ReactRouterDom.RouterProvider>[0]): default_2.JSX.Element;
7
-
8
6
 
9
7
  export * from "react-router-dom/";
10
8
 
@@ -1,8 +1,32 @@
1
- import "react";
1
+ import React__default, { useContext } from "react";
2
+ import * as ReactRouterDom$1 from "react-router-dom/index.js";
3
+ import { R as RouterContext, L as LoggerInstance } from "./context-Bw2PEwa6.js";
2
4
  export * from "react-router-dom/index.js";
3
- import "./context-Bw2PEwa6.js";
4
- import { BrowserRouter, RouterProvider } from "./router.es.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 == null ? void 0 : routerContextProps.memoryRoute) {
14
+ return /* @__PURE__ */ React__default.createElement(
15
+ ReactRouterDom$1.MemoryRouter,
16
+ {
17
+ ...props,
18
+ initialEntries: [routerContextProps == null ? void 0 : routerContextProps.memoryRoute.entryPath]
19
+ }
20
+ );
21
+ }
22
+ return /* @__PURE__ */ React__default.createElement(
23
+ ReactRouterDom$1.BrowserRouter,
24
+ {
25
+ ...propsRes,
26
+ basename: (routerContextProps == null ? void 0 : routerContextProps.basename) || basename
27
+ }
28
+ );
29
+ }
5
30
  export {
6
- BrowserRouter,
7
- RouterProvider
31
+ WraperRouter as BrowserRouter
8
32
  };
@@ -1,11 +1,79 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- require("react");
3
+ const React = require("react");
4
4
  const ReactRouterDom = require("react-router-dom/dist/index.js");
5
- require("./context--mtFt3tp.cjs");
6
- const router = require("./router.cjs.js");
7
- exports.BrowserRouter = router.BrowserRouter;
8
- exports.RouterProvider = router.RouterProvider;
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 == 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(context.RouterContext) || {};
51
+ const routers = router.routes;
52
+ context.LoggerInstance.log(`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
+ basename: routerContextProps.basename,
69
+ future: router.future,
70
+ window: router.window
71
+ });
72
+ return /* @__PURE__ */ React.createElement(RouterProvider, { ...propsRes, router: BrowserRouterInstance });
73
+ }
74
+ }
75
+ exports.BrowserRouter = WraperRouter;
76
+ exports.RouterProvider = WraperRouterProvider;
9
77
  Object.keys(ReactRouterDom).forEach((k) => {
10
78
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k))
11
79
  Object.defineProperty(exports, k, {
@@ -1,11 +1,11 @@
1
1
  import { default as default_2 } from 'react';
2
- import * as ReactRouterDom from 'react-router-dom/';
2
+ import * as ReactRouterDom from 'react-router-dom/dist/index.js';
3
3
 
4
4
  export declare function BrowserRouter(props: Parameters<typeof ReactRouterDom.BrowserRouter>[0] | Parameters<typeof ReactRouterDom.MemoryRouter>[0]): default_2.JSX.Element;
5
5
 
6
6
  export declare function RouterProvider(props: Parameters<typeof ReactRouterDom.RouterProvider>[0]): default_2.JSX.Element;
7
7
 
8
8
 
9
- export * from "react-router-dom/";
9
+ export * from "react-router-dom/dist/index.js";
10
10
 
11
11
  export { }
@@ -1,8 +1,60 @@
1
- import "react";
1
+ import React__default, { useContext } from "react";
2
+ import * as ReactRouterDom from "react-router-dom/dist/index.js";
2
3
  export * from "react-router-dom/dist/index.js";
3
- import "./context-Bw2PEwa6.js";
4
- import { BrowserRouter, RouterProvider } from "./router.es.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 == 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.log(`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
+ basename: routerContextProps.basename,
51
+ future: router.future,
52
+ window: router.window
53
+ });
54
+ return /* @__PURE__ */ React__default.createElement(RouterProvider, { ...propsRes, router: BrowserRouterInstance });
55
+ }
56
+ }
5
57
  export {
6
- BrowserRouter,
7
- RouterProvider
58
+ WraperRouter as BrowserRouter,
59
+ WraperRouterProvider as RouterProvider
8
60
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/bridge-react",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -21,21 +21,21 @@
21
21
  "require": "./dist/router.cjs.js"
22
22
  },
23
23
  "./router-v5": {
24
- "types": "./dist/router.d.ts",
25
- "import": "./dist/router.es.js",
26
- "require": "./dist/router.cjs.js"
24
+ "types": "./dist/router-v5.d.ts",
25
+ "import": "./dist/router-v5.es.js",
26
+ "require": "./dist/router-v5.cjs.js"
27
27
  },
28
28
  "./router-v6": {
29
- "types": "./dist/router.d.ts",
30
- "import": "./dist/router.es.js",
31
- "require": "./dist/router.cjs.js"
29
+ "types": "./dist/router-v6.d.ts",
30
+ "import": "./dist/router-v6.es.js",
31
+ "require": "./dist/router-v6.cjs.js"
32
32
  },
33
33
  "./*": "./*"
34
34
  },
35
35
  "dependencies": {
36
36
  "@loadable/component": "^5.16.4",
37
37
  "react-error-boundary": "^4.0.13",
38
- "@module-federation/bridge-shared": "0.5.0"
38
+ "@module-federation/bridge-shared": "0.5.2"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "react": ">=16.9.0",
package/src/create.tsx CHANGED
@@ -99,15 +99,16 @@ export function createRemoteComponent<T, E extends keyof T>(info: {
99
99
  : {}
100
100
  : {};
101
101
 
102
- return forwardRef((props: ProviderParams & RawComponentType, ref) => {
103
- const LazyComponent = createLazyRemoteComponent(info);
104
- return (
105
- // set ErrorBoundary for LazyComponent rendering error, usually caused by inner bridge logic render process
106
- <ErrorBoundary FallbackComponent={info.fallback}>
107
- <React.Suspense fallback={info.loading}>
108
- <LazyComponent {...props} ref={ref} />
109
- </React.Suspense>
110
- </ErrorBoundary>
111
- );
112
- });
102
+ return forwardRef<HTMLDivElement, ProviderParams & RawComponentType>(
103
+ (props, ref) => {
104
+ const LazyComponent = createLazyRemoteComponent(info);
105
+ return (
106
+ <ErrorBoundary FallbackComponent={info.fallback}>
107
+ <React.Suspense fallback={info.loading}>
108
+ <LazyComponent {...props} ref={ref} />
109
+ </React.Suspense>
110
+ </ErrorBoundary>
111
+ );
112
+ },
113
+ );
113
114
  }
@@ -52,10 +52,11 @@ const RemoteAppWrapper = forwardRef(function (
52
52
  ...resProps
53
53
  } = props;
54
54
 
55
- const rootRef: React.MutableRefObject<HTMLElement | null> =
55
+ const rootRef: React.MutableRefObject<HTMLDivElement | null> =
56
56
  ref && 'current' in ref
57
- ? (ref as React.MutableRefObject<HTMLElement | null>)
57
+ ? (ref as React.MutableRefObject<HTMLDivElement | null>)
58
58
  : useRef(null);
59
+
59
60
  const renderDom: React.MutableRefObject<HTMLElement | null> = useRef(null);
60
61
  const providerInfoRef = useRef<any>(null);
61
62
 
@@ -0,0 +1,44 @@
1
+ import React, { useContext } from 'react';
2
+ // The upper alias react-router-dom$ into this file avoids the loop
3
+ // @ts-ignore
4
+ import * as ReactRouterDom from 'react-router-dom/index.js';
5
+
6
+ import { RouterContext } from './context';
7
+ import { LoggerInstance } from './utils';
8
+
9
+ function WraperRouter(
10
+ props:
11
+ | Parameters<typeof ReactRouterDom.BrowserRouter>[0]
12
+ | Parameters<typeof ReactRouterDom.MemoryRouter>[0],
13
+ ) {
14
+ const { basename, ...propsRes } = props;
15
+ const routerContextProps = useContext(RouterContext) || {};
16
+
17
+ LoggerInstance.log(`WraperRouter info >>>`, {
18
+ ...routerContextProps,
19
+ routerContextProps,
20
+ WraperRouterProps: props,
21
+ });
22
+
23
+ if (routerContextProps?.memoryRoute) {
24
+ return (
25
+ <ReactRouterDom.MemoryRouter
26
+ {...props}
27
+ initialEntries={[routerContextProps?.memoryRoute.entryPath]}
28
+ />
29
+ );
30
+ }
31
+ return (
32
+ <ReactRouterDom.BrowserRouter
33
+ {...propsRes}
34
+ basename={routerContextProps?.basename || basename}
35
+ />
36
+ );
37
+ }
38
+
39
+ // @ts-ignore
40
+ // cause export directly from react-router-dom/index.js will cause build falied.
41
+ // it will be replace by react-router-dom/index.js in building phase
42
+ export * from 'react-router-dom/';
43
+
44
+ export { WraperRouter as BrowserRouter };
@@ -0,0 +1,73 @@
1
+ import React, { useContext } from 'react';
2
+ // The upper alias react-router-dom$ into this file avoids the loop
3
+ import * as ReactRouterDom from 'react-router-dom/dist/index.js';
4
+
5
+ import { RouterContext } from './context';
6
+ import { LoggerInstance } from './utils';
7
+
8
+ function WraperRouter(
9
+ props:
10
+ | Parameters<typeof ReactRouterDom.BrowserRouter>[0]
11
+ | Parameters<typeof ReactRouterDom.MemoryRouter>[0],
12
+ ) {
13
+ const { basename, ...propsRes } = props;
14
+ const routerContextProps = useContext(RouterContext) || {};
15
+
16
+ LoggerInstance.log(`WraperRouter info >>>`, {
17
+ ...routerContextProps,
18
+ routerContextProps,
19
+ WraperRouterProps: props,
20
+ });
21
+
22
+ if (routerContextProps?.memoryRoute) {
23
+ return (
24
+ <ReactRouterDom.MemoryRouter
25
+ {...props}
26
+ initialEntries={[routerContextProps?.memoryRoute.entryPath]}
27
+ />
28
+ );
29
+ }
30
+ return (
31
+ <ReactRouterDom.BrowserRouter
32
+ {...propsRes}
33
+ basename={routerContextProps?.basename || basename}
34
+ />
35
+ );
36
+ }
37
+
38
+ function WraperRouterProvider(
39
+ props: Parameters<typeof ReactRouterDom.RouterProvider>[0],
40
+ ) {
41
+ const { router, ...propsRes } = props;
42
+ const routerContextProps = useContext(RouterContext) || {};
43
+ const routers = router.routes;
44
+ LoggerInstance.log(`WraperRouterProvider info >>>`, {
45
+ ...routerContextProps,
46
+ routerContextProps,
47
+ WraperRouterProviderProps: props,
48
+ router,
49
+ });
50
+ const RouterProvider = (ReactRouterDom as any)['Router' + 'Provider'];
51
+ const createMemoryRouter = (ReactRouterDom as any)['create' + 'MemoryRouter'];
52
+ const createBrowserRouter = (ReactRouterDom as any)[
53
+ 'create' + 'BrowserRouter'
54
+ ];
55
+
56
+ if (routerContextProps.memoryRoute) {
57
+ const MemeoryRouterInstance = createMemoryRouter(routers, {
58
+ initialEntries: [routerContextProps?.memoryRoute.entryPath],
59
+ });
60
+ return <RouterProvider router={MemeoryRouterInstance} />;
61
+ } else {
62
+ const BrowserRouterInstance = createBrowserRouter(routers, {
63
+ basename: routerContextProps.basename,
64
+ future: router.future,
65
+ window: router.window,
66
+ });
67
+ return <RouterProvider {...propsRes} router={BrowserRouterInstance} />;
68
+ }
69
+ }
70
+
71
+ export * from 'react-router-dom/dist/index.js';
72
+ export { WraperRouter as BrowserRouter };
73
+ export { WraperRouterProvider as RouterProvider };
package/vite.config.ts CHANGED
@@ -22,8 +22,8 @@ export default defineConfig({
22
22
  entry: {
23
23
  index: path.resolve(__dirname, 'src/index.ts'),
24
24
  router: path.resolve(__dirname, 'src/router.tsx'),
25
- 'router-v5': path.resolve(__dirname, 'src/router.tsx'),
26
- 'router-v6': path.resolve(__dirname, 'src/router.tsx'),
25
+ 'router-v5': path.resolve(__dirname, 'src/router-v5.tsx'),
26
+ 'router-v6': path.resolve(__dirname, 'src/router-v6.tsx'),
27
27
  },
28
28
  formats: ['cjs', 'es'],
29
29
  fileName: (format, entryName) => `${entryName}.${format}.js`,
@@ -43,13 +43,13 @@ export default defineConfig({
43
43
  generateBundle(options, bundle) {
44
44
  for (const fileName in bundle) {
45
45
  const chunk = bundle[fileName];
46
- if (fileName.includes('router-v6') && chunk.type === 'chunk') {
47
- chunk.code = chunk.code.replace(
48
- // Match 'react-router-dom/' followed by single quotes, double quotes, or backticks, replacing only 'react-router-dom/' to react-router-v6 dist file structure
49
- /react-router-dom\/(?=[\'\"\`])/g,
50
- 'react-router-dom/dist/index.js',
51
- );
52
- }
46
+ // if (fileName.includes('router-v6') && chunk.type === 'chunk') {
47
+ // chunk.code = chunk.code.replace(
48
+ // // Match 'react-router-dom/' followed by single quotes, double quotes, or backticks, replacing only 'react-router-dom/' to react-router-v6 dist file structure
49
+ // /react-router-dom\/(?=[\'\"\`])/g,
50
+ // 'react-router-dom/dist/index.js',
51
+ // );
52
+ // }
53
53
 
54
54
  if (fileName.includes('router-v5') && chunk.type === 'chunk') {
55
55
  chunk.code = chunk.code.replace(