@modern-js/runtime 1.21.5 → 2.0.0-beta.1
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 +117 -18
- package/dist/js/modern/cli/index.js +3 -5
- package/dist/js/modern/core/app-config.js +2 -1
- package/dist/js/modern/core/compatible.js +47 -48
- package/dist/js/modern/core/index.js +4 -3
- package/dist/js/modern/core/loader/loaderManager.js +12 -34
- package/dist/js/modern/core/loader/useLoader.js +8 -26
- package/dist/js/modern/core/plugin.js +6 -28
- package/dist/js/modern/document/Body.js +17 -0
- package/dist/js/modern/document/DocumentContext.js +6 -0
- package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
- package/dist/js/modern/document/Head.js +24 -0
- package/dist/js/modern/document/Html.js +92 -0
- package/dist/js/modern/document/Root.js +31 -0
- package/dist/js/modern/document/Scripts.js +10 -0
- package/dist/js/modern/document/cli/index.js +130 -0
- package/dist/js/modern/document/constants.js +19 -0
- package/dist/js/modern/document/index.js +8 -0
- package/dist/js/modern/index.js +2 -1
- package/dist/js/modern/router/cli/index.js +20 -20
- package/dist/js/modern/router/runtime/index.js +1 -1
- package/dist/js/modern/router/runtime/plugin.js +25 -52
- package/dist/js/modern/router/runtime/plugin.node.js +137 -0
- package/dist/js/modern/router/runtime/root/index.js +19 -0
- package/dist/js/modern/router/runtime/root/load.js +61 -0
- package/dist/js/modern/router/runtime/types.js +1 -0
- package/dist/js/modern/router/runtime/utils.js +99 -58
- package/dist/js/modern/router/runtime/withRouter.js +20 -0
- package/dist/js/modern/runtime-context.js +2 -1
- package/dist/js/modern/ssr/cli/index.js +35 -17
- package/dist/js/modern/ssr/index.js +64 -51
- package/dist/js/modern/ssr/index.node.js +6 -15
- package/dist/js/modern/ssr/prefetch.js +0 -7
- package/dist/js/modern/ssr/react/prerender/index.js +2 -23
- package/dist/js/modern/ssr/react/prerender/util.js +2 -17
- package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
- package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
- package/dist/js/modern/ssr/serverRender/index.js +12 -27
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +38 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +58 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +40 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +72 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +11 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/template.js +18 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
- package/dist/js/modern/ssr/serverRender/{entry.js → renderToString/entry.js} +6 -40
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +29 -0
- package/dist/js/modern/ssr/serverRender/{loadable.js → renderToString/loadable.js} +2 -24
- package/dist/js/modern/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
- package/dist/js/modern/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
- package/dist/js/modern/ssr/serverRender/{template.js → renderToString/template.js} +0 -15
- package/dist/js/modern/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
- package/dist/js/modern/ssr/serverRender/types.js +2 -0
- package/dist/js/modern/ssr/serverRender/utils.js +20 -0
- package/dist/js/modern/ssr/utils.js +8 -13
- package/dist/js/modern/state/cli/index.js +0 -10
- package/dist/js/modern/state/runtime/plugin.js +1 -14
- package/dist/js/node/cli/index.js +3 -13
- package/dist/js/node/common.js +0 -2
- package/dist/js/node/core/app-config.js +2 -5
- package/dist/js/node/core/compatible.js +47 -66
- package/dist/js/node/core/index.js +8 -17
- package/dist/js/node/core/loader/index.js +0 -2
- package/dist/js/node/core/loader/loaderManager.js +12 -37
- package/dist/js/node/core/loader/useLoader.js +8 -31
- package/dist/js/node/core/plugin.js +5 -34
- package/dist/js/node/document/Body.js +26 -0
- package/dist/js/node/document/DocumentContext.js +14 -0
- package/dist/js/node/document/DocumentStructrueContext.js +15 -0
- package/dist/js/node/document/Head.js +33 -0
- package/dist/js/node/document/Html.js +98 -0
- package/dist/js/node/document/Root.js +41 -0
- package/dist/js/node/document/Scripts.js +17 -0
- package/dist/js/node/document/cli/index.js +140 -0
- package/dist/js/node/document/constants.js +36 -0
- package/dist/js/node/document/index.js +93 -0
- package/dist/js/node/exports/head.js +0 -5
- package/dist/js/node/exports/loadable.js +0 -5
- package/dist/js/node/exports/server.js +0 -2
- package/dist/js/node/exports/styled.js +0 -5
- package/dist/js/node/index.js +5 -5
- package/dist/js/node/router/cli/index.js +20 -24
- package/dist/js/node/router/index.js +0 -4
- package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
- package/dist/js/node/router/runtime/index.js +4 -9
- package/dist/js/node/router/runtime/plugin.js +23 -65
- package/dist/js/node/router/runtime/plugin.node.js +147 -0
- package/dist/js/node/router/runtime/root/index.js +26 -0
- package/dist/js/node/router/runtime/root/load.js +69 -0
- package/dist/js/node/router/runtime/types.js +5 -0
- package/dist/js/node/router/runtime/utils.js +101 -67
- package/dist/js/node/router/runtime/withRouter.js +26 -0
- package/dist/js/node/runtime-context.js +4 -4
- package/dist/js/node/ssr/cli/index.js +35 -21
- package/dist/js/node/ssr/index.js +63 -62
- package/dist/js/node/ssr/index.node.js +6 -25
- package/dist/js/node/ssr/prefetch.js +0 -11
- package/dist/js/node/ssr/react/index.js +0 -2
- package/dist/js/node/ssr/react/nossr/index.js +0 -6
- package/dist/js/node/ssr/react/prerender/index.js +2 -30
- package/dist/js/node/ssr/react/prerender/util.js +2 -25
- package/dist/js/node/ssr/react/withCallback/index.js +1 -4
- package/dist/js/node/ssr/serverRender/helmet.js +13 -20
- package/dist/js/node/ssr/serverRender/index.js +14 -39
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +45 -0
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +13 -0
- package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -0
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +48 -0
- package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +30 -0
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +79 -0
- package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +17 -0
- package/dist/js/node/ssr/serverRender/renderToStream/template.js +25 -0
- package/dist/js/node/ssr/serverRender/renderToStream/type.js +0 -0
- package/dist/js/node/ssr/serverRender/{entry.js → renderToString/entry.js} +13 -64
- package/dist/js/node/ssr/serverRender/renderToString/index.js +37 -0
- package/dist/js/node/ssr/serverRender/{loadable.js → renderToString/loadable.js} +3 -28
- package/dist/js/node/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -3
- package/dist/js/node/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -3
- package/dist/js/node/ssr/serverRender/{template.js → renderToString/template.js} +0 -18
- package/dist/js/node/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
- package/dist/js/node/ssr/serverRender/types.js +12 -0
- package/dist/js/node/ssr/serverRender/utils.js +28 -0
- package/dist/js/node/ssr/utils.js +10 -21
- package/dist/js/node/state/cli/index.js +0 -15
- package/dist/js/node/state/index.js +0 -4
- package/dist/js/node/state/plugins.js +0 -11
- package/dist/js/node/state/runtime/index.js +0 -7
- package/dist/js/node/state/runtime/plugin.js +1 -25
- package/dist/js/treeshaking/cli/index.js +3 -3
- package/dist/js/treeshaking/core/app-config.js +2 -1
- package/dist/js/treeshaking/core/compatible.js +50 -65
- package/dist/js/treeshaking/core/index.js +4 -3
- package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
- package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
- package/dist/js/treeshaking/core/plugin.js +6 -51
- package/dist/js/treeshaking/document/Body.js +14 -0
- package/dist/js/treeshaking/document/DocumentContext.js +6 -0
- package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
- package/dist/js/treeshaking/document/Head.js +21 -0
- package/dist/js/treeshaking/document/Html.js +104 -0
- package/dist/js/treeshaking/document/Root.js +24 -0
- package/dist/js/treeshaking/document/Scripts.js +10 -0
- package/dist/js/treeshaking/document/cli/index.js +170 -0
- package/dist/js/treeshaking/document/constants.js +16 -0
- package/dist/js/treeshaking/document/index.js +8 -0
- package/dist/js/treeshaking/index.js +2 -1
- package/dist/js/treeshaking/router/cli/index.js +26 -22
- package/dist/js/treeshaking/router/runtime/index.js +1 -1
- package/dist/js/treeshaking/router/runtime/plugin.js +28 -54
- package/dist/js/treeshaking/router/runtime/plugin.node.js +161 -0
- package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
- package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
- package/dist/js/treeshaking/router/runtime/types.js +1 -0
- package/dist/js/treeshaking/router/runtime/utils.js +104 -58
- package/dist/js/treeshaking/router/runtime/withRouter.js +18 -0
- package/dist/js/treeshaking/runtime-context.js +2 -1
- package/dist/js/treeshaking/ssr/cli/index.js +43 -23
- package/dist/js/treeshaking/ssr/index.js +74 -59
- package/dist/js/treeshaking/ssr/index.node.js +18 -31
- package/dist/js/treeshaking/ssr/prefetch.js +0 -13
- package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
- package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
- package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
- package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
- package/dist/js/treeshaking/ssr/serverRender/index.js +33 -55
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +32 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +60 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +50 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +68 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +10 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +22 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +0 -0
- package/dist/js/treeshaking/ssr/serverRender/{entry.js → renderToString/entry.js} +23 -76
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +44 -0
- package/dist/js/treeshaking/ssr/serverRender/{loadable.js → renderToString/loadable.js} +7 -34
- package/dist/js/treeshaking/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
- package/dist/js/treeshaking/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
- package/dist/js/treeshaking/ssr/serverRender/{template.js → renderToString/template.js} +2 -18
- package/dist/js/treeshaking/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
- package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
- package/dist/js/treeshaking/ssr/serverRender/utils.js +28 -0
- package/dist/js/treeshaking/ssr/utils.js +20 -17
- package/dist/js/treeshaking/state/cli/index.js +3 -10
- package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
- package/dist/types/cli/index.d.ts +0 -2
- package/dist/types/common.d.ts +0 -2
- package/dist/types/core/compatible.d.ts +2 -2
- package/dist/types/core/index.d.ts +2 -2
- package/dist/types/core/loader/loaderManager.d.ts +0 -1
- package/dist/types/core/loader/useLoader.d.ts +0 -5
- package/dist/types/core/plugin.d.ts +2 -14
- package/dist/types/document/Body.d.ts +4 -0
- package/dist/types/document/DocumentContext.d.ts +13 -0
- package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
- package/dist/types/document/Head.d.ts +5 -0
- package/dist/types/document/Html.d.ts +4 -0
- package/dist/types/document/Root.d.ts +8 -0
- package/dist/types/document/Scripts.d.ts +2 -0
- package/dist/types/document/cli/index.d.ts +3 -0
- package/dist/types/document/constants.d.ts +14 -0
- package/dist/types/document/index.d.ts +8 -0
- package/dist/types/exports/server.d.ts +21 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/router/cli/index.d.ts +0 -2
- package/dist/types/router/runtime/DefaultNotFound.d.ts +1 -0
- package/dist/types/router/runtime/index.d.ts +3 -3
- package/dist/types/router/runtime/plugin.d.ts +2 -45
- package/dist/types/router/runtime/plugin.node.d.ts +8 -0
- package/dist/types/router/runtime/root/index.d.ts +8 -0
- package/dist/types/router/runtime/root/load.d.ts +22 -0
- package/dist/types/router/runtime/types.d.ts +36 -0
- package/dist/types/router/runtime/utils.d.ts +5 -2
- package/dist/types/router/runtime/withRouter.d.ts +8 -0
- package/dist/types/runtime-context.d.ts +3 -1
- package/dist/types/ssr/cli/index.d.ts +0 -2
- package/dist/types/ssr/index.d.ts +2 -2
- package/dist/types/ssr/index.node.d.ts +1 -1
- package/dist/types/ssr/prefetch.d.ts +2 -2
- package/dist/types/ssr/react/nossr/index.d.ts +3 -1
- package/dist/types/ssr/serverRender/index.d.ts +2 -3
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +7 -0
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +3 -0
- package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -0
- package/dist/types/ssr/serverRender/renderToStream/index.d.ts +6 -0
- package/dist/types/ssr/serverRender/renderToStream/loadable.d.ts +16 -0
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +8 -0
- package/dist/types/ssr/serverRender/renderToStream/styledComponent.d.ts +12 -0
- package/dist/types/ssr/serverRender/renderToStream/template.d.ts +3 -0
- package/dist/types/ssr/serverRender/renderToStream/type.d.ts +4 -0
- package/dist/types/ssr/serverRender/{entry.d.ts → renderToString/entry.d.ts} +2 -2
- package/dist/types/ssr/serverRender/renderToString/index.d.ts +6 -0
- package/dist/types/ssr/serverRender/{loadable.d.ts → renderToString/loadable.d.ts} +0 -0
- package/dist/types/ssr/serverRender/{reduce.d.ts → renderToString/reduce.d.ts} +0 -0
- package/dist/types/ssr/serverRender/{styledComponent.d.ts → renderToString/styledComponent.d.ts} +0 -0
- package/dist/types/ssr/serverRender/{template.d.ts → renderToString/template.d.ts} +0 -0
- package/dist/types/ssr/serverRender/{type.d.ts → renderToString/type.d.ts} +1 -8
- package/dist/types/ssr/serverRender/types.d.ts +15 -0
- package/dist/types/ssr/serverRender/utils.d.ts +3 -0
- package/dist/types/ssr/utils.d.ts +4 -2
- package/dist/types/state/cli/index.d.ts +0 -2
- package/dist/types/state/runtime/plugin.d.ts +1 -1
- package/dist/types/state/types.d.ts +0 -1
- package/package.json +63 -71
- package/types/index.d.ts +13 -0
- package/types/router.d.ts +14 -0
- package/dist/js/modern/ssr/serverRender/measure.js +0 -11
- package/dist/js/node/ssr/serverRender/measure.js +0 -20
- package/dist/js/treeshaking/ssr/serverRender/measure.js +0 -17
- package/dist/types/ssr/serverRender/measure.d.ts +0 -1
- package/lib/types.d.ts +0 -10
- package/type.d.ts +0 -5
|
@@ -1,28 +1,18 @@
|
|
|
1
1
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
-
|
|
3
2
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
|
|
5
3
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
|
-
import
|
|
8
|
-
import { createBrowserHistory, createHashHistory } from 'history';
|
|
9
|
-
import { Router, StaticRouter } from 'react-router-dom';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements } from 'react-router-dom';
|
|
10
6
|
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
11
|
-
import {
|
|
12
|
-
import { isBrowser } from "../../common";
|
|
13
|
-
import { renderRoutes, getLocation, urlJoin } from "./utils";
|
|
7
|
+
import { renderRoutes } from "./utils";
|
|
14
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
9
|
export const routerPlugin = ({
|
|
16
10
|
serverBase: _serverBase = [],
|
|
17
|
-
history: customHistory,
|
|
18
11
|
supportHtml5History: _supportHtml5History = true,
|
|
19
12
|
routesConfig,
|
|
20
|
-
|
|
13
|
+
createRoutes
|
|
21
14
|
}) => {
|
|
22
|
-
const isBrow = isBrowser();
|
|
23
|
-
|
|
24
15
|
const select = pathname => _serverBase.find(baseUrl => pathname.search(baseUrl) === 0) || '/';
|
|
25
|
-
|
|
26
16
|
return {
|
|
27
17
|
name: '@modern-js/plugin-router',
|
|
28
18
|
setup: () => {
|
|
@@ -30,54 +20,37 @@ export const routerPlugin = ({
|
|
|
30
20
|
hoc: ({
|
|
31
21
|
App
|
|
32
22
|
}, next) => {
|
|
23
|
+
// can not get routes config, skip wrapping React Router.
|
|
24
|
+
// e.g. App.tsx as the entrypoint
|
|
25
|
+
if (!routesConfig) {
|
|
26
|
+
return next({
|
|
27
|
+
App
|
|
28
|
+
});
|
|
29
|
+
}
|
|
33
30
|
const getRouteApp = () => {
|
|
34
|
-
|
|
31
|
+
return props => {
|
|
35
32
|
var _window$_SERVER_DATA;
|
|
36
|
-
|
|
33
|
+
const routeElements = renderRoutes(routesConfig);
|
|
34
|
+
const routes = createRoutes ? createRoutes() : createRoutesFromElements(routeElements);
|
|
37
35
|
const baseUrl = ((_window$_SERVER_DATA = window._SERVER_DATA) === null || _window$_SERVER_DATA === void 0 ? void 0 : _window$_SERVER_DATA.router.baseUrl) || select(location.pathname);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
children: /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
|
|
43
|
-
children: routesConfig ? renderRoutes(routesConfig, props) : null
|
|
44
|
-
}))
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return props => {
|
|
49
|
-
const runtimeContext = useContext(RuntimeReactContext);
|
|
50
|
-
const {
|
|
51
|
-
ssrContext
|
|
52
|
-
} = runtimeContext;
|
|
53
|
-
const location = getLocation(ssrContext);
|
|
54
|
-
const routerContext = (ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.redirection) || {};
|
|
55
|
-
const request = ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.request;
|
|
56
|
-
const baseUrl = request === null || request === void 0 ? void 0 : request.baseUrl;
|
|
57
|
-
const basename = baseUrl === '/' ? urlJoin(baseUrl, _historyOptions.basename) : baseUrl;
|
|
58
|
-
return /*#__PURE__*/_jsx(StaticRouter, {
|
|
59
|
-
basename: basename === '/' ? '' : basename,
|
|
60
|
-
location: location,
|
|
61
|
-
context: routerContext,
|
|
62
|
-
children: /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
|
|
63
|
-
children: routesConfig ? renderRoutes(routesConfig, props) : null
|
|
64
|
-
}))
|
|
36
|
+
const router = _supportHtml5History ? createBrowserRouter(routes, {
|
|
37
|
+
basename: baseUrl
|
|
38
|
+
}) : createHashRouter(routes, {
|
|
39
|
+
basename: baseUrl
|
|
65
40
|
});
|
|
41
|
+
return /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
|
|
42
|
+
children: /*#__PURE__*/_jsx(RouterProvider, {
|
|
43
|
+
router: router
|
|
44
|
+
})
|
|
45
|
+
}));
|
|
66
46
|
};
|
|
67
47
|
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (App) {
|
|
72
|
-
RouteApp = hoistNonReactStatics(RouteApp, App);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if (routesConfig !== null && routesConfig !== void 0 && routesConfig.globalApp) {
|
|
48
|
+
const RouteApp = getRouteApp();
|
|
49
|
+
if (routesConfig.globalApp) {
|
|
76
50
|
return next({
|
|
77
51
|
App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
|
|
78
52
|
});
|
|
79
53
|
}
|
|
80
|
-
|
|
81
54
|
return next({
|
|
82
55
|
App: RouteApp
|
|
83
56
|
});
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
import React, { useContext } from 'react';
|
|
5
|
+
import { unstable_createStaticHandler as createStaticHandler } from '@remix-run/router';
|
|
6
|
+
import { unstable_createStaticRouter as createStaticRouter, unstable_StaticRouterProvider as StaticRouterProvider } from 'react-router-dom/server';
|
|
7
|
+
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
8
|
+
import { installGlobals } from '@remix-run/node';
|
|
9
|
+
import { createRoutesFromElements } from 'react-router-dom';
|
|
10
|
+
import { RuntimeReactContext } from "../../core";
|
|
11
|
+
import { renderRoutes } from "./utils";
|
|
12
|
+
|
|
13
|
+
// Polyfill Web Fetch API
|
|
14
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
installGlobals();
|
|
16
|
+
|
|
17
|
+
// TODO: polish
|
|
18
|
+
function createFetchRequest(req) {
|
|
19
|
+
// const origin = `${req.protocol}://${req.get('host')}`;
|
|
20
|
+
const origin = `${req.protocol}://${req.host}`;
|
|
21
|
+
// Note: This had to take originalUrl into account for presumably vite's proxying
|
|
22
|
+
const url = new URL(req.originalUrl || req.url, origin);
|
|
23
|
+
const controller = new AbortController();
|
|
24
|
+
|
|
25
|
+
// req.on('close', () => {
|
|
26
|
+
// controller.abort();
|
|
27
|
+
// });
|
|
28
|
+
|
|
29
|
+
const init = {
|
|
30
|
+
method: req.method,
|
|
31
|
+
headers: createFetchHeaders(req.headers),
|
|
32
|
+
signal: controller.signal
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// if (req.method !== 'GET' && req.method !== 'HEAD') {
|
|
36
|
+
// init.body = req.body;
|
|
37
|
+
// }
|
|
38
|
+
|
|
39
|
+
return new Request(url.href, init);
|
|
40
|
+
}
|
|
41
|
+
export function createFetchHeaders(requestHeaders) {
|
|
42
|
+
const headers = new Headers();
|
|
43
|
+
for (const [key, values] of Object.entries(requestHeaders)) {
|
|
44
|
+
if (values) {
|
|
45
|
+
if (Array.isArray(values)) {
|
|
46
|
+
for (const value of values) {
|
|
47
|
+
headers.append(key, value);
|
|
48
|
+
}
|
|
49
|
+
} else {
|
|
50
|
+
headers.set(key, values);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return headers;
|
|
55
|
+
}
|
|
56
|
+
export const routerPlugin = ({
|
|
57
|
+
routesConfig,
|
|
58
|
+
createRoutes
|
|
59
|
+
}) => {
|
|
60
|
+
return {
|
|
61
|
+
name: '@modern-js/plugin-router',
|
|
62
|
+
setup: () => {
|
|
63
|
+
return {
|
|
64
|
+
async init({
|
|
65
|
+
context
|
|
66
|
+
}, next) {
|
|
67
|
+
// can not get routes config, skip wrapping React Router.
|
|
68
|
+
// e.g. App.tsx as the entrypoint
|
|
69
|
+
if (!routesConfig) {
|
|
70
|
+
return next({
|
|
71
|
+
context
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const {
|
|
75
|
+
request
|
|
76
|
+
} = context.ssrContext;
|
|
77
|
+
const routeElements = renderRoutes(routesConfig);
|
|
78
|
+
const routes = createRoutes ? createRoutes() : createRoutesFromElements(routeElements);
|
|
79
|
+
const {
|
|
80
|
+
query
|
|
81
|
+
} = createStaticHandler(routes);
|
|
82
|
+
const remixRequest = createFetchRequest(request);
|
|
83
|
+
const routerContext = await query(remixRequest);
|
|
84
|
+
if (routerContext instanceof Response) {
|
|
85
|
+
// React Router would return a Response when redirects occur in loader.
|
|
86
|
+
// Throw the Response to bail out and let the server handle it with an HTTP redirect
|
|
87
|
+
return routerContext;
|
|
88
|
+
}
|
|
89
|
+
const router = createStaticRouter(routes, routerContext);
|
|
90
|
+
context.router = router;
|
|
91
|
+
context.routerContext = routerContext;
|
|
92
|
+
context.routes = routes;
|
|
93
|
+
// set routeManifest in context to be consistent with csr context
|
|
94
|
+
context.routeManifest = context.ssrContext.routeManifest;
|
|
95
|
+
return next({
|
|
96
|
+
context
|
|
97
|
+
});
|
|
98
|
+
},
|
|
99
|
+
hoc: ({
|
|
100
|
+
App
|
|
101
|
+
}, next) => {
|
|
102
|
+
// can not get routes config, skip wrapping React Router.
|
|
103
|
+
// e.g. App.tsx as the entrypoint
|
|
104
|
+
if (!routesConfig) {
|
|
105
|
+
return next({
|
|
106
|
+
App
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const getRouteApp = () => {
|
|
110
|
+
return props => {
|
|
111
|
+
const {
|
|
112
|
+
router,
|
|
113
|
+
routerContext
|
|
114
|
+
} = useContext(RuntimeReactContext);
|
|
115
|
+
return /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
|
|
116
|
+
children: /*#__PURE__*/_jsx(StaticRouterProvider, {
|
|
117
|
+
router: router,
|
|
118
|
+
context: routerContext,
|
|
119
|
+
nonce: "the-nonce"
|
|
120
|
+
})
|
|
121
|
+
}));
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
const RouteApp = getRouteApp();
|
|
125
|
+
if (routesConfig.globalApp) {
|
|
126
|
+
return next({
|
|
127
|
+
App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
return next({
|
|
131
|
+
App: RouteApp
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { useContext, useEffect } from 'react';
|
|
2
|
+
import { useLocation } from 'react-router-dom';
|
|
3
|
+
import { RuntimeReactContext } from "../../../core";
|
|
4
|
+
import { handleLoad } from "./load";
|
|
5
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export function RootLayout(props) {
|
|
8
|
+
const location = useLocation();
|
|
9
|
+
const context = useContext(RuntimeReactContext);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
const {
|
|
12
|
+
routes
|
|
13
|
+
} = props;
|
|
14
|
+
handleLoad(routes, location, context.routeManifest);
|
|
15
|
+
}, [location]);
|
|
16
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
17
|
+
children: props.children
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
import { matchRoutes } from 'react-router-dom';
|
|
3
|
+
class Logger {
|
|
4
|
+
static getLogger(options) {
|
|
5
|
+
if (this.logger) {
|
|
6
|
+
return this.logger;
|
|
7
|
+
}
|
|
8
|
+
this.logger = new Logger(options);
|
|
9
|
+
return this.logger;
|
|
10
|
+
}
|
|
11
|
+
constructor(options) {
|
|
12
|
+
_defineProperty(this, "enableLogging", void 0);
|
|
13
|
+
this.enableLogging = options.enableLogging;
|
|
14
|
+
}
|
|
15
|
+
log(...args) {
|
|
16
|
+
if (this.enableLogging) {
|
|
17
|
+
// eslint-disable-next-line no-console
|
|
18
|
+
console.log(...args);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
_defineProperty(Logger, "logger", void 0);
|
|
23
|
+
export function handleLoad(routes, location, routeManifest) {
|
|
24
|
+
if (!routeManifest || !routeManifest.enableFetchParallel === false) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const {
|
|
28
|
+
routeAssets
|
|
29
|
+
} = routeManifest;
|
|
30
|
+
Logger.getLogger({
|
|
31
|
+
enableLogging: routeManifest.enableLogging
|
|
32
|
+
}).log('handle page load');
|
|
33
|
+
const matches = matchClientRoutes(routes, location);
|
|
34
|
+
matches === null || matches === void 0 ? void 0 : matches.forEach(match => loadRouteModule(match.route, routeAssets));
|
|
35
|
+
}
|
|
36
|
+
export function matchClientRoutes(routes, location) {
|
|
37
|
+
const matches = matchRoutes(routes, location);
|
|
38
|
+
return matches;
|
|
39
|
+
}
|
|
40
|
+
export async function loadRouteModule(route, routeAssets) {
|
|
41
|
+
const routeId = route.id;
|
|
42
|
+
if (!routeId) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (!routeAssets[routeId]) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const {
|
|
49
|
+
chunkIds
|
|
50
|
+
} = routeAssets[routeId];
|
|
51
|
+
if (!chunkIds) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
await Promise.all(chunkIds.map(chunkId => {
|
|
56
|
+
return __webpack_chunk_load__(String(chunkId));
|
|
57
|
+
}));
|
|
58
|
+
} catch (error) {
|
|
59
|
+
console.error(error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,85 +1,131 @@
|
|
|
1
1
|
const _excluded = ["Component"];
|
|
2
|
-
|
|
2
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3
4
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
-
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
-
|
|
7
6
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
12
|
-
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
|
-
import React from 'react';
|
|
15
|
-
import { Route, matchPath } from 'react-router-dom';
|
|
7
|
+
import React, { Suspense } from 'react';
|
|
8
|
+
import { Route } from 'react-router-dom';
|
|
16
9
|
import { DefaultNotFound } from "./DefaultNotFound";
|
|
10
|
+
import { RootLayout } from "./root";
|
|
17
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
-
|
|
12
|
+
const renderNestedRoute = (nestedRoute, parent) => {
|
|
13
|
+
const {
|
|
14
|
+
children,
|
|
15
|
+
index,
|
|
16
|
+
id,
|
|
17
|
+
component: Component
|
|
18
|
+
} = nestedRoute;
|
|
19
|
+
const childElements = children === null || children === void 0 ? void 0 : children.map(childRoute => {
|
|
20
|
+
return renderNestedRoute(childRoute, nestedRoute);
|
|
21
|
+
});
|
|
22
|
+
const routeProps = {
|
|
23
|
+
caseSensitive: nestedRoute.caseSensitive,
|
|
24
|
+
path: nestedRoute.path,
|
|
25
|
+
id: nestedRoute.id,
|
|
26
|
+
loader: nestedRoute.loader,
|
|
27
|
+
action: nestedRoute.action,
|
|
28
|
+
hasErrorBoundary: nestedRoute.hasErrorBoundary,
|
|
29
|
+
shouldRevalidate: nestedRoute.shouldRevalidate,
|
|
30
|
+
handle: nestedRoute.handle,
|
|
31
|
+
index: nestedRoute.index,
|
|
32
|
+
errorElement: nestedRoute.errorElement
|
|
33
|
+
};
|
|
34
|
+
if (nestedRoute.error) {
|
|
35
|
+
const errorElement = /*#__PURE__*/_jsx(nestedRoute.error, {});
|
|
36
|
+
routeProps.errorElement = errorElement;
|
|
37
|
+
}
|
|
38
|
+
let element;
|
|
39
|
+
if (Component) {
|
|
40
|
+
if (parent !== null && parent !== void 0 && parent.loading) {
|
|
41
|
+
const Loading = parent.loading;
|
|
42
|
+
element = /*#__PURE__*/_jsx(Suspense, {
|
|
43
|
+
fallback: /*#__PURE__*/_jsx(Loading, {}),
|
|
44
|
+
children: /*#__PURE__*/_jsx(Component, {})
|
|
45
|
+
});
|
|
46
|
+
} else {
|
|
47
|
+
element = /*#__PURE__*/_jsx(Suspense, {
|
|
48
|
+
children: /*#__PURE__*/_jsx(Component, {})
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (!parent) {
|
|
53
|
+
element = /*#__PURE__*/_jsx(RootLayout, {
|
|
54
|
+
routes: [nestedRoute],
|
|
55
|
+
children: /*#__PURE__*/_jsx(Suspense, {
|
|
56
|
+
children: element
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
routeProps.element = element;
|
|
61
|
+
const routeElement = index ? /*#__PURE__*/_jsx(Route, _objectSpread(_objectSpread({}, routeProps), {}, {
|
|
62
|
+
index: true
|
|
63
|
+
}), id) : /*#__PURE__*/_jsx(Route, _objectSpread(_objectSpread({}, routeProps), {}, {
|
|
64
|
+
index: false,
|
|
65
|
+
children: childElements
|
|
66
|
+
}), id);
|
|
67
|
+
return routeElement;
|
|
68
|
+
};
|
|
69
|
+
export function getRouteComponents(routes, globalApp) {
|
|
19
70
|
const Layout = _ref => {
|
|
20
71
|
let {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const GlobalLayout = routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp;
|
|
26
|
-
|
|
72
|
+
Component
|
|
73
|
+
} = _ref,
|
|
74
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
75
|
+
const GlobalLayout = globalApp;
|
|
27
76
|
if (!GlobalLayout) {
|
|
28
77
|
return /*#__PURE__*/_jsx(Component, _objectSpread({}, props));
|
|
29
78
|
}
|
|
30
|
-
|
|
31
79
|
return /*#__PURE__*/_jsx(GlobalLayout, _objectSpread({
|
|
32
80
|
Component: Component
|
|
33
81
|
}, props));
|
|
34
82
|
};
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
83
|
+
const routeElements = [];
|
|
84
|
+
for (const route of routes) {
|
|
85
|
+
if (route.type === 'nested') {
|
|
86
|
+
const routeElement = renderNestedRoute(route);
|
|
87
|
+
routeElements.push(routeElement);
|
|
88
|
+
} else {
|
|
89
|
+
const routeElement = /*#__PURE__*/_jsx(Route, {
|
|
41
90
|
path: route.path,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
return /*#__PURE__*/_jsx(Route, {
|
|
50
|
-
path: "/",
|
|
51
|
-
render: props => {
|
|
52
|
-
const matchedRoute = findMatchedRoute(props.location.pathname);
|
|
53
|
-
|
|
54
|
-
if (!matchedRoute) {
|
|
55
|
-
return /*#__PURE__*/_jsx(DefaultNotFound, {});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return /*#__PURE__*/_jsx(Route, {
|
|
59
|
-
path: matchedRoute.path,
|
|
60
|
-
exact: matchedRoute.exact,
|
|
61
|
-
sensitive: matchedRoute.sensitive,
|
|
62
|
-
render: routeProps => /*#__PURE__*/_jsx(Layout, _objectSpread(_objectSpread({
|
|
63
|
-
Component: matchedRoute.component
|
|
64
|
-
}, routeProps), extraProps))
|
|
65
|
-
});
|
|
91
|
+
element: /*#__PURE__*/_jsx(Layout, {
|
|
92
|
+
Component: route.component
|
|
93
|
+
})
|
|
94
|
+
}, route.path);
|
|
95
|
+
routeElements.push(routeElement);
|
|
66
96
|
}
|
|
67
|
-
}
|
|
97
|
+
}
|
|
98
|
+
routeElements.push( /*#__PURE__*/_jsx(Route, {
|
|
99
|
+
path: "*",
|
|
100
|
+
element: /*#__PURE__*/_jsx(DefaultNotFound, {})
|
|
101
|
+
}, "*"));
|
|
102
|
+
return routeElements;
|
|
103
|
+
}
|
|
104
|
+
export function renderRoutes(routesConfig) {
|
|
105
|
+
if (!routesConfig) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
const {
|
|
109
|
+
routes,
|
|
110
|
+
globalApp
|
|
111
|
+
} = routesConfig;
|
|
112
|
+
if (!routes) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
const routeElements = getRouteComponents(routes, globalApp);
|
|
116
|
+
return routeElements;
|
|
68
117
|
}
|
|
69
118
|
export function getLocation(serverContext) {
|
|
70
119
|
var _url$replace;
|
|
71
|
-
|
|
72
120
|
const {
|
|
73
121
|
pathname,
|
|
74
122
|
url
|
|
75
123
|
} = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {};
|
|
76
124
|
const cleanUrl = url === null || url === void 0 ? void 0 : (_url$replace = url.replace('http://', '')) === null || _url$replace === void 0 ? void 0 : _url$replace.replace('https://', '');
|
|
77
125
|
const index = (cleanUrl || '').indexOf(pathname);
|
|
78
|
-
|
|
79
126
|
if (index === -1) {
|
|
80
127
|
return pathname;
|
|
81
128
|
}
|
|
82
|
-
|
|
83
129
|
return cleanUrl.substring(index);
|
|
84
130
|
}
|
|
85
131
|
export const urlJoin = (...parts) => {
|
|
@@ -89,22 +135,17 @@ export const urlJoin = (...parts) => {
|
|
|
89
135
|
};
|
|
90
136
|
export function standardSlash(str) {
|
|
91
137
|
let addr = str;
|
|
92
|
-
|
|
93
138
|
if (!addr || typeof addr !== 'string') {
|
|
94
139
|
return addr;
|
|
95
140
|
}
|
|
96
|
-
|
|
97
141
|
if (addr.startsWith('.')) {
|
|
98
142
|
addr = addr.slice(1);
|
|
99
143
|
}
|
|
100
|
-
|
|
101
144
|
if (!addr.startsWith('/')) {
|
|
102
145
|
addr = `/${addr}`;
|
|
103
146
|
}
|
|
104
|
-
|
|
105
147
|
if (addr.endsWith('/') && addr !== '/') {
|
|
106
148
|
addr = addr.slice(0, addr.length - 1);
|
|
107
149
|
}
|
|
108
|
-
|
|
109
150
|
return addr;
|
|
110
151
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
// legacy withRouter
|
|
5
|
+
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { useLocation, useNavigate, useParams } from 'react-router-dom';
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
export const withRouter = Component => {
|
|
10
|
+
return props => {
|
|
11
|
+
const location = useLocation();
|
|
12
|
+
const params = useParams();
|
|
13
|
+
const navigate = useNavigate();
|
|
14
|
+
return /*#__PURE__*/_jsx(Component, _objectSpread(_objectSpread({}, props), {}, {
|
|
15
|
+
location: location,
|
|
16
|
+
params: params,
|
|
17
|
+
navigate: navigate
|
|
18
|
+
}));
|
|
19
|
+
};
|
|
20
|
+
};
|