@modern-js/runtime 2.57.1 → 2.57.2-alpha.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/dist/cjs/core/browser/hydrate.js +9 -25
- package/dist/cjs/core/browser/index.js +8 -5
- package/dist/cjs/core/compatible.js +6 -19
- package/dist/cjs/core/constants.js +8 -2
- package/dist/cjs/core/context/index.js +2 -0
- package/dist/cjs/core/react/index.js +1 -10
- package/dist/cjs/core/react/wrapper.js +44 -0
- package/dist/cjs/core/server/constants.js +0 -6
- package/dist/cjs/core/server/stream/shared.js +4 -16
- package/dist/cjs/core/server/string/index.js +4 -6
- package/dist/cjs/core/server/string/prefetch.js +7 -21
- package/dist/cjs/core/server/string/ssrData.js +1 -1
- package/dist/esm/core/browser/hydrate.js +9 -15
- package/dist/esm/core/browser/index.js +9 -6
- package/dist/esm/core/compatible.js +5 -22
- package/dist/esm/core/constants.js +5 -1
- package/dist/esm/core/context/index.js +2 -1
- package/dist/esm/core/react/index.js +2 -14
- package/dist/esm/core/react/wrapper.js +10 -0
- package/dist/esm/core/server/constants.js +0 -4
- package/dist/esm/core/server/stream/shared.js +4 -6
- package/dist/esm/core/server/string/index.js +4 -6
- package/dist/esm/core/server/string/prefetch.js +7 -11
- package/dist/esm/core/server/string/ssrData.js +1 -1
- package/dist/esm-node/core/browser/hydrate.js +9 -15
- package/dist/esm-node/core/browser/index.js +8 -5
- package/dist/esm-node/core/compatible.js +6 -19
- package/dist/esm-node/core/constants.js +5 -1
- package/dist/esm-node/core/context/index.js +2 -1
- package/dist/esm-node/core/react/index.js +2 -11
- package/dist/esm-node/core/react/wrapper.js +10 -0
- package/dist/esm-node/core/server/constants.js +0 -4
- package/dist/esm-node/core/server/stream/shared.js +4 -6
- package/dist/esm-node/core/server/string/index.js +4 -6
- package/dist/esm-node/core/server/string/prefetch.js +7 -11
- package/dist/esm-node/core/server/string/ssrData.js +1 -1
- package/dist/types/core/compatible.d.ts +1 -1
- package/dist/types/core/constants.d.ts +2 -0
- package/dist/types/core/context/index.d.ts +1 -1
- package/dist/types/core/react/index.d.ts +1 -1
- package/dist/types/core/react/wrapper.d.ts +3 -0
- package/dist/types/core/server/constants.d.ts +0 -2
- package/package.json +5 -6
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var hydrate_exports = {};
|
|
30
20
|
__export(hydrate_exports, {
|
|
@@ -35,8 +25,8 @@ module.exports = __toCommonJS(hydrate_exports);
|
|
|
35
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
26
|
var import_url = require("@modern-js/runtime-utils/url");
|
|
37
27
|
var import_component = require("@loadable/component");
|
|
38
|
-
var import_react = __toESM(require("react"));
|
|
39
28
|
var import_constants = require("../constants");
|
|
29
|
+
var import_wrapper = require("../react/wrapper");
|
|
40
30
|
var import_withCallback = require("./withCallback");
|
|
41
31
|
const isReact18 = () => process.env.IS_REACT18 === "true";
|
|
42
32
|
function hydrateRoot(App, context, ModernRender, ModernHydrate) {
|
|
@@ -68,38 +58,32 @@ function hydrateRoot(App, context, ModernRender, ModernHydrate) {
|
|
|
68
58
|
if (renderLevel === import_constants.RenderLevel.SERVER_RENDER) {
|
|
69
59
|
const SSRApp = () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_withCallback.WithCallback, {
|
|
70
60
|
callback,
|
|
71
|
-
children:
|
|
72
|
-
_internal_context: hydrateContext
|
|
73
|
-
})
|
|
61
|
+
children: App
|
|
74
62
|
});
|
|
75
|
-
return ModernHydrate(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SSRApp, {}));
|
|
63
|
+
return ModernHydrate((0, import_wrapper.wrapRuntimeContextProvider)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SSRApp, {}), hydrateContext));
|
|
76
64
|
} else {
|
|
77
|
-
return ModernRender(App);
|
|
65
|
+
return ModernRender((0, import_wrapper.wrapRuntimeContextProvider)(App, context));
|
|
78
66
|
}
|
|
79
67
|
}
|
|
80
68
|
return stringSSRHydrate();
|
|
81
69
|
function stringSSRHydrate() {
|
|
82
70
|
if (renderLevel === import_constants.RenderLevel.CLIENT_RENDER || renderLevel === import_constants.RenderLevel.SERVER_PREFETCH) {
|
|
83
|
-
return ModernRender(App);
|
|
71
|
+
return ModernRender((0, import_wrapper.wrapRuntimeContextProvider)(App, context));
|
|
84
72
|
} else if (renderLevel === import_constants.RenderLevel.SERVER_RENDER) {
|
|
85
73
|
return new Promise((resolve) => {
|
|
86
74
|
if (isReact18()) {
|
|
87
75
|
(0, import_component.loadableReady)(() => {
|
|
88
76
|
const SSRApp = () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_withCallback.WithCallback, {
|
|
89
77
|
callback,
|
|
90
|
-
children:
|
|
91
|
-
_internal_context: hydrateContext
|
|
92
|
-
})
|
|
78
|
+
children: App
|
|
93
79
|
});
|
|
94
|
-
ModernHydrate(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SSRApp, {})).then((root) => {
|
|
80
|
+
ModernHydrate((0, import_wrapper.wrapRuntimeContextProvider)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SSRApp, {}), hydrateContext)).then((root) => {
|
|
95
81
|
resolve(root);
|
|
96
82
|
});
|
|
97
83
|
});
|
|
98
84
|
} else {
|
|
99
85
|
(0, import_component.loadableReady)(() => {
|
|
100
|
-
ModernHydrate(
|
|
101
|
-
_internal_context: hydrateContext
|
|
102
|
-
}), callback).then((root) => {
|
|
86
|
+
ModernHydrate((0, import_wrapper.wrapRuntimeContextProvider)(App, hydrateContext), callback).then((root) => {
|
|
103
87
|
resolve(root);
|
|
104
88
|
});
|
|
105
89
|
});
|
|
@@ -107,7 +91,7 @@ function hydrateRoot(App, context, ModernRender, ModernHydrate) {
|
|
|
107
91
|
});
|
|
108
92
|
} else {
|
|
109
93
|
console.warn(`unknow render level: ${renderLevel}, execute render()`);
|
|
110
|
-
return ModernRender(App);
|
|
94
|
+
return ModernRender((0, import_wrapper.wrapRuntimeContextProvider)(App, context));
|
|
111
95
|
}
|
|
112
96
|
}
|
|
113
97
|
}
|
|
@@ -31,12 +31,14 @@ __export(browser_exports, {
|
|
|
31
31
|
render: () => render
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(browser_exports);
|
|
34
|
-
var import_react = __toESM(require("react"));
|
|
35
34
|
var import_cookie = __toESM(require("cookie"));
|
|
35
|
+
var import_parsed = require("@modern-js/runtime-utils/parsed");
|
|
36
36
|
var import_context = require("../context");
|
|
37
37
|
var import_runtime = require("../context/runtime");
|
|
38
38
|
var import_loaderManager = require("../loader/loaderManager");
|
|
39
39
|
var import_runner = require("../plugin/runner");
|
|
40
|
+
var import_wrapper = require("../react/wrapper");
|
|
41
|
+
var import_constants = require("../constants");
|
|
40
42
|
var import_hydrate = require("./hydrate");
|
|
41
43
|
const IS_REACT18 = process.env.IS_REACT18 === "true";
|
|
42
44
|
function getSSRData() {
|
|
@@ -71,6 +73,9 @@ async function render(App, id) {
|
|
|
71
73
|
};
|
|
72
74
|
if (isClientArgs(id)) {
|
|
73
75
|
var _ssrData_data, _ssrData_data1;
|
|
76
|
+
window._SSR_DATA = window._SSR_DATA || (0, import_parsed.parsedJSONFromElement)(import_constants.SSR_DATA_JSON_ID);
|
|
77
|
+
const routeData = (0, import_parsed.parsedJSONFromElement)(import_constants.ROUTER_DATA_JSON_ID);
|
|
78
|
+
window._ROUTER_DATA = window._ROUTER_DATA || routeData;
|
|
74
79
|
const ssrData = getSSRData();
|
|
75
80
|
const loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data = ssrData.data) === null || _ssrData_data === void 0 ? void 0 : _ssrData_data.loadersData) || {};
|
|
76
81
|
const initialLoadersState = Object.keys(loadersData).reduce((res, key) => {
|
|
@@ -99,9 +104,7 @@ async function render(App, id) {
|
|
|
99
104
|
const rootElement = id && typeof id !== "string" ? id : document.getElementById(id || "root");
|
|
100
105
|
async function ModernRender(App2) {
|
|
101
106
|
const renderFunc = IS_REACT18 ? renderWithReact18 : renderWithReact17;
|
|
102
|
-
return renderFunc(
|
|
103
|
-
_internal_context: context
|
|
104
|
-
}), rootElement);
|
|
107
|
+
return renderFunc(App2, rootElement);
|
|
105
108
|
}
|
|
106
109
|
async function ModernHydrate(App2, callback) {
|
|
107
110
|
const hydrateFunc = IS_REACT18 ? hydrateWithReact18 : hydrateWithReact17;
|
|
@@ -110,7 +113,7 @@ async function render(App, id) {
|
|
|
110
113
|
if (ssrData) {
|
|
111
114
|
return (0, import_hydrate.hydrateRoot)(App, context, ModernRender, ModernHydrate);
|
|
112
115
|
}
|
|
113
|
-
return ModernRender(App);
|
|
116
|
+
return ModernRender((0, import_wrapper.wrapRuntimeContextProvider)(App, context));
|
|
114
117
|
}
|
|
115
118
|
throw Error("`render` function needs id in browser environment, it needs to be string or element");
|
|
116
119
|
}
|
|
@@ -42,6 +42,7 @@ var import_loaderManager = require("./loader/loaderManager");
|
|
|
42
42
|
var import_runner = require("./plugin/runner");
|
|
43
43
|
var import_context = require("./context");
|
|
44
44
|
var import_hydrate = require("./browser/hydrate");
|
|
45
|
+
var import_wrapper = require("./react/wrapper");
|
|
45
46
|
const IS_REACT18 = process.env.IS_REACT18 === "true";
|
|
46
47
|
function isClientArgs(id) {
|
|
47
48
|
return typeof id === "string" || typeof HTMLElement !== "undefined" && id instanceof HTMLElement;
|
|
@@ -66,23 +67,13 @@ const createApp = ({ plugins, runtime, props: globalProps }) => {
|
|
|
66
67
|
}) : child));
|
|
67
68
|
};
|
|
68
69
|
const WrapperApp = runner.wrapRoot(WrapperComponent);
|
|
69
|
-
const WrapComponent = (
|
|
70
|
-
let contextValue = _internal_context;
|
|
71
|
-
if (!(contextValue === null || contextValue === void 0 ? void 0 : contextValue.runner)) {
|
|
72
|
-
var _getGlobalAppInit;
|
|
73
|
-
contextValue = getInitialContext(runner);
|
|
74
|
-
runner === null || runner === void 0 ? void 0 : runner.beforeRender(contextValue);
|
|
75
|
-
(_getGlobalAppInit = (0, import_context.getGlobalAppInit)()) === null || _getGlobalAppInit === void 0 ? void 0 : _getGlobalAppInit(contextValue);
|
|
76
|
-
}
|
|
70
|
+
const WrapComponent = (props) => {
|
|
77
71
|
const mergedProps = {
|
|
78
72
|
...props,
|
|
79
73
|
...globalProps
|
|
80
74
|
};
|
|
81
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
82
|
-
|
|
83
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrapperApp, {
|
|
84
|
-
...mergedProps
|
|
85
|
-
})
|
|
75
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrapperApp, {
|
|
76
|
+
...mergedProps
|
|
86
77
|
});
|
|
87
78
|
};
|
|
88
79
|
return WrapComponent;
|
|
@@ -98,9 +89,7 @@ const bootstrap = async (BootApp, id, root, ReactDOM) => {
|
|
|
98
89
|
return init === null || init === void 0 ? void 0 : init(context2);
|
|
99
90
|
};
|
|
100
91
|
if (!id) {
|
|
101
|
-
return /* @__PURE__ */
|
|
102
|
-
_internal_context: context
|
|
103
|
-
});
|
|
92
|
+
return (0, import_wrapper.wrapRuntimeContextProvider)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(App, {}), context);
|
|
104
93
|
}
|
|
105
94
|
const isBrowser = typeof window !== "undefined" && window.name !== "nodejs";
|
|
106
95
|
if (isBrowser) {
|
|
@@ -171,9 +160,7 @@ const bootstrap = async (BootApp, id, root, ReactDOM) => {
|
|
|
171
160
|
if (ssrData) {
|
|
172
161
|
return (0, import_hydrate.hydrateRoot)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(App, {}), context, ModernRender, ModernHydrate);
|
|
173
162
|
}
|
|
174
|
-
return ModernRender(/* @__PURE__ */
|
|
175
|
-
_internal_context: context
|
|
176
|
-
}));
|
|
163
|
+
return ModernRender((0, import_wrapper.wrapRuntimeContextProvider)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(App, {}), context));
|
|
177
164
|
} else {
|
|
178
165
|
throw Error("`bootstrap` needs id in browser environment, it needs to be string or element");
|
|
179
166
|
}
|
|
@@ -18,7 +18,9 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var constants_exports = {};
|
|
20
20
|
__export(constants_exports, {
|
|
21
|
-
|
|
21
|
+
ROUTER_DATA_JSON_ID: () => ROUTER_DATA_JSON_ID,
|
|
22
|
+
RenderLevel: () => RenderLevel,
|
|
23
|
+
SSR_DATA_JSON_ID: () => SSR_DATA_JSON_ID
|
|
22
24
|
});
|
|
23
25
|
module.exports = __toCommonJS(constants_exports);
|
|
24
26
|
var RenderLevel;
|
|
@@ -27,7 +29,11 @@ var RenderLevel;
|
|
|
27
29
|
RenderLevel2[RenderLevel2["SERVER_PREFETCH"] = 1] = "SERVER_PREFETCH";
|
|
28
30
|
RenderLevel2[RenderLevel2["SERVER_RENDER"] = 2] = "SERVER_RENDER";
|
|
29
31
|
})(RenderLevel || (RenderLevel = {}));
|
|
32
|
+
const SSR_DATA_JSON_ID = "__MODERN_SSR_DATA__";
|
|
33
|
+
const ROUTER_DATA_JSON_ID = "__MODERN_ROUTER_DATA__";
|
|
30
34
|
// Annotate the CommonJS export names for ESM import in node:
|
|
31
35
|
0 && (module.exports = {
|
|
32
|
-
|
|
36
|
+
ROUTER_DATA_JSON_ID,
|
|
37
|
+
RenderLevel,
|
|
38
|
+
SSR_DATA_JSON_ID
|
|
33
39
|
});
|
|
@@ -24,6 +24,7 @@ __export(context_exports, {
|
|
|
24
24
|
getGlobalAppInit: () => getGlobalAppInit,
|
|
25
25
|
getGlobalLayoutApp: () => getGlobalLayoutApp,
|
|
26
26
|
getGlobalRoutes: () => getGlobalRoutes,
|
|
27
|
+
getInitialContext: () => import_runtime.getInitialContext,
|
|
27
28
|
setGlobalContext: () => setGlobalContext
|
|
28
29
|
});
|
|
29
30
|
module.exports = __toCommonJS(context_exports);
|
|
@@ -61,5 +62,6 @@ function getGlobalLayoutApp() {
|
|
|
61
62
|
getGlobalAppInit,
|
|
62
63
|
getGlobalLayoutApp,
|
|
63
64
|
getGlobalRoutes,
|
|
65
|
+
getInitialContext,
|
|
64
66
|
setGlobalContext
|
|
65
67
|
});
|
|
@@ -21,22 +21,13 @@ __export(react_exports, {
|
|
|
21
21
|
createRoot: () => createRoot
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(react_exports);
|
|
24
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
24
|
var import_context = require("../context");
|
|
26
25
|
var import_runner = require("../plugin/runner");
|
|
27
26
|
function createRoot(UserApp) {
|
|
28
27
|
const App = UserApp || (0, import_context.getGlobalApp)();
|
|
29
28
|
const runner = (0, import_runner.getGlobalRunner)();
|
|
30
29
|
const WrapperApp = runner.wrapRoot(App);
|
|
31
|
-
|
|
32
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.RuntimeReactContext.Provider, {
|
|
33
|
-
value: _internal_context,
|
|
34
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrapperApp, {
|
|
35
|
-
...props
|
|
36
|
-
})
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
return WrapComponent;
|
|
30
|
+
return WrapperApp;
|
|
40
31
|
}
|
|
41
32
|
// Annotate the CommonJS export names for ESM import in node:
|
|
42
33
|
0 && (module.exports = {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var wrapper_exports = {};
|
|
30
|
+
__export(wrapper_exports, {
|
|
31
|
+
wrapRuntimeContextProvider: () => wrapRuntimeContextProvider
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(wrapper_exports);
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
var import_context = require("../context");
|
|
36
|
+
function wrapRuntimeContextProvider(App, contextValue) {
|
|
37
|
+
return /* @__PURE__ */ import_react.default.createElement(import_context.RuntimeReactContext.Provider, {
|
|
38
|
+
value: contextValue
|
|
39
|
+
}, App);
|
|
40
|
+
}
|
|
41
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
+
0 && (module.exports = {
|
|
43
|
+
wrapRuntimeContextProvider
|
|
44
|
+
});
|
|
@@ -21,8 +21,6 @@ __export(constants_exports, {
|
|
|
21
21
|
CHUNK_CSS_PLACEHOLDER: () => CHUNK_CSS_PLACEHOLDER,
|
|
22
22
|
CHUNK_JS_PLACEHOLDER: () => CHUNK_JS_PLACEHOLDER,
|
|
23
23
|
HTML_PLACEHOLDER: () => HTML_PLACEHOLDER,
|
|
24
|
-
ROUTER_DATA_JSON_ID: () => ROUTER_DATA_JSON_ID,
|
|
25
|
-
SSR_DATA_JSON_ID: () => SSR_DATA_JSON_ID,
|
|
26
24
|
SSR_DATA_PLACEHOLDER: () => SSR_DATA_PLACEHOLDER
|
|
27
25
|
});
|
|
28
26
|
module.exports = __toCommonJS(constants_exports);
|
|
@@ -30,14 +28,10 @@ const HTML_PLACEHOLDER = "<!--<?- html ?>-->";
|
|
|
30
28
|
const SSR_DATA_PLACEHOLDER = "<!--<?- SSRDataScript ?>-->";
|
|
31
29
|
const CHUNK_JS_PLACEHOLDER = "<!--<?- chunksMap.js ?>-->";
|
|
32
30
|
const CHUNK_CSS_PLACEHOLDER = "<!--<?- chunksMap.css ?>-->";
|
|
33
|
-
const SSR_DATA_JSON_ID = "__MODERN_SSR_DATA__";
|
|
34
|
-
const ROUTER_DATA_JSON_ID = "__MODERN_ROUTER_DATA__";
|
|
35
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
36
32
|
0 && (module.exports = {
|
|
37
33
|
CHUNK_CSS_PLACEHOLDER,
|
|
38
34
|
CHUNK_JS_PLACEHOLDER,
|
|
39
35
|
HTML_PLACEHOLDER,
|
|
40
|
-
ROUTER_DATA_JSON_ID,
|
|
41
|
-
SSR_DATA_JSON_ID,
|
|
42
36
|
SSR_DATA_PLACEHOLDER
|
|
43
37
|
});
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var shared_exports = {};
|
|
30
20
|
__export(shared_exports, {
|
|
@@ -37,7 +27,7 @@ module.exports = __toCommonJS(shared_exports);
|
|
|
37
27
|
var import_time = require("@modern-js/runtime-utils/time");
|
|
38
28
|
var import_request = require("@modern-js/runtime-utils/universal/request");
|
|
39
29
|
var import_node = require("@modern-js/runtime-utils/node");
|
|
40
|
-
var
|
|
30
|
+
var import_wrapper = require("../../react/wrapper");
|
|
41
31
|
var import_tracer = require("../tracer");
|
|
42
32
|
var import_utils = require("../utils");
|
|
43
33
|
var ShellChunkStatus;
|
|
@@ -74,11 +64,9 @@ function createRenderStreaming(createReadableStreamFromElement) {
|
|
|
74
64
|
const onTiming = (0, import_tracer.createOnTiming)(options.onTiming);
|
|
75
65
|
const { htmlTemplate, entryName } = resource;
|
|
76
66
|
const ssrConfig = (0, import_utils.getSSRConfigByEntry)(entryName, config.ssr, config.ssrByEntries);
|
|
77
|
-
const rootElement =
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
})
|
|
81
|
-
});
|
|
67
|
+
const rootElement = (0, import_wrapper.wrapRuntimeContextProvider)(serverRoot, Object.assign(runtimeContext, {
|
|
68
|
+
ssr: true
|
|
69
|
+
}));
|
|
82
70
|
const stream = await createReadableStreamFromElement(request, rootElement, {
|
|
83
71
|
config,
|
|
84
72
|
htmlTemplate,
|
|
@@ -33,10 +33,10 @@ __export(string_exports, {
|
|
|
33
33
|
module.exports = __toCommonJS(string_exports);
|
|
34
34
|
var import_react_helmet = __toESM(require("react-helmet"));
|
|
35
35
|
var import_server = __toESM(require("react-dom/server"));
|
|
36
|
-
var import_react = __toESM(require("react"));
|
|
37
36
|
var import_time = require("@modern-js/runtime-utils/time");
|
|
38
37
|
var import_node = require("@modern-js/runtime-utils/node");
|
|
39
38
|
var import_request = require("@modern-js/runtime-utils/universal/request");
|
|
39
|
+
var import_wrapper = require("../../react/wrapper");
|
|
40
40
|
var import_helmet = require("../helmet");
|
|
41
41
|
var import_utils = require("../utils");
|
|
42
42
|
var import_constants = require("../constants");
|
|
@@ -94,11 +94,9 @@ const renderString = async (request, serverRoot, options) => {
|
|
|
94
94
|
nonce: config.nonce
|
|
95
95
|
})
|
|
96
96
|
];
|
|
97
|
-
const rootElement =
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
})
|
|
101
|
-
});
|
|
97
|
+
const rootElement = (0, import_wrapper.wrapRuntimeContextProvider)(serverRoot, Object.assign(runtimeContext, {
|
|
98
|
+
ssr: true
|
|
99
|
+
}));
|
|
102
100
|
const html = await generateHtml(rootElement, htmlTemplate, chunkSet, collectors, ((_runtimeContext_ssrContext = runtimeContext.ssrContext) === null || _runtimeContext_ssrContext === void 0 ? void 0 : _runtimeContext_ssrContext.htmlModifiers) || [], tracer);
|
|
103
101
|
return html;
|
|
104
102
|
});
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var prefetch_exports = {};
|
|
30
20
|
__export(prefetch_exports, {
|
|
@@ -36,7 +26,7 @@ var import_node = require("@modern-js/runtime-utils/node");
|
|
|
36
26
|
var import_server2 = require("@loadable/server");
|
|
37
27
|
var import_time = require("@modern-js/runtime-utils/time");
|
|
38
28
|
var import_request = require("@modern-js/runtime-utils/universal/request");
|
|
39
|
-
var
|
|
29
|
+
var import_wrapper = require("../../react/wrapper");
|
|
40
30
|
var import_tracer = require("../tracer");
|
|
41
31
|
const prefetch = async (App, request, options, ssrConfig, { onError, onTiming }) => {
|
|
42
32
|
const headersData = (0, import_request.parseHeaders)(request);
|
|
@@ -54,17 +44,13 @@ const prefetch = async (App, request, options, ssrConfig, { onError, onTiming })
|
|
|
54
44
|
entryName
|
|
55
45
|
].filter(Boolean)
|
|
56
46
|
});
|
|
57
|
-
(0, import_server.renderToStaticMarkup)(extractor.collectChunks(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
})
|
|
61
|
-
})));
|
|
47
|
+
(0, import_server.renderToStaticMarkup)(extractor.collectChunks((0, import_wrapper.wrapRuntimeContextProvider)(App, Object.assign(context, {
|
|
48
|
+
ssr: false
|
|
49
|
+
}))));
|
|
62
50
|
} else {
|
|
63
|
-
(0, import_server.renderToStaticMarkup)(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
})
|
|
67
|
-
}));
|
|
51
|
+
(0, import_server.renderToStaticMarkup)((0, import_wrapper.wrapRuntimeContextProvider)(App, Object.assign(context, {
|
|
52
|
+
ssr: false
|
|
53
|
+
})));
|
|
68
54
|
}
|
|
69
55
|
const cost = end();
|
|
70
56
|
onTiming(import_tracer.SSRTimings.PRERENDER, cost);
|
|
@@ -28,7 +28,7 @@ var import_class_private_method_get = require("@swc/helpers/_/_class_private_met
|
|
|
28
28
|
var import_class_private_method_init = require("@swc/helpers/_/_class_private_method_init");
|
|
29
29
|
var import_node = require("@modern-js/runtime-utils/node");
|
|
30
30
|
var import_utils = require("../utils");
|
|
31
|
-
var import_constants = require("
|
|
31
|
+
var import_constants = require("../../constants");
|
|
32
32
|
var _options = /* @__PURE__ */ new WeakMap(), _getSSRData = /* @__PURE__ */ new WeakSet(), _getSSRDataScripts = /* @__PURE__ */ new WeakSet();
|
|
33
33
|
class SSRDataCollector {
|
|
34
34
|
effect() {
|
|
@@ -3,8 +3,8 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
4
|
import { normalizePathname } from "@modern-js/runtime-utils/url";
|
|
5
5
|
import { loadableReady } from "@loadable/component";
|
|
6
|
-
import React from "react";
|
|
7
6
|
import { RenderLevel } from "../constants";
|
|
7
|
+
import { wrapRuntimeContextProvider } from "../react/wrapper";
|
|
8
8
|
import { WithCallback } from "./withCallback";
|
|
9
9
|
var isReact18 = function() {
|
|
10
10
|
return process.env.IS_REACT18 === "true";
|
|
@@ -38,20 +38,18 @@ function hydrateRoot(App, context, ModernRender, ModernHydrate) {
|
|
|
38
38
|
var SSRApp = function() {
|
|
39
39
|
return /* @__PURE__ */ _jsx(WithCallback, {
|
|
40
40
|
callback,
|
|
41
|
-
children:
|
|
42
|
-
_internal_context: hydrateContext
|
|
43
|
-
})
|
|
41
|
+
children: App
|
|
44
42
|
});
|
|
45
43
|
};
|
|
46
|
-
return ModernHydrate(/* @__PURE__ */ _jsx(SSRApp, {}));
|
|
44
|
+
return ModernHydrate(wrapRuntimeContextProvider(/* @__PURE__ */ _jsx(SSRApp, {}), hydrateContext));
|
|
47
45
|
} else {
|
|
48
|
-
return ModernRender(App);
|
|
46
|
+
return ModernRender(wrapRuntimeContextProvider(App, context));
|
|
49
47
|
}
|
|
50
48
|
}
|
|
51
49
|
return stringSSRHydrate();
|
|
52
50
|
function stringSSRHydrate() {
|
|
53
51
|
if (renderLevel === RenderLevel.CLIENT_RENDER || renderLevel === RenderLevel.SERVER_PREFETCH) {
|
|
54
|
-
return ModernRender(App);
|
|
52
|
+
return ModernRender(wrapRuntimeContextProvider(App, context));
|
|
55
53
|
} else if (renderLevel === RenderLevel.SERVER_RENDER) {
|
|
56
54
|
return new Promise(function(resolve) {
|
|
57
55
|
if (isReact18()) {
|
|
@@ -59,20 +57,16 @@ function hydrateRoot(App, context, ModernRender, ModernHydrate) {
|
|
|
59
57
|
var SSRApp = function() {
|
|
60
58
|
return /* @__PURE__ */ _jsx(WithCallback, {
|
|
61
59
|
callback,
|
|
62
|
-
children:
|
|
63
|
-
_internal_context: hydrateContext
|
|
64
|
-
})
|
|
60
|
+
children: App
|
|
65
61
|
});
|
|
66
62
|
};
|
|
67
|
-
ModernHydrate(/* @__PURE__ */ _jsx(SSRApp, {})).then(function(root) {
|
|
63
|
+
ModernHydrate(wrapRuntimeContextProvider(/* @__PURE__ */ _jsx(SSRApp, {}), hydrateContext)).then(function(root) {
|
|
68
64
|
resolve(root);
|
|
69
65
|
});
|
|
70
66
|
});
|
|
71
67
|
} else {
|
|
72
68
|
loadableReady(function() {
|
|
73
|
-
ModernHydrate(
|
|
74
|
-
_internal_context: hydrateContext
|
|
75
|
-
}), callback).then(function(root) {
|
|
69
|
+
ModernHydrate(wrapRuntimeContextProvider(App, hydrateContext), callback).then(function(root) {
|
|
76
70
|
resolve(root);
|
|
77
71
|
});
|
|
78
72
|
});
|
|
@@ -80,7 +74,7 @@ function hydrateRoot(App, context, ModernRender, ModernHydrate) {
|
|
|
80
74
|
});
|
|
81
75
|
} else {
|
|
82
76
|
console.warn("unknow render level: ".concat(renderLevel, ", execute render()"));
|
|
83
|
-
return ModernRender(App);
|
|
77
|
+
return ModernRender(wrapRuntimeContextProvider(App, context));
|
|
84
78
|
}
|
|
85
79
|
}
|
|
86
80
|
}
|
|
@@ -3,12 +3,14 @@ import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
|
3
3
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
4
4
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
5
5
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
6
|
-
import React from "react";
|
|
7
6
|
import cookieTool from "cookie";
|
|
7
|
+
import { parsedJSONFromElement } from "@modern-js/runtime-utils/parsed";
|
|
8
8
|
import { getGlobalAppInit } from "../context";
|
|
9
9
|
import { getInitialContext } from "../context/runtime";
|
|
10
10
|
import { createLoaderManager } from "../loader/loaderManager";
|
|
11
11
|
import { getGlobalRunner } from "../plugin/runner";
|
|
12
|
+
import { wrapRuntimeContextProvider } from "../react/wrapper";
|
|
13
|
+
import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "../constants";
|
|
12
14
|
import { hydrateRoot } from "./hydrate";
|
|
13
15
|
var IS_REACT18 = process.env.IS_REACT18 === "true";
|
|
14
16
|
function getSSRData() {
|
|
@@ -35,7 +37,7 @@ function render(App, id) {
|
|
|
35
37
|
}
|
|
36
38
|
function _render() {
|
|
37
39
|
_render = _async_to_generator(function(App, id) {
|
|
38
|
-
var runner, context, runBeforeRender, ModernRender, ModernHydrate, _ssrData_data, _ssrData_data1, ssrData, loadersData, initialLoadersState, initialData, rootElement;
|
|
40
|
+
var runner, context, runBeforeRender, ModernRender, ModernHydrate, _ssrData_data, _ssrData_data1, routeData, ssrData, loadersData, initialLoadersState, initialData, rootElement;
|
|
39
41
|
function _ModernRender() {
|
|
40
42
|
_ModernRender = _async_to_generator(function(App2) {
|
|
41
43
|
var renderFunc;
|
|
@@ -43,9 +45,7 @@ function _render() {
|
|
|
43
45
|
renderFunc = IS_REACT18 ? renderWithReact18 : renderWithReact17;
|
|
44
46
|
return [
|
|
45
47
|
2,
|
|
46
|
-
renderFunc(
|
|
47
|
-
_internal_context: context
|
|
48
|
-
}), rootElement)
|
|
48
|
+
renderFunc(App2, rootElement)
|
|
49
49
|
];
|
|
50
50
|
});
|
|
51
51
|
});
|
|
@@ -104,6 +104,9 @@ function _render() {
|
|
|
104
104
|
ModernHydrate = function ModernHydrate2(App2, callback) {
|
|
105
105
|
return _ModernHydrate.apply(this, arguments);
|
|
106
106
|
};
|
|
107
|
+
window._SSR_DATA = window._SSR_DATA || parsedJSONFromElement(SSR_DATA_JSON_ID);
|
|
108
|
+
routeData = parsedJSONFromElement(ROUTER_DATA_JSON_ID);
|
|
109
|
+
window._ROUTER_DATA = window._ROUTER_DATA || routeData;
|
|
107
110
|
ssrData = getSSRData();
|
|
108
111
|
loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data = ssrData.data) === null || _ssrData_data === void 0 ? void 0 : _ssrData_data.loadersData) || {};
|
|
109
112
|
initialLoadersState = Object.keys(loadersData).reduce(function(res, key) {
|
|
@@ -142,7 +145,7 @@ function _render() {
|
|
|
142
145
|
}
|
|
143
146
|
return [
|
|
144
147
|
2,
|
|
145
|
-
ModernRender(App)
|
|
148
|
+
ModernRender(wrapRuntimeContextProvider(App, context))
|
|
146
149
|
];
|
|
147
150
|
case 2:
|
|
148
151
|
throw Error("`render` function needs id in browser environment, it needs to be string or element");
|
|
@@ -2,7 +2,6 @@ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
|
2
2
|
import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
3
3
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
4
4
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
5
|
-
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
6
5
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
7
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
7
|
import React, { useContext, useMemo } from "react";
|
|
@@ -13,6 +12,7 @@ import { createLoaderManager } from "./loader/loaderManager";
|
|
|
13
12
|
import { getGlobalRunner } from "./plugin/runner";
|
|
14
13
|
import { getGlobalAppInit } from "./context";
|
|
15
14
|
import { hydrateRoot as ModernHydrateRoot } from "./browser/hydrate";
|
|
15
|
+
import { wrapRuntimeContextProvider } from "./react/wrapper";
|
|
16
16
|
var IS_REACT18 = process.env.IS_REACT18 === "true";
|
|
17
17
|
function isClientArgs(id) {
|
|
18
18
|
return typeof id === "string" || typeof HTMLElement !== "undefined" && _instanceof(id, HTMLElement);
|
|
@@ -37,22 +37,9 @@ var createApp = function(param) {
|
|
|
37
37
|
}));
|
|
38
38
|
};
|
|
39
39
|
var WrapperApp = runner.wrapRoot(WrapperComponent);
|
|
40
|
-
var WrapComponent = function(
|
|
41
|
-
var _internal_context = _param._internal_context, props = _object_without_properties(_param, [
|
|
42
|
-
"_internal_context"
|
|
43
|
-
]);
|
|
44
|
-
var contextValue = _internal_context;
|
|
45
|
-
if (!(contextValue === null || contextValue === void 0 ? void 0 : contextValue.runner)) {
|
|
46
|
-
var _getGlobalAppInit;
|
|
47
|
-
contextValue = getInitialContext(runner);
|
|
48
|
-
runner === null || runner === void 0 ? void 0 : runner.beforeRender(contextValue);
|
|
49
|
-
(_getGlobalAppInit = getGlobalAppInit()) === null || _getGlobalAppInit === void 0 ? void 0 : _getGlobalAppInit(contextValue);
|
|
50
|
-
}
|
|
40
|
+
var WrapComponent = function(props) {
|
|
51
41
|
var mergedProps = _object_spread({}, props, globalProps);
|
|
52
|
-
return /* @__PURE__ */ _jsx(
|
|
53
|
-
value: contextValue,
|
|
54
|
-
children: /* @__PURE__ */ _jsx(WrapperApp, _object_spread({}, mergedProps))
|
|
55
|
-
});
|
|
42
|
+
return /* @__PURE__ */ _jsx(WrapperApp, _object_spread({}, mergedProps));
|
|
56
43
|
};
|
|
57
44
|
return WrapComponent;
|
|
58
45
|
};
|
|
@@ -93,9 +80,7 @@ var bootstrap = function() {
|
|
|
93
80
|
if (!id) {
|
|
94
81
|
return [
|
|
95
82
|
2,
|
|
96
|
-
/* @__PURE__ */
|
|
97
|
-
_internal_context: context
|
|
98
|
-
})
|
|
83
|
+
wrapRuntimeContextProvider(/* @__PURE__ */ _jsx(App, {}), context)
|
|
99
84
|
];
|
|
100
85
|
}
|
|
101
86
|
isBrowser = typeof window !== "undefined" && window.name !== "nodejs";
|
|
@@ -183,9 +168,7 @@ var bootstrap = function() {
|
|
|
183
168
|
}
|
|
184
169
|
return [
|
|
185
170
|
2,
|
|
186
|
-
ModernRender(/* @__PURE__ */
|
|
187
|
-
_internal_context: context
|
|
188
|
-
}))
|
|
171
|
+
ModernRender(wrapRuntimeContextProvider(/* @__PURE__ */ _jsx(App, {}), context))
|
|
189
172
|
];
|
|
190
173
|
case 2:
|
|
191
174
|
throw Error("`bootstrap` needs id in browser environment, it needs to be string or element");
|