@modern-js/runtime 2.0.0-beta.3 → 2.0.0-beta.5
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 +126 -0
- package/dist/js/modern/cli/index.js +49 -19
- package/dist/js/modern/cli/types.d.js +0 -0
- package/dist/js/modern/common.js +4 -1
- package/dist/js/modern/core/app-config.js +8 -9
- package/dist/js/modern/core/compatible.js +195 -169
- package/dist/js/modern/core/index.js +14 -6
- package/dist/js/modern/core/loader/index.js +4 -1
- package/dist/js/modern/core/loader/loaderManager.js +75 -77
- package/dist/js/modern/core/loader/useLoader.js +96 -69
- package/dist/js/modern/core/plugin.js +37 -20
- package/dist/js/modern/document/Body.js +20 -14
- package/dist/js/modern/document/DocumentContext.js +6 -3
- package/dist/js/modern/document/DocumentStructrueContext.js +6 -3
- package/dist/js/modern/document/Head.js +18 -17
- package/dist/js/modern/document/Html.js +42 -58
- package/dist/js/modern/document/Root.js +22 -20
- package/dist/js/modern/document/Script.js +20 -0
- package/dist/js/modern/document/Scripts.js +7 -7
- package/dist/js/modern/document/cli/index.js +175 -85
- package/dist/js/modern/document/constants.js +41 -15
- package/dist/js/modern/document/index.js +2 -1
- package/dist/js/modern/document/type.d.js +0 -0
- package/dist/js/modern/exports/head.js +6 -3
- package/dist/js/modern/exports/loadable.js +6 -3
- package/dist/js/modern/exports/server.js +4 -1
- package/dist/js/modern/exports/styled.js +6 -3
- package/dist/js/modern/index.js +22 -2
- package/dist/js/modern/modern-app.env.d.js +0 -0
- package/dist/js/modern/router/cli/index.js +76 -60
- package/dist/js/modern/router/index.js +7 -3
- package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
- package/dist/js/modern/router/runtime/index.js +8 -3
- package/dist/js/modern/router/runtime/plugin.js +79 -37
- package/dist/js/modern/router/runtime/plugin.node.js +88 -83
- package/dist/js/modern/router/runtime/root/index.js +10 -10
- package/dist/js/modern/router/runtime/root/load.js +57 -36
- package/dist/js/modern/router/runtime/server.js +1 -1
- package/dist/js/modern/router/runtime/types.js +0 -1
- package/dist/js/modern/router/runtime/utils.js +91 -66
- package/dist/js/modern/router/runtime/withRouter.js +31 -15
- package/dist/js/modern/runtime-context.js +7 -3
- package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
- package/dist/js/modern/ssr/cli/index.js +102 -79
- package/dist/js/modern/ssr/index.js +89 -71
- package/dist/js/modern/ssr/index.node.js +59 -37
- package/dist/js/modern/ssr/prefetch.js +64 -45
- package/dist/js/modern/ssr/react/index.js +6 -2
- package/dist/js/modern/ssr/react/nossr/index.js +8 -7
- package/dist/js/modern/ssr/react/prerender/index.js +53 -28
- package/dist/js/modern/ssr/react/prerender/util.js +38 -26
- package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
- package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
- package/dist/js/modern/ssr/serverRender/index.js +34 -13
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
- package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +37 -38
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
- package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
- package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
- package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
- package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
- package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
- package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
- package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
- package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
- package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
- package/dist/js/modern/ssr/serverRender/types.js +3 -1
- package/dist/js/modern/ssr/serverRender/utils.js +11 -9
- package/dist/js/modern/ssr/type.d.js +0 -0
- package/dist/js/modern/ssr/utils.js +41 -21
- package/dist/js/modern/state/cli/index.js +43 -32
- package/dist/js/modern/state/index.js +7 -3
- package/dist/js/modern/state/plugins.js +13 -7
- package/dist/js/modern/state/runtime/index.js +9 -4
- package/dist/js/modern/state/runtime/plugin.js +56 -40
- package/dist/js/modern/state/types.js +0 -1
- package/dist/js/node/cli/index.js +79 -30
- package/dist/js/node/cli/types.d.js +0 -0
- package/dist/js/node/common.js +26 -7
- package/dist/js/node/core/app-config.js +29 -14
- package/dist/js/node/core/compatible.js +227 -186
- package/dist/js/node/core/index.js +44 -99
- package/dist/js/node/core/loader/index.js +31 -11
- package/dist/js/node/core/loader/loaderManager.js +102 -83
- package/dist/js/node/core/loader/useLoader.js +120 -83
- package/dist/js/node/core/plugin.js +65 -35
- package/dist/js/node/document/Body.js +40 -23
- package/dist/js/node/document/DocumentContext.js +33 -9
- package/dist/js/node/document/DocumentStructrueContext.js +33 -9
- package/dist/js/node/document/Head.js +43 -27
- package/dist/js/node/document/Html.js +66 -65
- package/dist/js/node/document/Root.js +47 -31
- package/dist/js/node/document/Script.js +40 -0
- package/dist/js/node/document/Scripts.js +30 -14
- package/dist/js/node/document/cli/index.js +188 -95
- package/dist/js/node/document/constants.js +73 -28
- package/dist/js/node/document/index.js +25 -93
- package/dist/js/node/document/type.d.js +0 -0
- package/dist/js/node/exports/head.js +33 -22
- package/dist/js/node/exports/loadable.js +33 -22
- package/dist/js/node/exports/server.js +26 -7
- package/dist/js/node/exports/styled.js +33 -22
- package/dist/js/node/index.js +43 -60
- package/dist/js/node/modern-app.env.d.js +0 -0
- package/dist/js/node/router/cli/index.js +89 -65
- package/dist/js/node/router/index.js +33 -30
- package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
- package/dist/js/node/router/runtime/index.js +31 -32
- package/dist/js/node/router/runtime/plugin.js +101 -44
- package/dist/js/node/router/runtime/plugin.node.js +113 -93
- package/dist/js/node/router/runtime/root/index.js +37 -21
- package/dist/js/node/router/runtime/root/load.js +80 -42
- package/dist/js/node/router/runtime/server.js +17 -16
- package/dist/js/node/router/runtime/types.js +15 -5
- package/dist/js/node/router/runtime/utils.js +112 -75
- package/dist/js/node/router/runtime/withRouter.js +53 -22
- package/dist/js/node/runtime-context.js +30 -10
- package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
- package/dist/js/node/ssr/cli/index.js +119 -85
- package/dist/js/node/ssr/index.js +125 -104
- package/dist/js/node/ssr/index.node.js +86 -59
- package/dist/js/node/ssr/prefetch.js +84 -51
- package/dist/js/node/ssr/react/index.js +27 -16
- package/dist/js/node/ssr/react/nossr/index.js +37 -16
- package/dist/js/node/ssr/react/prerender/index.js +82 -45
- package/dist/js/node/ssr/react/prerender/type.js +15 -0
- package/dist/js/node/ssr/react/prerender/util.js +63 -36
- package/dist/js/node/ssr/react/withCallback/index.js +29 -15
- package/dist/js/node/ssr/serverRender/helmet.js +37 -17
- package/dist/js/node/ssr/serverRender/index.js +55 -19
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
- package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -47
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
- package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
- package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
- package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
- package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
- package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
- package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
- package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
- package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
- package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
- package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
- package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
- package/dist/js/node/ssr/serverRender/types.js +25 -10
- package/dist/js/node/ssr/serverRender/utils.js +31 -13
- package/dist/js/node/ssr/type.d.js +0 -0
- package/dist/js/node/ssr/utils.js +63 -29
- package/dist/js/node/state/cli/index.js +58 -37
- package/dist/js/node/state/index.js +33 -30
- package/dist/js/node/state/plugins.js +43 -22
- package/dist/js/node/state/runtime/index.js +36 -50
- package/dist/js/node/state/runtime/plugin.js +89 -68
- package/dist/js/node/state/types.js +15 -5
- package/dist/js/treeshaking/cli/index.js +180 -52
- package/dist/js/treeshaking/cli/types.d.js +1 -0
- package/dist/js/treeshaking/common.js +4 -3
- package/dist/js/treeshaking/core/app-config.js +8 -13
- package/dist/js/treeshaking/core/compatible.js +473 -276
- package/dist/js/treeshaking/core/index.js +5 -6
- package/dist/js/treeshaking/core/loader/index.js +2 -1
- package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
- package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
- package/dist/js/treeshaking/core/plugin.js +164 -48
- package/dist/js/treeshaking/document/Body.js +15 -11
- package/dist/js/treeshaking/document/DocumentContext.js +7 -6
- package/dist/js/treeshaking/document/DocumentStructrueContext.js +8 -7
- package/dist/js/treeshaking/document/Head.js +18 -17
- package/dist/js/treeshaking/document/Html.js +86 -93
- package/dist/js/treeshaking/document/Root.js +23 -21
- package/dist/js/treeshaking/document/Script.js +15 -0
- package/dist/js/treeshaking/document/Scripts.js +7 -9
- package/dist/js/treeshaking/document/cli/index.js +381 -168
- package/dist/js/treeshaking/document/constants.js +34 -16
- package/dist/js/treeshaking/document/index.js +2 -1
- package/dist/js/treeshaking/document/type.d.js +1 -0
- package/dist/js/treeshaking/exports/head.js +4 -3
- package/dist/js/treeshaking/exports/loadable.js +4 -3
- package/dist/js/treeshaking/exports/server.js +4 -3
- package/dist/js/treeshaking/exports/styled.js +4 -3
- package/dist/js/treeshaking/index.js +3 -2
- package/dist/js/treeshaking/modern-app.env.d.js +1 -0
- package/dist/js/treeshaking/router/cli/index.js +145 -99
- package/dist/js/treeshaking/router/index.js +4 -3
- package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
- package/dist/js/treeshaking/router/runtime/index.js +5 -3
- package/dist/js/treeshaking/router/runtime/plugin.js +129 -62
- package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
- package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
- package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
- package/dist/js/treeshaking/router/runtime/server.js +1 -1
- package/dist/js/treeshaking/router/runtime/types.js +1 -1
- package/dist/js/treeshaking/router/runtime/utils.js +230 -142
- package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
- package/dist/js/treeshaking/runtime-context.js +4 -3
- package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
- package/dist/js/treeshaking/ssr/cli/index.js +210 -138
- package/dist/js/treeshaking/ssr/index.js +305 -144
- package/dist/js/treeshaking/ssr/index.node.js +234 -66
- package/dist/js/treeshaking/ssr/prefetch.js +196 -79
- package/dist/js/treeshaking/ssr/react/index.js +3 -2
- package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
- package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
- package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
- package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
- package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
- package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +109 -58
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
- package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
- package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
- package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
- package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
- package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
- package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
- package/dist/js/treeshaking/ssr/type.d.js +1 -0
- package/dist/js/treeshaking/ssr/utils.js +128 -64
- package/dist/js/treeshaking/state/cli/index.js +70 -68
- package/dist/js/treeshaking/state/index.js +4 -3
- package/dist/js/treeshaking/state/plugins.js +12 -11
- package/dist/js/treeshaking/state/runtime/index.js +5 -4
- package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
- package/dist/js/treeshaking/state/types.js +1 -1
- package/dist/types/cli/index.d.ts +2 -0
- package/dist/types/core/loader/loaderManager.d.ts +1 -0
- package/dist/types/core/loader/useLoader.d.ts +5 -0
- package/dist/types/core/plugin.d.ts +6 -1
- package/dist/types/document/Script.d.ts +4 -0
- package/dist/types/document/cli/index.d.ts +2 -0
- package/dist/types/document/constants.d.ts +2 -0
- package/dist/types/document/index.d.ts +1 -0
- package/dist/types/router/cli/index.d.ts +2 -0
- package/dist/types/router/runtime/index.d.ts +1 -0
- package/dist/types/router/runtime/plugin.d.ts +5 -2
- package/dist/types/router/runtime/types.d.ts +5 -2
- package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
- package/dist/types/ssr/cli/index.d.ts +2 -0
- package/dist/types/state/cli/index.d.ts +2 -0
- package/dist/types/state/types.d.ts +1 -0
- package/package.json +24 -13
- package/types/index.d.ts +2 -2
- package/types/router.d.ts +2 -2
|
@@ -1,233 +1,253 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
var __objRest = (source, exclude) => {
|
|
18
|
+
var target = {};
|
|
19
|
+
for (var prop in source)
|
|
20
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
21
|
+
target[prop] = source[prop];
|
|
22
|
+
if (source != null && __getOwnPropSymbols)
|
|
23
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
24
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
25
|
+
target[prop] = source[prop];
|
|
26
|
+
}
|
|
27
|
+
return target;
|
|
28
|
+
};
|
|
29
|
+
var __async = (__this, __arguments, generator) => {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
var fulfilled = (value) => {
|
|
32
|
+
try {
|
|
33
|
+
step(generator.next(value));
|
|
34
|
+
} catch (e) {
|
|
35
|
+
reject(e);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var rejected = (value) => {
|
|
39
|
+
try {
|
|
40
|
+
step(generator.throw(value));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
46
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
import { jsx } from "react/jsx-runtime";
|
|
50
|
+
import React, { useContext, useMemo } from "react";
|
|
51
|
+
import hoistNonReactStatics from "hoist-non-react-statics";
|
|
52
|
+
import { ROUTE_MANIFEST } from "@modern-js/utils/constants";
|
|
53
|
+
import {
|
|
54
|
+
RuntimeReactContext
|
|
55
|
+
} from "../runtime-context";
|
|
10
56
|
import { runtime } from "./plugin";
|
|
11
57
|
import { createLoaderManager } from "./loader/loaderManager";
|
|
12
|
-
|
|
13
|
-
const IS_REACT18 = process.env.IS_REACT18 === 'true';
|
|
14
|
-
const ROUTE_MANIFEST = `_MODERNJS_ROUTE_MANIFEST`;
|
|
58
|
+
const IS_REACT18 = process.env.IS_REACT18 === "true";
|
|
15
59
|
function isClientArgs(id) {
|
|
16
|
-
return typeof id ===
|
|
60
|
+
return typeof id === "string" || typeof HTMLElement !== "undefined" && id instanceof HTMLElement;
|
|
17
61
|
}
|
|
18
|
-
const runnerMap = new WeakMap();
|
|
19
|
-
const getInitialContext = runner => ({
|
|
62
|
+
const runnerMap = /* @__PURE__ */ new WeakMap();
|
|
63
|
+
const getInitialContext = (runner) => ({
|
|
20
64
|
loaderManager: createLoaderManager({}),
|
|
21
65
|
runner,
|
|
22
66
|
isBrowser: true,
|
|
23
|
-
routeManifest: typeof window !==
|
|
67
|
+
routeManifest: typeof window !== "undefined" && window[ROUTE_MANIFEST]
|
|
24
68
|
});
|
|
25
|
-
|
|
26
|
-
plugins
|
|
27
|
-
}) => {
|
|
69
|
+
const createApp = ({ plugins }) => {
|
|
28
70
|
const appRuntime = runtime.clone();
|
|
29
71
|
appRuntime.usePlugin(...plugins);
|
|
30
|
-
return App => {
|
|
72
|
+
return (App) => {
|
|
31
73
|
const runner = appRuntime.init();
|
|
32
|
-
const WrapperComponent = props => {
|
|
33
|
-
const element =
|
|
74
|
+
const WrapperComponent = (props) => {
|
|
75
|
+
const element = React.createElement(
|
|
76
|
+
App || React.Fragment,
|
|
77
|
+
__spreadValues({}, props),
|
|
78
|
+
props.children
|
|
79
|
+
);
|
|
34
80
|
const context = useContext(RuntimeReactContext);
|
|
35
|
-
return runner.provide(
|
|
36
|
-
element,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
element
|
|
42
|
-
}) => element
|
|
43
|
-
});
|
|
81
|
+
return runner.provide(
|
|
82
|
+
{ element, props: __spreadValues({}, props), context },
|
|
83
|
+
{
|
|
84
|
+
onLast: ({ element: element2 }) => element2
|
|
85
|
+
}
|
|
86
|
+
);
|
|
44
87
|
};
|
|
45
88
|
if (App) {
|
|
46
89
|
hoistNonReactStatics(WrapperComponent, App);
|
|
47
90
|
}
|
|
48
|
-
const HOCApp = runner.hoc(
|
|
49
|
-
App: WrapperComponent
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}) => {
|
|
71
|
-
var _App$init;
|
|
72
|
-
return App === null || App === void 0 ? void 0 : (_App$init = App.init) === null || _App$init === void 0 ? void 0 : _App$init.call(App, context1);
|
|
73
|
-
}
|
|
91
|
+
const HOCApp = runner.hoc(
|
|
92
|
+
{ App: WrapperComponent },
|
|
93
|
+
{
|
|
94
|
+
onLast: ({ App: App2 }) => {
|
|
95
|
+
const WrapComponent = (_a) => {
|
|
96
|
+
var _b = _a, { context } = _b, props = __objRest(_b, ["context"]);
|
|
97
|
+
let contextValue = context;
|
|
98
|
+
if (!(contextValue == null ? void 0 : contextValue.runner)) {
|
|
99
|
+
contextValue = getInitialContext(runner);
|
|
100
|
+
runner.init(
|
|
101
|
+
{ context: contextValue },
|
|
102
|
+
{
|
|
103
|
+
onLast: ({ context: context1 }) => {
|
|
104
|
+
var _a2;
|
|
105
|
+
return (_a2 = App2 == null ? void 0 : App2.init) == null ? void 0 : _a2.call(App2, context1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
return /* @__PURE__ */ jsx(RuntimeReactContext.Provider, {
|
|
111
|
+
value: contextValue,
|
|
112
|
+
children: /* @__PURE__ */ jsx(App2, __spreadValues({}, props))
|
|
74
113
|
});
|
|
75
|
-
}
|
|
76
|
-
return
|
|
77
|
-
|
|
78
|
-
children: /*#__PURE__*/_jsx(App, _objectSpread({}, props))
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
return hoistNonReactStatics(WrapComponent, App);
|
|
114
|
+
};
|
|
115
|
+
return hoistNonReactStatics(WrapComponent, App2);
|
|
116
|
+
}
|
|
82
117
|
}
|
|
83
|
-
|
|
118
|
+
);
|
|
84
119
|
runnerMap.set(HOCApp, runner);
|
|
85
120
|
return HOCApp;
|
|
86
121
|
};
|
|
87
122
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
* When csr, id is root id.
|
|
91
|
-
* When ssr, id is serverContext
|
|
92
|
-
*/
|
|
93
|
-
id,
|
|
94
|
-
/**
|
|
95
|
-
* root.render need use root to run function
|
|
96
|
-
*/
|
|
97
|
-
root, ReactDOM
|
|
98
|
-
// eslint-disable-next-line consistent-return
|
|
99
|
-
) => {
|
|
123
|
+
const bootstrap = (BootApp, id, root, ReactDOM) => __async(void 0, null, function* () {
|
|
124
|
+
var _a, _b;
|
|
100
125
|
let App = BootApp;
|
|
101
126
|
let runner = runnerMap.get(App);
|
|
102
|
-
|
|
103
|
-
// ensure Component used is created by `createApp`
|
|
104
127
|
if (!runner) {
|
|
105
|
-
App = createApp({
|
|
106
|
-
plugins: []
|
|
107
|
-
})(App);
|
|
128
|
+
App = createApp({ plugins: [] })(App);
|
|
108
129
|
runner = runnerMap.get(App);
|
|
109
130
|
}
|
|
110
131
|
const context = getInitialContext(runner);
|
|
111
|
-
const runInit = _context => runner.init(
|
|
112
|
-
context: _context
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return (_App = App) === null || _App === void 0 ? void 0 : (_App$init2 = _App.init) === null || _App$init2 === void 0 ? void 0 : _App$init2.call(_App, context1);
|
|
132
|
+
const runInit = (_context) => runner.init(
|
|
133
|
+
{ context: _context },
|
|
134
|
+
{
|
|
135
|
+
onLast: ({ context: context1 }) => {
|
|
136
|
+
var _a2;
|
|
137
|
+
return (_a2 = App == null ? void 0 : App.init) == null ? void 0 : _a2.call(App, context1);
|
|
138
|
+
}
|
|
119
139
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
// don't mount the App, let user in charge of it.
|
|
140
|
+
);
|
|
123
141
|
if (!id) {
|
|
124
|
-
return
|
|
142
|
+
return React.createElement(App, {
|
|
125
143
|
context
|
|
126
144
|
});
|
|
127
145
|
}
|
|
128
|
-
const isBrowser = typeof window !==
|
|
146
|
+
const isBrowser = typeof window !== "undefined" && window.name !== "nodejs";
|
|
129
147
|
if (isBrowser) {
|
|
130
148
|
if (isClientArgs(id)) {
|
|
131
|
-
var _ssrData$data, _ssrData$data2;
|
|
132
149
|
const ssrData = window._SSR_DATA;
|
|
133
|
-
const loadersData = (
|
|
134
|
-
const initialLoadersState = Object.keys(loadersData).reduce(
|
|
135
|
-
|
|
136
|
-
|
|
150
|
+
const loadersData = ((_a = ssrData == null ? void 0 : ssrData.data) == null ? void 0 : _a.loadersData) || {};
|
|
151
|
+
const initialLoadersState = Object.keys(loadersData).reduce(
|
|
152
|
+
(res, key) => {
|
|
153
|
+
const loaderData = loadersData[key];
|
|
154
|
+
if (loaderData.loading !== false) {
|
|
155
|
+
return res;
|
|
156
|
+
}
|
|
157
|
+
res[key] = loaderData;
|
|
137
158
|
return res;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
Object.assign(context, _objectSpread({
|
|
159
|
+
},
|
|
160
|
+
{}
|
|
161
|
+
);
|
|
162
|
+
Object.assign(context, __spreadValues({
|
|
143
163
|
loaderManager: createLoaderManager(initialLoadersState, {
|
|
144
164
|
skipStatic: true
|
|
145
165
|
})
|
|
146
|
-
}, ssrData ? {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (_ssrData$data2 = ssrData.data) === null || _ssrData$data2 === void 0 ? void 0 : _ssrData$data2.initialData;
|
|
150
|
-
const initialData = await runInit(context);
|
|
166
|
+
}, ssrData ? { ssrContext: ssrData == null ? void 0 : ssrData.context } : {}));
|
|
167
|
+
context.initialData = (_b = ssrData == null ? void 0 : ssrData.data) == null ? void 0 : _b.initialData;
|
|
168
|
+
const initialData = yield runInit(context);
|
|
151
169
|
if (initialData) {
|
|
152
170
|
context.initialData = initialData;
|
|
153
171
|
}
|
|
154
|
-
const rootElement = typeof id !==
|
|
172
|
+
const rootElement = typeof id !== "string" ? id : document.getElementById(id || "root");
|
|
155
173
|
if (!ReactDOM) {
|
|
156
|
-
throw Error(
|
|
174
|
+
throw Error("The `bootstrap` need provide `ReactDOM` parameter");
|
|
157
175
|
}
|
|
158
|
-
|
|
159
|
-
const ModernRender = App => {
|
|
176
|
+
const ModernRender = (App2) => {
|
|
160
177
|
if (IS_REACT18) {
|
|
161
178
|
if (root) {
|
|
162
|
-
root.render(
|
|
179
|
+
root.render(App2);
|
|
163
180
|
} else if (ReactDOM.createRoot) {
|
|
164
|
-
ReactDOM.createRoot(rootElement).render(
|
|
181
|
+
ReactDOM.createRoot(rootElement).render(App2);
|
|
165
182
|
} else {
|
|
166
|
-
throw Error(
|
|
183
|
+
throw Error(
|
|
184
|
+
"The `bootstrap` `ReactDOM` parameter needs to provide the `createRoot` method"
|
|
185
|
+
);
|
|
167
186
|
}
|
|
168
187
|
} else {
|
|
169
188
|
if (!ReactDOM.render) {
|
|
170
|
-
throw Error(
|
|
189
|
+
throw Error(
|
|
190
|
+
"The `bootstrap` `ReactDOM` parameter needs to provide the `render` method"
|
|
191
|
+
);
|
|
171
192
|
}
|
|
172
|
-
ReactDOM.render(
|
|
193
|
+
ReactDOM.render(App2, rootElement);
|
|
173
194
|
}
|
|
174
195
|
};
|
|
175
|
-
const ModernHydrate = (
|
|
196
|
+
const ModernHydrate = (App2, callback) => {
|
|
176
197
|
if (IS_REACT18) {
|
|
177
198
|
if (!ReactDOM.hydrateRoot) {
|
|
178
|
-
throw Error(
|
|
199
|
+
throw Error(
|
|
200
|
+
"The `bootstrap` `ReactDOM` parameter needs to provide the `hydrateRoot` method"
|
|
201
|
+
);
|
|
179
202
|
}
|
|
180
|
-
ReactDOM.hydrateRoot(rootElement,
|
|
203
|
+
ReactDOM.hydrateRoot(rootElement, App2);
|
|
181
204
|
} else {
|
|
182
205
|
if (!ReactDOM.hydrate) {
|
|
183
|
-
throw Error(
|
|
206
|
+
throw Error(
|
|
207
|
+
"The `bootstrap` `ReactDOM` parameter needs to provide the `hydrate` method"
|
|
208
|
+
);
|
|
184
209
|
}
|
|
185
|
-
ReactDOM.hydrate(
|
|
210
|
+
ReactDOM.hydrate(App2, rootElement, callback);
|
|
186
211
|
}
|
|
187
212
|
};
|
|
188
|
-
return runner.client(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}));
|
|
213
|
+
return runner.client(
|
|
214
|
+
{
|
|
215
|
+
App,
|
|
216
|
+
context,
|
|
217
|
+
ModernRender,
|
|
218
|
+
ModernHydrate
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
onLast: ({ App: App2 }) => {
|
|
222
|
+
ModernRender(React.createElement(App2, { context }));
|
|
223
|
+
}
|
|
200
224
|
}
|
|
201
|
-
|
|
225
|
+
);
|
|
202
226
|
} else {
|
|
203
|
-
throw Error(
|
|
227
|
+
throw Error(
|
|
228
|
+
"`bootstrap` needs id in browser environment, it needs to be string or element"
|
|
229
|
+
);
|
|
204
230
|
}
|
|
205
231
|
} else {
|
|
206
232
|
Object.assign(context, {
|
|
207
233
|
ssrContext: id,
|
|
208
234
|
isBrowser: false,
|
|
209
|
-
loaderManager: createLoaderManager(
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
235
|
+
loaderManager: createLoaderManager(
|
|
236
|
+
{},
|
|
237
|
+
{
|
|
238
|
+
skipNonStatic: id.staticGenerate,
|
|
239
|
+
skipStatic: process.env.NODE_ENV === "production" && !id.staticGenerate
|
|
240
|
+
}
|
|
241
|
+
)
|
|
214
242
|
});
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
result instanceof Response && result.status >= 300 && result.status <= 399) {
|
|
221
|
-
const {
|
|
222
|
-
status
|
|
223
|
-
} = result;
|
|
224
|
-
const redirectUrl = result.headers.get('Location') || '/';
|
|
225
|
-
const {
|
|
226
|
-
ssrContext
|
|
227
|
-
} = context;
|
|
243
|
+
const isRedirectResponse = (result) => {
|
|
244
|
+
if (typeof Response !== "undefined" && result instanceof Response && result.status >= 300 && result.status <= 399) {
|
|
245
|
+
const { status } = result;
|
|
246
|
+
const redirectUrl = result.headers.get("Location") || "/";
|
|
247
|
+
const { ssrContext } = context;
|
|
228
248
|
if (ssrContext) {
|
|
229
249
|
ssrContext.res.statusCode = status;
|
|
230
|
-
ssrContext.res.setHeader(
|
|
250
|
+
ssrContext.res.setHeader("Location", redirectUrl);
|
|
231
251
|
ssrContext.redirection.status = status;
|
|
232
252
|
ssrContext.redirection.url = redirectUrl;
|
|
233
253
|
}
|
|
@@ -235,7 +255,7 @@ root, ReactDOM
|
|
|
235
255
|
}
|
|
236
256
|
return false;
|
|
237
257
|
};
|
|
238
|
-
const initialData =
|
|
258
|
+
const initialData = yield runInit(context);
|
|
239
259
|
if (!isRedirectResponse(initialData)) {
|
|
240
260
|
context.initialData = initialData;
|
|
241
261
|
return runner.server({
|
|
@@ -244,16 +264,22 @@ root, ReactDOM
|
|
|
244
264
|
});
|
|
245
265
|
}
|
|
246
266
|
}
|
|
247
|
-
};
|
|
248
|
-
|
|
267
|
+
});
|
|
268
|
+
const useRuntimeContext = () => {
|
|
249
269
|
const context = useContext(RuntimeReactContext);
|
|
250
|
-
const memoizedContext = useMemo(
|
|
251
|
-
context
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
270
|
+
const memoizedContext = useMemo(
|
|
271
|
+
() => context.runner.pickContext(
|
|
272
|
+
{ context, pickedContext: {} },
|
|
273
|
+
{
|
|
274
|
+
onLast: ({ pickedContext }) => pickedContext
|
|
275
|
+
}
|
|
276
|
+
),
|
|
277
|
+
[context]
|
|
278
|
+
);
|
|
258
279
|
return memoizedContext;
|
|
259
|
-
};
|
|
280
|
+
};
|
|
281
|
+
export {
|
|
282
|
+
bootstrap,
|
|
283
|
+
createApp,
|
|
284
|
+
useRuntimeContext
|
|
285
|
+
};
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// compatible
|
|
1
|
+
import { createPlugin, createRuntime, runtime, registerInit } from "./plugin";
|
|
2
|
+
import { defineConfig, getConfig } from "./app-config";
|
|
5
3
|
export * from "./compatible";
|
|
6
|
-
|
|
4
|
+
import { RuntimeReactContext, ServerRouterContext } from "../runtime-context";
|
|
7
5
|
export * from "./loader";
|
|
8
|
-
export * from
|
|
6
|
+
export * from "@modern-js/plugin";
|
|
7
|
+
export {
|
|
8
|
+
RuntimeReactContext,
|
|
9
|
+
ServerRouterContext,
|
|
10
|
+
createPlugin,
|
|
11
|
+
createRuntime,
|
|
12
|
+
defineConfig,
|
|
13
|
+
getConfig,
|
|
14
|
+
registerInit,
|
|
15
|
+
runtime
|
|
16
|
+
};
|