@modern-js/runtime 2.35.0 → 2.36.0
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/dist/cjs/cli/index.js +48 -30
- package/dist/cjs/common.js +27 -18
- package/dist/cjs/config.js +15 -3
- package/dist/cjs/core/appConfig.js +25 -15
- package/dist/cjs/core/compatible.js +69 -53
- package/dist/cjs/core/index.js +47 -40
- package/dist/cjs/core/loader/index.js +35 -9
- package/dist/cjs/core/loader/loaderManager.js +37 -18
- package/dist/cjs/core/loader/useLoader.js +53 -31
- package/dist/cjs/core/plugin.js +41 -34
- package/dist/cjs/core/types.js +15 -3
- package/dist/cjs/document/Body.js +35 -19
- package/dist/cjs/document/Comment.js +29 -14
- package/dist/cjs/document/DocumentContext.js +36 -10
- package/dist/cjs/document/DocumentStructureContext.js +36 -10
- package/dist/cjs/document/Head.js +40 -31
- package/dist/cjs/document/Html.js +37 -23
- package/dist/cjs/document/Links.js +28 -13
- package/dist/cjs/document/Root.js +37 -28
- package/dist/cjs/document/Script.js +29 -14
- package/dist/cjs/document/Scripts.js +28 -13
- package/dist/cjs/document/Style.js +29 -14
- package/dist/cjs/document/cli/index.js +72 -57
- package/dist/cjs/document/constants.js +64 -72
- package/dist/cjs/document/index.js +42 -15
- package/dist/cjs/exports/head.js +38 -11
- package/dist/cjs/exports/loadable.js +38 -11
- package/dist/cjs/exports/server.js +24 -7
- package/dist/cjs/exports/styled.js +38 -11
- package/dist/cjs/index.js +41 -38
- package/dist/cjs/router/cli/index.js +32 -24
- package/dist/cjs/router/index.js +39 -18
- package/dist/cjs/router/runtime/DefaultNotFound.js +26 -11
- package/dist/cjs/router/runtime/DeferredDataScripts.js +21 -8
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +49 -38
- package/dist/cjs/router/runtime/PrefetchLink.js +64 -50
- package/dist/cjs/router/runtime/fetch.js +24 -7
- package/dist/cjs/router/runtime/fetch.node.js +25 -8
- package/dist/cjs/router/runtime/fetch.worker.js +24 -7
- package/dist/cjs/router/runtime/hooks.js +26 -9
- package/dist/cjs/router/runtime/index.js +155 -208
- package/dist/cjs/router/runtime/plugin.js +64 -50
- package/dist/cjs/router/runtime/plugin.node.js +66 -50
- package/dist/cjs/router/runtime/server.js +20 -4
- package/dist/cjs/router/runtime/types.js +15 -3
- package/dist/cjs/router/runtime/utils.js +64 -51
- package/dist/cjs/router/runtime/withRouter.js +30 -15
- package/dist/cjs/runtimeContext.js +28 -18
- package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +40 -23
- package/dist/cjs/ssr/cli/index.js +57 -41
- package/dist/cjs/ssr/cli/loadable-bundler-plugin.js +31 -13
- package/dist/cjs/ssr/index.js +71 -52
- package/dist/cjs/ssr/index.node.js +45 -27
- package/dist/cjs/ssr/prefetch.js +31 -18
- package/dist/cjs/ssr/react/index.js +27 -17
- package/dist/cjs/ssr/react/nossr/index.js +38 -12
- package/dist/cjs/ssr/react/prerender/index.js +52 -27
- package/dist/cjs/ssr/react/prerender/type.js +15 -3
- package/dist/cjs/ssr/react/prerender/util.js +33 -28
- package/dist/cjs/ssr/react/withCallback/index.js +27 -11
- package/dist/cjs/ssr/serverRender/helmet.js +23 -15
- package/dist/cjs/ssr/serverRender/index.js +24 -11
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +30 -13
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.share.js +25 -15
- package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +48 -26
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +49 -23
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +35 -23
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +33 -22
- package/dist/cjs/ssr/serverRender/renderToStream/template.js +28 -11
- package/dist/cjs/ssr/serverRender/renderToString/buildHtml.js +31 -24
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +81 -59
- package/dist/cjs/ssr/serverRender/renderToString/index.js +44 -18
- package/dist/cjs/ssr/serverRender/renderToString/loadable.js +61 -33
- package/dist/cjs/ssr/serverRender/renderToString/render.js +39 -13
- package/dist/cjs/ssr/serverRender/renderToString/styledComponent.js +28 -11
- package/dist/cjs/ssr/serverRender/renderToString/type.js +24 -7
- package/dist/cjs/ssr/serverRender/tracker.js +27 -18
- package/dist/cjs/ssr/serverRender/types.js +25 -8
- package/dist/cjs/ssr/serverRender/utils.js +31 -24
- package/dist/cjs/ssr/utils.js +42 -25
- package/dist/cjs/state/cli/index.js +28 -19
- package/dist/cjs/state/index.js +39 -18
- package/dist/cjs/state/plugins.js +46 -29
- package/dist/cjs/state/runtime/index.js +39 -11
- package/dist/cjs/state/runtime/plugin.js +55 -28
- package/dist/esm/cli/index.js +6 -2
- package/dist/esm/common.js +8 -3
- package/dist/esm/config.js +0 -1
- package/dist/esm/core/appConfig.js +6 -2
- package/dist/esm/core/compatible.js +29 -25
- package/dist/esm/core/index.js +13 -3
- package/dist/esm/core/loader/index.js +4 -1
- package/dist/esm/core/loader/loaderManager.js +13 -9
- package/dist/esm/core/loader/useLoader.js +13 -10
- package/dist/esm/core/plugin.js +17 -13
- package/dist/esm/core/types.js +0 -1
- package/dist/esm/document/Body.js +4 -1
- package/dist/esm/document/Comment.js +4 -1
- package/dist/esm/document/DocumentContext.js +4 -1
- package/dist/esm/document/DocumentStructureContext.js +4 -1
- package/dist/esm/document/Head.js +6 -2
- package/dist/esm/document/Html.js +12 -10
- package/dist/esm/document/Links.js +4 -1
- package/dist/esm/document/Root.js +6 -2
- package/dist/esm/document/Script.js +4 -1
- package/dist/esm/document/Scripts.js +4 -1
- package/dist/esm/document/Style.js +4 -1
- package/dist/esm/document/cli/index.js +18 -14
- package/dist/esm/document/constants.js +42 -20
- package/dist/esm/exports/head.js +4 -1
- package/dist/esm/exports/loadable.js +4 -1
- package/dist/esm/exports/server.js +4 -1
- package/dist/esm/exports/styled.js +4 -1
- package/dist/esm/index.js +13 -2
- package/dist/esm/router/cli/index.js +12 -9
- package/dist/esm/router/index.js +6 -2
- package/dist/esm/router/runtime/DefaultNotFound.js +4 -1
- package/dist/esm/router/runtime/DeferredDataScripts.js +4 -1
- package/dist/esm/router/runtime/DeferredDataScripts.node.js +14 -13
- package/dist/esm/router/runtime/PrefetchLink.js +17 -17
- package/dist/esm/router/runtime/fetch.js +3 -1
- package/dist/esm/router/runtime/fetch.node.js +3 -1
- package/dist/esm/router/runtime/fetch.worker.js +3 -1
- package/dist/esm/router/runtime/hooks.js +3 -1
- package/dist/esm/router/runtime/index.js +72 -8
- package/dist/esm/router/runtime/plugin.js +26 -22
- package/dist/esm/router/runtime/plugin.node.js +26 -22
- package/dist/esm/router/runtime/server.js +1 -1
- package/dist/esm/router/runtime/types.js +0 -1
- package/dist/esm/router/runtime/utils.js +29 -20
- package/dist/esm/router/runtime/withRouter.js +8 -5
- package/dist/esm/runtimeContext.js +6 -2
- package/dist/esm/ssr/cli/babel-plugin-ssr-loader-id.js +107 -98
- package/dist/esm/ssr/cli/index.js +26 -24
- package/dist/esm/ssr/cli/loadable-bundler-plugin.js +105 -96
- package/dist/esm/ssr/index.js +19 -15
- package/dist/esm/ssr/index.node.js +15 -12
- package/dist/esm/ssr/prefetch.js +10 -7
- package/dist/esm/ssr/react/index.js +6 -2
- package/dist/esm/ssr/react/nossr/index.js +4 -1
- package/dist/esm/ssr/react/prerender/index.js +4 -1
- package/dist/esm/ssr/react/prerender/type.js +0 -1
- package/dist/esm/ssr/react/prerender/util.js +14 -9
- package/dist/esm/ssr/react/withCallback/index.js +4 -1
- package/dist/esm/ssr/serverRender/helmet.js +4 -1
- package/dist/esm/ssr/serverRender/index.js +4 -1
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +8 -5
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +6 -2
- package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +7 -6
- package/dist/esm/ssr/serverRender/renderToStream/index.js +6 -3
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +9 -7
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +9 -6
- package/dist/esm/ssr/serverRender/renderToStream/template.js +6 -3
- package/dist/esm/ssr/serverRender/renderToString/buildHtml.js +12 -5
- package/dist/esm/ssr/serverRender/renderToString/entry.js +7 -5
- package/dist/esm/ssr/serverRender/renderToString/index.js +8 -5
- package/dist/esm/ssr/serverRender/renderToString/loadable.js +37 -20
- package/dist/esm/ssr/serverRender/renderToString/render.js +4 -1
- package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +4 -1
- package/dist/esm/ssr/serverRender/renderToString/type.js +4 -1
- package/dist/esm/ssr/serverRender/tracker.js +8 -3
- package/dist/esm/ssr/serverRender/types.js +3 -1
- package/dist/esm/ssr/serverRender/utils.js +12 -5
- package/dist/esm/ssr/utils.js +13 -7
- package/dist/esm/state/cli/index.js +10 -6
- package/dist/esm/state/index.js +6 -2
- package/dist/esm/state/plugins.js +10 -4
- package/dist/esm/state/runtime/index.js +4 -1
- package/dist/esm/state/runtime/plugin.js +10 -7
- package/dist/esm-node/cli/index.js +6 -2
- package/dist/esm-node/common.js +8 -3
- package/dist/esm-node/config.js +0 -1
- package/dist/esm-node/core/appConfig.js +6 -2
- package/dist/esm-node/core/compatible.js +17 -13
- package/dist/esm-node/core/index.js +13 -3
- package/dist/esm-node/core/loader/index.js +4 -1
- package/dist/esm-node/core/loader/loaderManager.js +6 -2
- package/dist/esm-node/core/loader/useLoader.js +12 -9
- package/dist/esm-node/core/plugin.js +11 -7
- package/dist/esm-node/core/types.js +0 -1
- package/dist/esm-node/document/Body.js +4 -1
- package/dist/esm-node/document/Comment.js +4 -1
- package/dist/esm-node/document/DocumentContext.js +4 -1
- package/dist/esm-node/document/DocumentStructureContext.js +4 -1
- package/dist/esm-node/document/Head.js +6 -2
- package/dist/esm-node/document/Html.js +7 -5
- package/dist/esm-node/document/Links.js +4 -1
- package/dist/esm-node/document/Root.js +6 -2
- package/dist/esm-node/document/Script.js +4 -1
- package/dist/esm-node/document/Scripts.js +4 -1
- package/dist/esm-node/document/Style.js +4 -1
- package/dist/esm-node/document/cli/index.js +12 -9
- package/dist/esm-node/document/constants.js +42 -20
- package/dist/esm-node/exports/head.js +4 -1
- package/dist/esm-node/exports/loadable.js +4 -1
- package/dist/esm-node/exports/server.js +4 -1
- package/dist/esm-node/exports/styled.js +4 -1
- package/dist/esm-node/index.js +13 -2
- package/dist/esm-node/router/cli/index.js +7 -4
- package/dist/esm-node/router/index.js +6 -2
- package/dist/esm-node/router/runtime/DefaultNotFound.js +4 -1
- package/dist/esm-node/router/runtime/DeferredDataScripts.js +4 -1
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +8 -7
- package/dist/esm-node/router/runtime/PrefetchLink.js +11 -11
- package/dist/esm-node/router/runtime/fetch.js +3 -1
- package/dist/esm-node/router/runtime/fetch.node.js +3 -1
- package/dist/esm-node/router/runtime/fetch.worker.js +3 -1
- package/dist/esm-node/router/runtime/hooks.js +3 -1
- package/dist/esm-node/router/runtime/index.js +72 -8
- package/dist/esm-node/router/runtime/plugin.js +14 -10
- package/dist/esm-node/router/runtime/plugin.node.js +14 -10
- package/dist/esm-node/router/runtime/server.js +1 -1
- package/dist/esm-node/router/runtime/types.js +0 -1
- package/dist/esm-node/router/runtime/utils.js +22 -13
- package/dist/esm-node/router/runtime/withRouter.js +5 -2
- package/dist/esm-node/runtimeContext.js +6 -2
- package/dist/esm-node/ssr/cli/babel-plugin-ssr-loader-id.js +108 -99
- package/dist/esm-node/ssr/cli/index.js +15 -13
- package/dist/esm-node/ssr/cli/loadable-bundler-plugin.js +92 -83
- package/dist/esm-node/ssr/index.js +7 -3
- package/dist/esm-node/ssr/index.node.js +7 -4
- package/dist/esm-node/ssr/prefetch.js +7 -4
- package/dist/esm-node/ssr/react/index.js +6 -2
- package/dist/esm-node/ssr/react/nossr/index.js +4 -1
- package/dist/esm-node/ssr/react/prerender/index.js +4 -1
- package/dist/esm-node/ssr/react/prerender/type.js +0 -1
- package/dist/esm-node/ssr/react/prerender/util.js +14 -9
- package/dist/esm-node/ssr/react/withCallback/index.js +4 -1
- package/dist/esm-node/ssr/serverRender/helmet.js +4 -1
- package/dist/esm-node/ssr/serverRender/index.js +4 -1
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -2
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +6 -2
- package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +7 -8
- package/dist/esm-node/ssr/serverRender/renderToStream/index.js +6 -3
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +9 -7
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +8 -7
- package/dist/esm-node/ssr/serverRender/renderToStream/template.js +4 -1
- package/dist/esm-node/ssr/serverRender/renderToString/buildHtml.js +12 -5
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +5 -3
- package/dist/esm-node/ssr/serverRender/renderToString/index.js +6 -3
- package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +33 -19
- package/dist/esm-node/ssr/serverRender/renderToString/render.js +4 -1
- package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +4 -1
- package/dist/esm-node/ssr/serverRender/renderToString/type.js +4 -1
- package/dist/esm-node/ssr/serverRender/tracker.js +8 -3
- package/dist/esm-node/ssr/serverRender/types.js +3 -1
- package/dist/esm-node/ssr/serverRender/utils.js +12 -5
- package/dist/esm-node/ssr/utils.js +10 -4
- package/dist/esm-node/state/cli/index.js +6 -2
- package/dist/esm-node/state/index.js +6 -2
- package/dist/esm-node/state/plugins.js +10 -4
- package/dist/esm-node/state/runtime/index.js +4 -1
- package/dist/esm-node/state/runtime/plugin.js +4 -1
- package/dist/types/router/runtime/PrefetchLink.d.ts +1 -1
- package/dist/types/router/runtime/hooks.d.ts +1 -1
- package/dist/types/router/runtime/index.d.ts +3 -3
- package/dist/types/router/runtime/server.d.ts +1 -1
- package/dist/types/router/runtime/types.d.ts +2 -2
- package/dist/types/router/runtime/utils.d.ts +1 -1
- package/dist/types/router/runtime/withRouter.d.ts +1 -1
- package/dist/types/runtimeContext.d.ts +1 -1
- package/dist/types/ssr/serverRender/renderToString/loadable.d.ts +1 -0
- package/package.json +10 -11
- package/dist/cjs/state/types.js +0 -4
- package/dist/esm/state/types.js +0 -1
- package/dist/esm-node/state/types.js +0 -1
- package/dist/types/state/types.d.ts +0 -16
|
@@ -3,17 +3,17 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
|
3
3
|
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import { useContext, useMemo } from "react";
|
|
6
|
-
import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements, useMatches, useLocation } from "@modern-js/utils/
|
|
6
|
+
import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements, useMatches, useLocation } from "@modern-js/runtime-utils/router";
|
|
7
7
|
import hoistNonReactStatics from "hoist-non-react-statics";
|
|
8
|
-
import { parsedJSONFromElement } from "@modern-js/utils/
|
|
8
|
+
import { parsedJSONFromElement } from "@modern-js/runtime-utils/browser";
|
|
9
9
|
import { RuntimeReactContext } from "../../core";
|
|
10
10
|
import { modifyRoutes as modifyRoutesHook } from "./hooks";
|
|
11
11
|
import { deserializeErrors, renderRoutes, urlJoin } from "./utils";
|
|
12
|
-
|
|
12
|
+
var finalRouteConfig = {
|
|
13
13
|
routes: []
|
|
14
14
|
};
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
var beforeCreateRouter = true;
|
|
16
|
+
function modifyRoutes(modifyFunction) {
|
|
17
17
|
if (beforeCreateRouter) {
|
|
18
18
|
var originRoutes = finalRouteConfig.routes;
|
|
19
19
|
var newRoutes = modifyFunction(originRoutes);
|
|
@@ -22,7 +22,7 @@ export function modifyRoutes(modifyFunction) {
|
|
|
22
22
|
console.error("It is not allowed to modify routes config after create router.");
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
var routerPlugin = function(param) {
|
|
26
26
|
var _param_serverBase = param.serverBase, serverBase = _param_serverBase === void 0 ? [] : _param_serverBase, _param_supportHtml5History = param.supportHtml5History, supportHtml5History = _param_supportHtml5History === void 0 ? true : _param_supportHtml5History, _param_basename = param.basename, basename = _param_basename === void 0 ? "" : _param_basename, routesConfig = param.routesConfig, createRoutes = param.createRoutes;
|
|
27
27
|
var select = function(pathname) {
|
|
28
28
|
return serverBase.find(function(baseUrl) {
|
|
@@ -42,8 +42,8 @@ export var routerPlugin = function(param) {
|
|
|
42
42
|
init: function init(param2, next) {
|
|
43
43
|
var context = param2.context;
|
|
44
44
|
context.router = {
|
|
45
|
-
useMatches
|
|
46
|
-
useLocation
|
|
45
|
+
useMatches,
|
|
46
|
+
useLocation
|
|
47
47
|
};
|
|
48
48
|
Object.defineProperty(context, "routes", {
|
|
49
49
|
get: function get() {
|
|
@@ -51,15 +51,14 @@ export var routerPlugin = function(param) {
|
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
53
|
return next({
|
|
54
|
-
context
|
|
54
|
+
context
|
|
55
55
|
});
|
|
56
56
|
},
|
|
57
57
|
hoc: function(param2, next) {
|
|
58
58
|
var App = param2.App;
|
|
59
|
-
var _routesConfig;
|
|
60
59
|
if (!finalRouteConfig && !createRoutes) {
|
|
61
60
|
return next({
|
|
62
|
-
App
|
|
61
|
+
App
|
|
63
62
|
});
|
|
64
63
|
}
|
|
65
64
|
var getRouteApp = function() {
|
|
@@ -71,24 +70,23 @@ export var routerPlugin = function(param) {
|
|
|
71
70
|
var runtimeContext = useContext(RuntimeReactContext);
|
|
72
71
|
var getBlockNavState = runtimeContext.unstable_getBlockNavState;
|
|
73
72
|
return useMemo(function() {
|
|
74
|
-
|
|
75
|
-
if ((_hydrationData = hydrationData) === null || _hydrationData === void 0 ? void 0 : _hydrationData.errors) {
|
|
73
|
+
if (hydrationData === null || hydrationData === void 0 ? void 0 : hydrationData.errors) {
|
|
76
74
|
hydrationData = _object_spread_props(_object_spread({}, hydrationData), {
|
|
77
75
|
errors: deserializeErrors(hydrationData.errors)
|
|
78
76
|
});
|
|
79
77
|
}
|
|
80
78
|
routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes({
|
|
81
79
|
routesConfig: finalRouteConfig,
|
|
82
|
-
props
|
|
80
|
+
props
|
|
83
81
|
}));
|
|
84
82
|
var runner = api.useHookRunners();
|
|
85
83
|
routes = runner.modifyRoutes(routes);
|
|
86
84
|
var router = supportHtml5History ? createBrowserRouter(routes, {
|
|
87
85
|
basename: _basename,
|
|
88
|
-
hydrationData
|
|
86
|
+
hydrationData
|
|
89
87
|
}) : createHashRouter(routes, {
|
|
90
88
|
basename: _basename,
|
|
91
|
-
hydrationData
|
|
89
|
+
hydrationData
|
|
92
90
|
});
|
|
93
91
|
var originSubscribe = router.subscribe;
|
|
94
92
|
router.subscribe = function(listener) {
|
|
@@ -124,7 +122,7 @@ export var routerPlugin = function(param) {
|
|
|
124
122
|
var router = useCreateRouter(props);
|
|
125
123
|
return /* @__PURE__ */ _jsx(App, _object_spread_props(_object_spread({}, props), {
|
|
126
124
|
children: /* @__PURE__ */ _jsx(RouterProvider, {
|
|
127
|
-
router
|
|
125
|
+
router
|
|
128
126
|
})
|
|
129
127
|
}));
|
|
130
128
|
};
|
|
@@ -133,7 +131,7 @@ export var routerPlugin = function(param) {
|
|
|
133
131
|
if (App) {
|
|
134
132
|
RouteApp = hoistNonReactStatics(RouteApp, App);
|
|
135
133
|
}
|
|
136
|
-
if (
|
|
134
|
+
if (routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp) {
|
|
137
135
|
return next({
|
|
138
136
|
App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
|
|
139
137
|
});
|
|
@@ -147,8 +145,8 @@ export var routerPlugin = function(param) {
|
|
|
147
145
|
var remixRouter = context.remixRouter;
|
|
148
146
|
if (!remixRouter) {
|
|
149
147
|
return next({
|
|
150
|
-
context
|
|
151
|
-
pickedContext
|
|
148
|
+
context,
|
|
149
|
+
pickedContext
|
|
152
150
|
});
|
|
153
151
|
}
|
|
154
152
|
var router = {
|
|
@@ -158,9 +156,9 @@ export var routerPlugin = function(param) {
|
|
|
158
156
|
}
|
|
159
157
|
};
|
|
160
158
|
return next({
|
|
161
|
-
context
|
|
159
|
+
context,
|
|
162
160
|
pickedContext: _object_spread_props(_object_spread({}, pickedContext), {
|
|
163
|
-
router
|
|
161
|
+
router
|
|
164
162
|
})
|
|
165
163
|
});
|
|
166
164
|
}
|
|
@@ -168,3 +166,9 @@ export var routerPlugin = function(param) {
|
|
|
168
166
|
}
|
|
169
167
|
};
|
|
170
168
|
};
|
|
169
|
+
export {
|
|
170
|
+
beforeCreateRouter,
|
|
171
|
+
finalRouteConfig,
|
|
172
|
+
modifyRoutes,
|
|
173
|
+
routerPlugin
|
|
174
|
+
};
|
|
@@ -6,12 +6,12 @@ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
|
6
6
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
import { useContext } from "react";
|
|
9
|
-
import { createStaticHandler } from "@modern-js/utils/
|
|
10
|
-
import { createStaticRouter, StaticRouterProvider } from "@modern-js/utils/
|
|
9
|
+
import { createStaticHandler } from "@modern-js/runtime-utils/remix-router";
|
|
10
|
+
import { createStaticRouter, StaticRouterProvider } from "@modern-js/runtime-utils/node/router";
|
|
11
11
|
import hoistNonReactStatics from "hoist-non-react-statics";
|
|
12
|
-
import { createRoutesFromElements } from "@modern-js/utils/
|
|
13
|
-
import { createRequestContext, reporterCtx } from "@modern-js/utils/
|
|
14
|
-
import { time } from "@modern-js/utils/
|
|
12
|
+
import { createRoutesFromElements } from "@modern-js/runtime-utils/router";
|
|
13
|
+
import { createRequestContext, reporterCtx } from "@modern-js/runtime-utils/node";
|
|
14
|
+
import { time } from "@modern-js/runtime-utils/time";
|
|
15
15
|
import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
|
|
16
16
|
import { RuntimeReactContext } from "../../core";
|
|
17
17
|
import { renderRoutes, urlJoin } from "./utils";
|
|
@@ -29,7 +29,7 @@ function createFetchRequest(req) {
|
|
|
29
29
|
};
|
|
30
30
|
return new Request(url.href, init);
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
function createFetchHeaders(requestHeaders) {
|
|
33
33
|
var headers = new Headers();
|
|
34
34
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
35
35
|
try {
|
|
@@ -78,7 +78,7 @@ export function createFetchHeaders(requestHeaders) {
|
|
|
78
78
|
}
|
|
79
79
|
return headers;
|
|
80
80
|
}
|
|
81
|
-
|
|
81
|
+
var routerPlugin = function(param) {
|
|
82
82
|
var _param_basename = param.basename, basename = _param_basename === void 0 ? "" : _param_basename, routesConfig = param.routesConfig, createRoutes = param.createRoutes;
|
|
83
83
|
return {
|
|
84
84
|
name: "@modern-js/plugin-router",
|
|
@@ -98,7 +98,7 @@ export var routerPlugin = function(param) {
|
|
|
98
98
|
return [
|
|
99
99
|
2,
|
|
100
100
|
next({
|
|
101
|
-
context
|
|
101
|
+
context
|
|
102
102
|
})
|
|
103
103
|
];
|
|
104
104
|
}
|
|
@@ -109,12 +109,12 @@ export var routerPlugin = function(param) {
|
|
|
109
109
|
requestContext = createRequestContext();
|
|
110
110
|
requestContext.set(reporterCtx, reporter);
|
|
111
111
|
routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes({
|
|
112
|
-
routesConfig
|
|
113
|
-
ssrMode
|
|
112
|
+
routesConfig,
|
|
113
|
+
ssrMode,
|
|
114
114
|
props: {
|
|
115
|
-
nonce
|
|
115
|
+
nonce
|
|
116
116
|
},
|
|
117
|
-
reporter
|
|
117
|
+
reporter
|
|
118
118
|
}));
|
|
119
119
|
runner = api.useHookRunners();
|
|
120
120
|
routes = runner.modifyRoutes(routes);
|
|
@@ -126,7 +126,7 @@ export var routerPlugin = function(param) {
|
|
|
126
126
|
return [
|
|
127
127
|
4,
|
|
128
128
|
query(remixRequest, {
|
|
129
|
-
requestContext
|
|
129
|
+
requestContext
|
|
130
130
|
})
|
|
131
131
|
];
|
|
132
132
|
case 1:
|
|
@@ -148,7 +148,7 @@ export var routerPlugin = function(param) {
|
|
|
148
148
|
return [
|
|
149
149
|
2,
|
|
150
150
|
next({
|
|
151
|
-
context
|
|
151
|
+
context
|
|
152
152
|
})
|
|
153
153
|
];
|
|
154
154
|
}
|
|
@@ -157,10 +157,9 @@ export var routerPlugin = function(param) {
|
|
|
157
157
|
},
|
|
158
158
|
hoc: function(param2, next) {
|
|
159
159
|
var App = param2.App;
|
|
160
|
-
var _routesConfig;
|
|
161
160
|
if (!routesConfig) {
|
|
162
161
|
return next({
|
|
163
|
-
App
|
|
162
|
+
App
|
|
164
163
|
});
|
|
165
164
|
}
|
|
166
165
|
var getRouteApp = function() {
|
|
@@ -176,7 +175,7 @@ export var routerPlugin = function(param) {
|
|
|
176
175
|
};
|
|
177
176
|
};
|
|
178
177
|
var RouteApp = getRouteApp();
|
|
179
|
-
if (
|
|
178
|
+
if (routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp) {
|
|
180
179
|
return next({
|
|
181
180
|
App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
|
|
182
181
|
});
|
|
@@ -190,8 +189,8 @@ export var routerPlugin = function(param) {
|
|
|
190
189
|
var remixRouter = context.remixRouter;
|
|
191
190
|
if (!remixRouter) {
|
|
192
191
|
return next({
|
|
193
|
-
context
|
|
194
|
-
pickedContext
|
|
192
|
+
context,
|
|
193
|
+
pickedContext
|
|
195
194
|
});
|
|
196
195
|
}
|
|
197
196
|
var router = {
|
|
@@ -201,9 +200,9 @@ export var routerPlugin = function(param) {
|
|
|
201
200
|
}
|
|
202
201
|
};
|
|
203
202
|
return next({
|
|
204
|
-
context
|
|
203
|
+
context,
|
|
205
204
|
pickedContext: _object_spread_props(_object_spread({}, pickedContext), {
|
|
206
|
-
router
|
|
205
|
+
router
|
|
207
206
|
})
|
|
208
207
|
});
|
|
209
208
|
}
|
|
@@ -211,5 +210,10 @@ export var routerPlugin = function(param) {
|
|
|
211
210
|
}
|
|
212
211
|
};
|
|
213
212
|
};
|
|
214
|
-
|
|
213
|
+
var modifyRoutes = function() {
|
|
214
|
+
};
|
|
215
|
+
export {
|
|
216
|
+
createFetchHeaders,
|
|
217
|
+
modifyRoutes,
|
|
218
|
+
routerPlugin
|
|
215
219
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "@modern-js/utils/
|
|
1
|
+
export * from "@modern-js/runtime-utils/node/router";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -4,12 +4,12 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
|
4
4
|
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
5
5
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
import { Route, isRouteErrorResponse } from "@modern-js/utils/
|
|
8
|
-
import { ErrorResponse } from "@modern-js/utils/
|
|
9
|
-
import { renderNestedRoute } from "@modern-js/utils/
|
|
7
|
+
import { Route, isRouteErrorResponse } from "@modern-js/runtime-utils/router";
|
|
8
|
+
import { ErrorResponse } from "@modern-js/runtime-utils/remix-router";
|
|
9
|
+
import { renderNestedRoute } from "@modern-js/runtime-utils/browser";
|
|
10
10
|
import { DefaultNotFound } from "./DefaultNotFound";
|
|
11
11
|
import DeferredDataScripts from "./DeferredDataScripts";
|
|
12
|
-
|
|
12
|
+
function getRouteComponents(routes, param) {
|
|
13
13
|
var globalApp = param.globalApp, ssrMode = param.ssrMode, props = param.props, reporter = param.reporter;
|
|
14
14
|
var Layout = function(_param) {
|
|
15
15
|
var Component = _param.Component, props2 = _object_without_properties(_param, [
|
|
@@ -20,7 +20,7 @@ export function getRouteComponents(routes, param) {
|
|
|
20
20
|
return /* @__PURE__ */ _jsx(Component, _object_spread({}, props2));
|
|
21
21
|
}
|
|
22
22
|
return /* @__PURE__ */ _jsx(GlobalLayout, _object_spread({
|
|
23
|
-
Component
|
|
23
|
+
Component
|
|
24
24
|
}, props2));
|
|
25
25
|
};
|
|
26
26
|
var routeElements = [];
|
|
@@ -31,8 +31,8 @@ export function getRouteComponents(routes, param) {
|
|
|
31
31
|
if (route.type === "nested") {
|
|
32
32
|
var routeElement = renderNestedRoute(route, {
|
|
33
33
|
DeferredDataComponent: ssrMode === "stream" ? DeferredDataScripts : void 0,
|
|
34
|
-
props
|
|
35
|
-
reporter
|
|
34
|
+
props,
|
|
35
|
+
reporter
|
|
36
36
|
});
|
|
37
37
|
routeElements.push(routeElement);
|
|
38
38
|
} else {
|
|
@@ -65,7 +65,7 @@ export function getRouteComponents(routes, param) {
|
|
|
65
65
|
}, "*"));
|
|
66
66
|
return routeElements;
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
function renderRoutes(param) {
|
|
69
69
|
var routesConfig = param.routesConfig, props = param.props, ssrMode = param.ssrMode, reporter = param.reporter;
|
|
70
70
|
if (!routesConfig) {
|
|
71
71
|
return null;
|
|
@@ -75,24 +75,24 @@ export function renderRoutes(param) {
|
|
|
75
75
|
return null;
|
|
76
76
|
}
|
|
77
77
|
var routeElements = getRouteComponents(routes, {
|
|
78
|
-
globalApp
|
|
79
|
-
ssrMode
|
|
80
|
-
props
|
|
81
|
-
reporter
|
|
78
|
+
globalApp,
|
|
79
|
+
ssrMode,
|
|
80
|
+
props,
|
|
81
|
+
reporter
|
|
82
82
|
});
|
|
83
83
|
return routeElements;
|
|
84
84
|
}
|
|
85
|
-
|
|
86
|
-
var
|
|
87
|
-
var _ref = (
|
|
88
|
-
var cleanUrl =
|
|
85
|
+
function getLocation(serverContext) {
|
|
86
|
+
var _url_replace;
|
|
87
|
+
var _ref = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {}, pathname = _ref.pathname, url = _ref.url;
|
|
88
|
+
var cleanUrl = url === null || url === void 0 ? void 0 : (_url_replace = url.replace("http://", "")) === null || _url_replace === void 0 ? void 0 : _url_replace.replace("https://", "");
|
|
89
89
|
var index = (cleanUrl || "").indexOf(pathname);
|
|
90
90
|
if (index === -1) {
|
|
91
91
|
return pathname;
|
|
92
92
|
}
|
|
93
93
|
return cleanUrl.substring(index);
|
|
94
94
|
}
|
|
95
|
-
|
|
95
|
+
var urlJoin = function() {
|
|
96
96
|
for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
97
97
|
parts[_key] = arguments[_key];
|
|
98
98
|
}
|
|
@@ -100,7 +100,7 @@ export var urlJoin = function() {
|
|
|
100
100
|
var replace = new RegExp("".concat(separator, "{1,}"), "g");
|
|
101
101
|
return standardSlash(parts.join(separator).replace(replace, separator));
|
|
102
102
|
};
|
|
103
|
-
|
|
103
|
+
function standardSlash(str) {
|
|
104
104
|
var addr = str;
|
|
105
105
|
if (!addr || typeof addr !== "string") {
|
|
106
106
|
return addr;
|
|
@@ -116,7 +116,7 @@ export function standardSlash(str) {
|
|
|
116
116
|
}
|
|
117
117
|
return addr;
|
|
118
118
|
}
|
|
119
|
-
|
|
119
|
+
function serializeErrors(errors) {
|
|
120
120
|
if (!errors) {
|
|
121
121
|
return null;
|
|
122
122
|
}
|
|
@@ -156,7 +156,7 @@ export function serializeErrors(errors) {
|
|
|
156
156
|
}
|
|
157
157
|
return serialized;
|
|
158
158
|
}
|
|
159
|
-
|
|
159
|
+
function deserializeErrors(errors) {
|
|
160
160
|
if (!errors) {
|
|
161
161
|
return null;
|
|
162
162
|
}
|
|
@@ -192,3 +192,12 @@ export function deserializeErrors(errors) {
|
|
|
192
192
|
}
|
|
193
193
|
return serialized;
|
|
194
194
|
}
|
|
195
|
+
export {
|
|
196
|
+
deserializeErrors,
|
|
197
|
+
getLocation,
|
|
198
|
+
getRouteComponents,
|
|
199
|
+
renderRoutes,
|
|
200
|
+
serializeErrors,
|
|
201
|
+
standardSlash,
|
|
202
|
+
urlJoin
|
|
203
|
+
};
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
2
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
-
import { useLocation, useNavigate, useParams } from "@modern-js/utils/
|
|
5
|
-
|
|
4
|
+
import { useLocation, useNavigate, useParams } from "@modern-js/runtime-utils/router";
|
|
5
|
+
var withRouter = function(Component) {
|
|
6
6
|
return function(props) {
|
|
7
7
|
var location = useLocation();
|
|
8
8
|
var params = useParams();
|
|
9
9
|
var navigate = useNavigate();
|
|
10
10
|
return /* @__PURE__ */ _jsx(Component, _object_spread_props(_object_spread({}, props), {
|
|
11
|
-
location
|
|
12
|
-
params
|
|
13
|
-
navigate
|
|
11
|
+
location,
|
|
12
|
+
params,
|
|
13
|
+
navigate
|
|
14
14
|
}));
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
+
export {
|
|
18
|
+
withRouter
|
|
19
|
+
};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { createContext } from "react";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
var RuntimeReactContext = createContext({});
|
|
3
|
+
var ServerRouterContext = createContext({});
|
|
4
|
+
export {
|
|
5
|
+
RuntimeReactContext,
|
|
6
|
+
ServerRouterContext
|
|
7
|
+
};
|
|
@@ -1,109 +1,118 @@
|
|
|
1
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
2
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
3
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
4
|
+
};
|
|
1
5
|
import crypto from "crypto";
|
|
2
|
-
import { Buffer } from "buffer";
|
|
6
|
+
import { Buffer as Buffer2 } from "buffer";
|
|
3
7
|
import * as t from "@babel/types";
|
|
4
8
|
import { get } from "@modern-js/utils/lodash";
|
|
5
|
-
var
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var fsHash = crypto.createHash("md5");
|
|
18
|
-
var md5 = fsHash.update(fileBuf).digest("hex");
|
|
19
|
-
return md5;
|
|
20
|
-
}
|
|
21
|
-
function getUseLoaderPath(path, calleeName) {
|
|
22
|
-
var node = path.node;
|
|
23
|
-
if (!calleeName || node.callee.name !== calleeName) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
var arg1 = get(node, "arguments.0");
|
|
27
|
-
if (t.isFunction(arg1) || t.isFunctionExpression(arg1) || t.isArrowFunctionExpression(arg1) || t.isIdentifier(arg1) || t.isCallExpression(arg1) || t.isMemberExpression(arg1)) {
|
|
28
|
-
var loaderPath = path.get("arguments.0");
|
|
29
|
-
if (isDuplicateInnerLoader(loaderPath)) {
|
|
30
|
-
return false;
|
|
31
|
-
} else {
|
|
32
|
-
return loaderPath;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
console.warn("useLoader 中 loaderId 生成失败,请检查 useLoader");
|
|
36
|
-
throw path.buildCodeFrameError("\n please check the usage of ".concat(path.node.name, "\n "));
|
|
37
|
-
}
|
|
38
|
-
function isDuplicateInnerLoader(path) {
|
|
39
|
-
var node = path.node;
|
|
40
|
-
if (t.isFunctionExpression(node.callee)) {
|
|
41
|
-
if (t.isBlockStatement(node.callee.body)) {
|
|
42
|
-
if (get(node.callee.body, "body.0.declarations.0.id.name") === "innerLoader" && get(node.callee.body, "body.2.argument.name") === "innerLoader") {
|
|
43
|
-
return true;
|
|
9
|
+
var require_babel_plugin_ssr_loader_id = __commonJS({
|
|
10
|
+
"src/ssr/cli/babel-plugin-ssr-loader-id.ts"(exports, module) {
|
|
11
|
+
var RUNTIME_PACKAGE_NAMES = [
|
|
12
|
+
"@modern-js/runtime"
|
|
13
|
+
];
|
|
14
|
+
var FUNCTION_USE_LOADER_NAME = "useLoader";
|
|
15
|
+
function getHash(filepath) {
|
|
16
|
+
var cwd = process.cwd();
|
|
17
|
+
var point = filepath.indexOf(cwd);
|
|
18
|
+
var relativePath = filepath;
|
|
19
|
+
if (point !== -1) {
|
|
20
|
+
relativePath = filepath.substring(point + cwd.length);
|
|
44
21
|
}
|
|
22
|
+
var fileBuf = Buffer2.from(relativePath);
|
|
23
|
+
var fsHash = crypto.createHash("md5");
|
|
24
|
+
var md5 = fsHash.update(fileBuf).digest("hex");
|
|
25
|
+
return md5;
|
|
45
26
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
t.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
t.returnStatement(t.identifier("innerLoader"))
|
|
56
|
-
])), []);
|
|
57
|
-
}
|
|
58
|
-
module.exports = function() {
|
|
59
|
-
var genId = function genId2() {
|
|
60
|
-
return "".concat(hash, "_").concat(index++);
|
|
61
|
-
};
|
|
62
|
-
var useLoader = null;
|
|
63
|
-
var hash = "";
|
|
64
|
-
var index = 0;
|
|
65
|
-
return {
|
|
66
|
-
name: "babel-plugin-ssr-loader-id",
|
|
67
|
-
pre: function pre() {
|
|
68
|
-
index = 0;
|
|
69
|
-
useLoader = null;
|
|
70
|
-
hash = "";
|
|
71
|
-
},
|
|
72
|
-
visitor: {
|
|
73
|
-
ImportDeclaration: function ImportDeclaration(path, state) {
|
|
74
|
-
if (useLoader) {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
if (!RUNTIME_PACKAGE_NAMES.includes(get(path, "node.source.value"))) {
|
|
27
|
+
function getUseLoaderPath(path, calleeName) {
|
|
28
|
+
var node = path.node;
|
|
29
|
+
if (!calleeName || node.callee.name !== calleeName) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
var arg1 = get(node, "arguments.0");
|
|
33
|
+
if (t.isFunction(arg1) || t.isFunctionExpression(arg1) || t.isArrowFunctionExpression(arg1) || t.isIdentifier(arg1) || t.isCallExpression(arg1) || t.isMemberExpression(arg1)) {
|
|
34
|
+
var loaderPath = path.get("arguments.0");
|
|
35
|
+
if (isDuplicateInnerLoader(loaderPath)) {
|
|
78
36
|
return false;
|
|
37
|
+
} else {
|
|
38
|
+
return loaderPath;
|
|
79
39
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return false;
|
|
91
|
-
},
|
|
92
|
-
CallExpression: function CallExpression(path) {
|
|
93
|
-
var loaderPath = getUseLoaderPath(path, useLoader);
|
|
94
|
-
if (loaderPath) {
|
|
95
|
-
if (!Array.isArray(loaderPath)) {
|
|
96
|
-
loaderPath = [
|
|
97
|
-
loaderPath
|
|
98
|
-
];
|
|
40
|
+
}
|
|
41
|
+
console.warn("useLoader 中 loaderId 生成失败,请检查 useLoader");
|
|
42
|
+
throw path.buildCodeFrameError("\n please check the usage of ".concat(path.node.name, "\n "));
|
|
43
|
+
}
|
|
44
|
+
function isDuplicateInnerLoader(path) {
|
|
45
|
+
var node = path.node;
|
|
46
|
+
if (t.isFunctionExpression(node.callee)) {
|
|
47
|
+
if (t.isBlockStatement(node.callee.body)) {
|
|
48
|
+
if (get(node.callee.body, "body.0.declarations.0.id.name") === "innerLoader" && get(node.callee.body, "body.2.argument.name") === "innerLoader") {
|
|
49
|
+
return true;
|
|
99
50
|
}
|
|
100
|
-
loaderPath.forEach(function(p) {
|
|
101
|
-
p.replaceWith(getSelfRunLoaderExpression(p.node, genId()));
|
|
102
|
-
});
|
|
103
|
-
return false;
|
|
104
51
|
}
|
|
105
|
-
return false;
|
|
106
52
|
}
|
|
53
|
+
return false;
|
|
107
54
|
}
|
|
108
|
-
|
|
109
|
-
|
|
55
|
+
function getSelfRunLoaderExpression(loaderExpression, id) {
|
|
56
|
+
return t.callExpression(t.functionExpression(null, [], t.blockStatement([
|
|
57
|
+
t.variableDeclaration("var", [
|
|
58
|
+
t.variableDeclarator(t.identifier("innerLoader"), loaderExpression)
|
|
59
|
+
]),
|
|
60
|
+
t.expressionStatement(t.assignmentExpression("=", t.memberExpression(t.identifier("innerLoader"), t.identifier("id")), t.stringLiteral(id))),
|
|
61
|
+
t.returnStatement(t.identifier("innerLoader"))
|
|
62
|
+
])), []);
|
|
63
|
+
}
|
|
64
|
+
module.exports = function() {
|
|
65
|
+
var genId = function genId2() {
|
|
66
|
+
return "".concat(hash, "_").concat(index++);
|
|
67
|
+
};
|
|
68
|
+
var useLoader = null;
|
|
69
|
+
var hash = "";
|
|
70
|
+
var index = 0;
|
|
71
|
+
return {
|
|
72
|
+
name: "babel-plugin-ssr-loader-id",
|
|
73
|
+
pre: function pre() {
|
|
74
|
+
index = 0;
|
|
75
|
+
useLoader = null;
|
|
76
|
+
hash = "";
|
|
77
|
+
},
|
|
78
|
+
visitor: {
|
|
79
|
+
ImportDeclaration: function ImportDeclaration(path, state) {
|
|
80
|
+
if (useLoader) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
if (!RUNTIME_PACKAGE_NAMES.includes(get(path, "node.source.value"))) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
hash = getHash(state.file.opts.filename);
|
|
87
|
+
get(path, "node.specifiers", []).forEach(function(param) {
|
|
88
|
+
var imported = param.imported, local = param.local;
|
|
89
|
+
if (!imported) {
|
|
90
|
+
throw path.buildCodeFrameError("please `import { useLoader } from ".concat(RUNTIME_PACKAGE_NAMES[0], "`"));
|
|
91
|
+
}
|
|
92
|
+
if (!useLoader && imported.name === FUNCTION_USE_LOADER_NAME) {
|
|
93
|
+
useLoader = local.name;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return false;
|
|
97
|
+
},
|
|
98
|
+
CallExpression: function CallExpression(path) {
|
|
99
|
+
var loaderPath = getUseLoaderPath(path, useLoader);
|
|
100
|
+
if (loaderPath) {
|
|
101
|
+
if (!Array.isArray(loaderPath)) {
|
|
102
|
+
loaderPath = [
|
|
103
|
+
loaderPath
|
|
104
|
+
];
|
|
105
|
+
}
|
|
106
|
+
loaderPath.forEach(function(p) {
|
|
107
|
+
p.replaceWith(getSelfRunLoaderExpression(p.node, genId()));
|
|
108
|
+
});
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
export default require_babel_plugin_ssr_loader_id();
|