@modern-js/runtime 2.5.0-alpha.0 → 2.6.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/CHANGELOG.md +27 -0
- package/dist/cjs/cli/index.js +9 -0
- package/dist/cjs/common.js +0 -6
- package/dist/cjs/core/app-config.js +5 -1
- package/dist/cjs/core/compatible.js +8 -7
- package/dist/cjs/core/loader/index.js +4 -0
- package/dist/cjs/core/loader/loaderManager.js +6 -0
- package/dist/cjs/core/loader/useLoader.js +4 -0
- package/dist/cjs/document/Body.js +6 -8
- package/dist/cjs/document/DocumentContext.js +4 -0
- package/dist/cjs/document/DocumentStructureContext.js +4 -0
- package/dist/cjs/document/Head.js +7 -11
- package/dist/cjs/document/Html.js +24 -22
- package/dist/cjs/document/Links.js +1 -3
- package/dist/cjs/document/Root.js +8 -14
- package/dist/cjs/document/Script.js +5 -7
- package/dist/cjs/document/Scripts.js +1 -3
- package/dist/cjs/document/cli/index.js +7 -1
- package/dist/cjs/exports/head.js +4 -0
- package/dist/cjs/exports/loadable.js +4 -0
- package/dist/cjs/exports/styled.js +4 -0
- package/dist/cjs/router/cli/index.js +3 -7
- package/dist/cjs/router/index.js +4 -0
- package/dist/cjs/router/runtime/DefaultNotFound.js +13 -10
- package/dist/cjs/router/runtime/index.js +3 -52
- package/dist/cjs/router/runtime/plugin.js +6 -14
- package/dist/cjs/router/runtime/plugin.node.js +54 -10
- package/dist/cjs/router/runtime/utils.js +80 -28
- package/dist/cjs/router/runtime/withRouter.js +9 -6
- package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +4 -0
- package/dist/cjs/ssr/cli/index.js +4 -0
- package/dist/cjs/ssr/index.js +10 -24
- package/dist/cjs/ssr/index.node.js +4 -0
- package/dist/cjs/ssr/prefetch.js +3 -6
- package/dist/cjs/ssr/react/nossr/index.js +4 -0
- package/dist/cjs/ssr/react/prerender/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +19 -5
- package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +5 -0
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +7 -22
- package/dist/cjs/ssr/serverRender/renderToStream/template.js +1 -2
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +14 -12
- package/dist/cjs/ssr/serverRender/renderToString/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/cjs/ssr/serverRender/time.worker.js +1 -1
- package/dist/cjs/ssr/serverRender/utils.js +1 -1
- package/dist/cjs/ssr/utils.js +16 -4
- package/dist/cjs/state/index.js +4 -0
- package/dist/cjs/state/plugins.js +4 -0
- package/dist/cjs/state/runtime/index.js +4 -0
- package/dist/cjs/state/runtime/plugin.js +5 -7
- package/dist/esm/cli/index.js +5 -1
- package/dist/esm/common.js +1 -3
- package/dist/esm/core/app-config.js +3 -1
- package/dist/esm/core/compatible.js +3 -1
- package/dist/esm/core/loader/loaderManager.js +3 -1
- package/dist/esm/document/cli/index.js +3 -1
- package/dist/esm/router/cli/index.js +1 -5
- package/dist/esm/router/runtime/index.js +2 -3
- package/dist/esm/router/runtime/plugin.js +2 -5
- package/dist/esm/router/runtime/plugin.node.js +65 -8
- package/dist/esm/router/runtime/utils.js +106 -5
- package/dist/esm/ssr/prefetch.js +1 -0
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +39 -8
- package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +8 -19
- package/dist/esm/ssr/serverRender/renderToStream/template.js +1 -2
- package/dist/esm/ssr/serverRender/renderToString/entry.js +29 -16
- package/dist/esm/ssr/serverRender/time.worker.js +1 -1
- package/dist/esm/ssr/utils.js +6 -4
- package/dist/esm-node/cli/index.js +5 -0
- package/dist/esm-node/common.js +0 -4
- package/dist/esm-node/core/app-config.js +5 -1
- package/dist/esm-node/core/compatible.js +4 -7
- package/dist/esm-node/core/loader/loaderManager.js +2 -0
- package/dist/esm-node/document/Body.js +6 -8
- package/dist/esm-node/document/Head.js +7 -11
- package/dist/esm-node/document/Html.js +24 -22
- package/dist/esm-node/document/Links.js +1 -3
- package/dist/esm-node/document/Root.js +8 -14
- package/dist/esm-node/document/Script.js +5 -7
- package/dist/esm-node/document/Scripts.js +1 -3
- package/dist/esm-node/document/cli/index.js +3 -1
- package/dist/esm-node/router/cli/index.js +2 -5
- package/dist/esm-node/router/runtime/DefaultNotFound.js +13 -10
- package/dist/esm-node/router/runtime/index.js +2 -51
- package/dist/esm-node/router/runtime/plugin.js +2 -14
- package/dist/esm-node/router/runtime/plugin.node.js +53 -10
- package/dist/esm-node/router/runtime/utils.js +80 -22
- package/dist/esm-node/router/runtime/withRouter.js +9 -6
- package/dist/esm-node/ssr/index.js +6 -24
- package/dist/esm-node/ssr/prefetch.js +3 -6
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +9 -5
- package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +7 -22
- package/dist/esm-node/ssr/serverRender/renderToStream/template.js +1 -2
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +10 -12
- package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/esm-node/ssr/serverRender/time.worker.js +1 -1
- package/dist/esm-node/ssr/serverRender/utils.js +1 -1
- package/dist/esm-node/ssr/utils.js +6 -4
- package/dist/esm-node/state/runtime/plugin.js +1 -7
- package/dist/types/common.d.ts +1 -3
- package/dist/types/core/index.d.ts +0 -1
- package/dist/types/core/loader/index.d.ts +2 -1
- package/dist/types/core/loader/useLoader.d.ts +15 -1
- package/dist/types/router/runtime/index.d.ts +2 -4
- package/dist/types/runtime-context.d.ts +0 -2
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +0 -2
- package/dist/types/ssr/serverRender/renderToString/type.d.ts +1 -0
- package/package.json +17 -12
- package/dist/cjs/core/types.js +0 -15
- package/dist/cjs/router/index.node.js +0 -31
- package/dist/cjs/router/runtime/DeferredDataScripts.js +0 -148
- package/dist/cjs/ssr/prefetch.worker.js +0 -67
- package/dist/cjs/ssr/serverRender/renderToStream/index.worker.js +0 -64
- package/dist/cjs/ssr/serverRender/renderToString/index.worker.js +0 -58
- package/dist/esm/core/types.js +0 -1
- package/dist/esm/router/index.node.js +0 -4
- package/dist/esm/router/runtime/DeferredDataScripts.js +0 -158
- package/dist/esm/ssr/prefetch.worker.js +0 -191
- package/dist/esm/ssr/serverRender/renderToStream/index.worker.js +0 -32
- package/dist/esm/ssr/serverRender/renderToString/index.worker.js +0 -167
- package/dist/esm-node/core/types.js +0 -0
- package/dist/esm-node/router/index.node.js +0 -7
- package/dist/esm-node/router/runtime/DeferredDataScripts.js +0 -131
- package/dist/esm-node/ssr/prefetch.worker.js +0 -46
- package/dist/esm-node/ssr/serverRender/renderToStream/index.worker.js +0 -35
- package/dist/esm-node/ssr/serverRender/renderToString/index.worker.js +0 -29
- package/dist/types/core/types.d.ts +0 -21
- package/dist/types/router/index.node.d.ts +0 -3
- package/dist/types/router/runtime/DeferredDataScripts.d.ts +0 -8
- package/dist/types/ssr/prefetch.worker.d.ts +0 -13
- package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +0 -6
- package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +0 -6
|
@@ -1,4 +1,32 @@
|
|
|
1
|
-
|
|
1
|
+
function _defineProperty(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _objectSpread(target) {
|
|
15
|
+
for(var i = 1; i < arguments.length; i++){
|
|
16
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
17
|
+
var ownKeys = Object.keys(source);
|
|
18
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
19
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
20
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
ownKeys.forEach(function(key) {
|
|
24
|
+
_defineProperty(target, key, source[key]);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return target;
|
|
28
|
+
}
|
|
29
|
+
import serialize from "serialize-javascript";
|
|
2
30
|
import { buildTemplate } from "./buildTemplate.share";
|
|
3
31
|
function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
4
32
|
var injectSSRDataScript = function injectSSRDataScript(template) {
|
|
@@ -6,22 +34,25 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
6
34
|
return template.replace("<!--<?- SSRDataScript ?>-->", ssrDataScript);
|
|
7
35
|
function buildSSRDataScript() {
|
|
8
36
|
var ssrContext = options.ssrContext, renderLevel = options.renderLevel;
|
|
9
|
-
var request = ssrContext.request;
|
|
37
|
+
var request = ssrContext.request, enableUnsafeCtx = ssrContext.enableUnsafeCtx;
|
|
38
|
+
var unsafeContext = {
|
|
39
|
+
headers: request.headers
|
|
40
|
+
};
|
|
10
41
|
var SSRData = {
|
|
11
42
|
context: {
|
|
12
|
-
request: {
|
|
43
|
+
request: _objectSpread({
|
|
13
44
|
params: request.params,
|
|
14
45
|
query: request.query,
|
|
15
46
|
pathname: request.pathname,
|
|
16
47
|
host: request.host,
|
|
17
|
-
url: request.url
|
|
18
|
-
|
|
19
|
-
cookieMap: request.cookieMap
|
|
20
|
-
}
|
|
48
|
+
url: request.url
|
|
49
|
+
}, enableUnsafeCtx ? unsafeContext : {})
|
|
21
50
|
},
|
|
22
51
|
renderLevel: renderLevel
|
|
23
52
|
};
|
|
24
|
-
return "\n <script>window._SSR_DATA = ".concat(
|
|
53
|
+
return "\n <script>window._SSR_DATA = ".concat(serialize(SSRData, {
|
|
54
|
+
isJSON: true
|
|
55
|
+
}), "</script>\n ");
|
|
25
56
|
}
|
|
26
57
|
};
|
|
27
58
|
var callbacks = [
|
|
@@ -100,6 +100,7 @@ function getHeadTemplate(beforeEntryTemplate, context) {
|
|
|
100
100
|
var helmetData = ReactHelmet.renderStatic();
|
|
101
101
|
return helmetData ? helmetReplace(headTemplate2, helmetData) : headTemplate2;
|
|
102
102
|
},
|
|
103
|
+
// @TODO: prefetch scripts of lazy component
|
|
103
104
|
injectCss
|
|
104
105
|
];
|
|
105
106
|
var _ref = _slicedToArray(beforeEntryTemplate.match(HEAD_REG_EXP) || [], 1), tmp = _ref[0], headTemplate = tmp === void 0 ? "" : tmp;
|
|
@@ -59,16 +59,13 @@ function _objectSpreadProps(target, source) {
|
|
|
59
59
|
}
|
|
60
60
|
import { Transform } from "stream";
|
|
61
61
|
import { RenderLevel } from "../types";
|
|
62
|
-
import { ESCAPED_SHELL_STREAM_END_MARK } from "../../../common";
|
|
63
62
|
import { getTemplates } from "./template";
|
|
64
|
-
var ShellChunkStatus = /* @__PURE__ */ function(ShellChunkStatus2) {
|
|
65
|
-
ShellChunkStatus2[ShellChunkStatus2["IDLE"] = 0] = "IDLE";
|
|
66
|
-
ShellChunkStatus2[ShellChunkStatus2["START"] = 1] = "START";
|
|
67
|
-
ShellChunkStatus2[ShellChunkStatus2["FINIESH"] = 2] = "FINIESH";
|
|
68
|
-
return ShellChunkStatus2;
|
|
69
|
-
}(ShellChunkStatus || {});
|
|
70
63
|
function renderToPipe(rootElement, context, options) {
|
|
71
|
-
var
|
|
64
|
+
var joinChunk = function joinChunk() {
|
|
65
|
+
var before = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", chunk = arguments.length > 1 ? arguments[1] : void 0, after = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "";
|
|
66
|
+
return "".concat(before).concat(chunk.toString()).concat(after);
|
|
67
|
+
};
|
|
68
|
+
var isShellStream = true;
|
|
72
69
|
var ssrContext = context.ssrContext;
|
|
73
70
|
var forUserPipe = function(stream) {
|
|
74
71
|
return new Promise(function(resolve) {
|
|
@@ -84,17 +81,9 @@ function renderToPipe(rootElement, context, options) {
|
|
|
84
81
|
var injectableTransform = new Transform({
|
|
85
82
|
transform: function transform(chunk, _encoding, callback) {
|
|
86
83
|
try {
|
|
87
|
-
if (
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
concatedChunk = "".concat(shellBefore).concat(concatedChunk);
|
|
91
|
-
shellChunkStatus = 1 /* START */ ;
|
|
92
|
-
}
|
|
93
|
-
if (shellChunkStatus === 1 /* START */ && concatedChunk.endsWith(ESCAPED_SHELL_STREAM_END_MARK)) {
|
|
94
|
-
concatedChunk = concatedChunk.replace(ESCAPED_SHELL_STREAM_END_MARK, shellAfter);
|
|
95
|
-
shellChunkStatus = 2 /* FINIESH */ ;
|
|
96
|
-
}
|
|
97
|
-
this.push(concatedChunk);
|
|
84
|
+
if (isShellStream) {
|
|
85
|
+
this.push(joinChunk(shellBefore, chunk, shellAfter));
|
|
86
|
+
isShellStream = false;
|
|
98
87
|
} else {
|
|
99
88
|
this.push(chunk);
|
|
100
89
|
}
|
|
@@ -48,12 +48,11 @@ import { buildShellAfterTemplate } from "./buildTemplate.after";
|
|
|
48
48
|
import { buildShellBeforeTemplate } from "./bulidTemplate.before";
|
|
49
49
|
var HTML_SEPARATOR = "<!--<?- html ?>-->";
|
|
50
50
|
var getTemplates = function(context, renderLevel) {
|
|
51
|
-
var ssrContext = context.ssrContext
|
|
51
|
+
var ssrContext = context.ssrContext;
|
|
52
52
|
var _ref = _slicedToArray(ssrContext.template.split(HTML_SEPARATOR) || [], 2), tmp = _ref[0], beforeAppTemplate = tmp === void 0 ? "" : tmp, tmp1 = _ref[1], afterAppHtmlTemplate = tmp1 === void 0 ? "" : tmp1;
|
|
53
53
|
var builtBeforeTemplate = buildShellBeforeTemplate(beforeAppTemplate, context);
|
|
54
54
|
var builtAfterTemplate = buildShellAfterTemplate(afterAppHtmlTemplate, {
|
|
55
55
|
ssrContext: ssrContext,
|
|
56
|
-
routerContext: routerContext,
|
|
57
56
|
renderLevel: renderLevel
|
|
58
57
|
});
|
|
59
58
|
return {
|
|
@@ -59,6 +59,21 @@ function _defineProperty(obj, key, value) {
|
|
|
59
59
|
}
|
|
60
60
|
return obj;
|
|
61
61
|
}
|
|
62
|
+
function _objectSpread(target) {
|
|
63
|
+
for(var i = 1; i < arguments.length; i++){
|
|
64
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
65
|
+
var ownKeys = Object.keys(source);
|
|
66
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
67
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
68
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
ownKeys.forEach(function(key) {
|
|
72
|
+
_defineProperty(target, key, source[key]);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return target;
|
|
76
|
+
}
|
|
62
77
|
var __generator = this && this.__generator || function(thisArg, body) {
|
|
63
78
|
var f, y, t, g, _ = {
|
|
64
79
|
label: 0,
|
|
@@ -156,7 +171,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
156
171
|
};
|
|
157
172
|
import React from "react";
|
|
158
173
|
import ReactDomServer from "react-dom/server";
|
|
159
|
-
import
|
|
174
|
+
import serialize from "serialize-javascript";
|
|
160
175
|
import ReactHelmet from "react-helmet";
|
|
161
176
|
import helmetReplace from "../helmet";
|
|
162
177
|
import { RenderLevel } from "../types";
|
|
@@ -166,21 +181,21 @@ import { toFragments } from "./template";
|
|
|
166
181
|
import { reduce } from "./reduce";
|
|
167
182
|
import * as loadableRenderer from "./loadable";
|
|
168
183
|
import * as styledComponentRenderer from "./styledComponent";
|
|
169
|
-
var buildTemplateData = function(context, data,
|
|
170
|
-
var request = context.request;
|
|
184
|
+
var buildTemplateData = function(context, data, renderLevel) {
|
|
185
|
+
var request = context.request, enableUnsafeCtx = context.enableUnsafeCtx;
|
|
186
|
+
var unsafeContext = {
|
|
187
|
+
headers: request.headers
|
|
188
|
+
};
|
|
171
189
|
return {
|
|
172
190
|
data: data,
|
|
173
|
-
routerData: routerData,
|
|
174
191
|
context: {
|
|
175
|
-
request: {
|
|
192
|
+
request: _objectSpread({
|
|
176
193
|
params: request.params,
|
|
177
194
|
query: request.query,
|
|
178
195
|
pathname: request.pathname,
|
|
179
196
|
host: request.host,
|
|
180
|
-
url: request.url
|
|
181
|
-
|
|
182
|
-
cookieMap: request.cookieMap
|
|
183
|
-
}
|
|
197
|
+
url: request.url
|
|
198
|
+
}, enableUnsafeCtx ? unsafeContext : {})
|
|
184
199
|
},
|
|
185
200
|
renderLevel: renderLevel
|
|
186
201
|
};
|
|
@@ -221,7 +236,7 @@ var Entry = /*#__PURE__*/ function() {
|
|
|
221
236
|
value: function renderToHtml(context) {
|
|
222
237
|
var _this = this;
|
|
223
238
|
return _asyncToGenerator(function() {
|
|
224
|
-
var _ssrContext_redirection, _ssrContext_redirection1, _ssrContext_redirection2, ssrContext, prefetchData,
|
|
239
|
+
var _ssrContext_redirection, _ssrContext_redirection1, _ssrContext_redirection2, ssrContext, prefetchData, html, templateData, SSRData, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, fragment, helmetData;
|
|
225
240
|
return __generator(this, function(_state) {
|
|
226
241
|
switch(_state.label){
|
|
227
242
|
case 0:
|
|
@@ -253,12 +268,8 @@ var Entry = /*#__PURE__*/ function() {
|
|
|
253
268
|
""
|
|
254
269
|
];
|
|
255
270
|
}
|
|
256
|
-
routerContext = context.routerContext;
|
|
257
|
-
routerData = routerContext !== null && routerContext !== void 0 ? routerContext : {
|
|
258
|
-
loaderData: routerContext.loaderData
|
|
259
|
-
};
|
|
260
271
|
html = "";
|
|
261
|
-
templateData = buildTemplateData(ssrContext, prefetchData,
|
|
272
|
+
templateData = buildTemplateData(ssrContext, prefetchData, _this.result.renderLevel);
|
|
262
273
|
SSRData = _this.getSSRDataScript(templateData);
|
|
263
274
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
264
275
|
try {
|
|
@@ -386,7 +397,9 @@ var Entry = /*#__PURE__*/ function() {
|
|
|
386
397
|
key: "getSSRDataScript",
|
|
387
398
|
value: function getSSRDataScript(templateData) {
|
|
388
399
|
return {
|
|
389
|
-
SSRDataScript: "\n <script>window._SSR_DATA = ".concat(
|
|
400
|
+
SSRDataScript: "\n <script>window._SSR_DATA = ".concat(serialize(templateData, {
|
|
401
|
+
isJSON: true
|
|
402
|
+
}), "</script>\n ")
|
|
390
403
|
};
|
|
391
404
|
}
|
|
392
405
|
}
|
|
@@ -45,7 +45,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
45
45
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
46
46
|
}
|
|
47
47
|
function processHrtime(previousTimestamp) {
|
|
48
|
-
var now = new Date().getTime();
|
|
48
|
+
var now = /* @__PURE__ */ new Date().getTime();
|
|
49
49
|
var clocktime = now * 1e-3;
|
|
50
50
|
var seconds = Math.floor(clocktime);
|
|
51
51
|
var nanoseconds = Math.floor(clocktime % 1 * 1e9);
|
package/dist/esm/ssr/utils.js
CHANGED
|
@@ -72,6 +72,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
72
72
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
73
73
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
74
74
|
}
|
|
75
|
+
import cookieTool from "cookie";
|
|
75
76
|
var isReact18 = function() {
|
|
76
77
|
return process.env.IS_REACT18 === "true";
|
|
77
78
|
};
|
|
@@ -79,6 +80,7 @@ var formatServer = function(request) {
|
|
|
79
80
|
var _ref = request.headers || {}, _ref_cookie = _ref.cookie, cookie = _ref_cookie === void 0 ? "" : _ref_cookie, tmp = _ref["user-agent"], userAgent = tmp === void 0 ? "" : tmp, referer = _ref.referer;
|
|
80
81
|
return _objectSpread({
|
|
81
82
|
cookie: cookie,
|
|
83
|
+
cookieMap: cookieTool.parse(cookie || "") || {},
|
|
82
84
|
userAgent: userAgent,
|
|
83
85
|
referer: referer
|
|
84
86
|
}, request);
|
|
@@ -93,15 +95,15 @@ var getQuery = function() {
|
|
|
93
95
|
}, {});
|
|
94
96
|
};
|
|
95
97
|
var formatClient = function(request) {
|
|
96
|
-
var _request_headers
|
|
98
|
+
var _request_headers;
|
|
97
99
|
return {
|
|
98
100
|
params: request.params || {},
|
|
99
101
|
host: request.host || location.host,
|
|
100
102
|
pathname: request.pathname || location.pathname,
|
|
101
103
|
headers: request.headers || {},
|
|
102
|
-
cookieMap:
|
|
103
|
-
cookie:
|
|
104
|
-
userAgent: ((
|
|
104
|
+
cookieMap: cookieTool.parse(document.cookie || "") || {},
|
|
105
|
+
cookie: document.cookie || "",
|
|
106
|
+
userAgent: ((_request_headers = request.headers) === null || _request_headers === void 0 ? void 0 : _request_headers["user-agent"]) || navigator.userAgent,
|
|
105
107
|
referer: request.referer || document.referrer,
|
|
106
108
|
query: request.query || getQuery(),
|
|
107
109
|
url: location.href
|
|
@@ -24,6 +24,11 @@ var cli_default = () => ({
|
|
|
24
24
|
runtimeByEntries: {},
|
|
25
25
|
source: {
|
|
26
26
|
alias: {
|
|
27
|
+
/**
|
|
28
|
+
* twin.macro inserts styled-components into the code during the compilation process
|
|
29
|
+
* But it will not be installed under the user project.
|
|
30
|
+
* So need to add alias
|
|
31
|
+
*/
|
|
27
32
|
"styled-components": require.resolve("styled-components")
|
|
28
33
|
},
|
|
29
34
|
globalVars: {
|
package/dist/esm-node/common.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
const isBrowser = () => typeof window !== "undefined" && window.name !== "nodejs";
|
|
2
|
-
const JSX_SHELL_STREAM_END_MARK = "<!--<?- SHELL_STREAM_END ?>-->";
|
|
3
|
-
const ESCAPED_SHELL_STREAM_END_MARK = "<!--<?- SHELL_STREAM_END ?>-->";
|
|
4
2
|
export {
|
|
5
|
-
ESCAPED_SHELL_STREAM_END_MARK,
|
|
6
|
-
JSX_SHELL_STREAM_END_MARK,
|
|
7
3
|
isBrowser
|
|
8
4
|
};
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
const APP_CONFIG_SYMBOL = "config";
|
|
2
|
-
const getConfig = (Component) =>
|
|
2
|
+
const getConfig = (Component) => (
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
4
|
+
// @ts-expect-error
|
|
5
|
+
Component[APP_CONFIG_SYMBOL]
|
|
6
|
+
);
|
|
3
7
|
const defineConfig = (Component, config) => {
|
|
4
8
|
Component[APP_CONFIG_SYMBOL] = config;
|
|
5
9
|
return Component;
|
|
@@ -58,12 +58,7 @@ const createApp = ({ plugins }) => {
|
|
|
58
58
|
}
|
|
59
59
|
);
|
|
60
60
|
}
|
|
61
|
-
return /* @__PURE__ */ jsx(RuntimeReactContext.Provider, {
|
|
62
|
-
value: contextValue,
|
|
63
|
-
children: /* @__PURE__ */ jsx(App2, {
|
|
64
|
-
...props
|
|
65
|
-
})
|
|
66
|
-
});
|
|
61
|
+
return /* @__PURE__ */ jsx(RuntimeReactContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(App2, { ...props }) });
|
|
67
62
|
};
|
|
68
63
|
return hoistNonReactStatics(WrapComponent, App2);
|
|
69
64
|
}
|
|
@@ -190,12 +185,14 @@ const bootstrap = async (BootApp, id, root, ReactDOM) => {
|
|
|
190
185
|
{},
|
|
191
186
|
{
|
|
192
187
|
skipNonStatic: id.staticGenerate,
|
|
188
|
+
// if not static generate, only non-static loader can exec on prod env
|
|
193
189
|
skipStatic: process.env.NODE_ENV === "production" && !id.staticGenerate
|
|
194
190
|
}
|
|
195
191
|
)
|
|
196
192
|
});
|
|
197
193
|
const isRedirectResponse = (result) => {
|
|
198
|
-
if (typeof Response !== "undefined" &&
|
|
194
|
+
if (typeof Response !== "undefined" && // fix: ssg workflow doesn't inject Web Response
|
|
195
|
+
result instanceof Response && result.status >= 300 && result.status <= 399) {
|
|
199
196
|
const { status } = result;
|
|
200
197
|
const redirectUrl = result.headers.get("Location") || "/";
|
|
201
198
|
const { ssrContext } = context;
|
|
@@ -59,6 +59,7 @@ const createLoader = (id, initialData = {
|
|
|
59
59
|
reloading: hasLoaded && status === 1 /* loading */,
|
|
60
60
|
data,
|
|
61
61
|
error: error instanceof Error ? `${error.message}` : error,
|
|
62
|
+
// redundant fields for ssr log
|
|
62
63
|
_error: error
|
|
63
64
|
});
|
|
64
65
|
const notify = () => {
|
|
@@ -99,6 +100,7 @@ const createLoaderManager = (initialDataMap, managerOptions = {}) => {
|
|
|
99
100
|
id,
|
|
100
101
|
typeof initialDataMap[id] !== "undefined" ? initialDataMap[id] : { data: loaderOptions.initialData },
|
|
101
102
|
loaderFn,
|
|
103
|
+
// Todo whether static loader is exec when CSR
|
|
102
104
|
skipExec
|
|
103
105
|
);
|
|
104
106
|
loadersMap.set(id, loader);
|
|
@@ -9,14 +9,12 @@ import { DefaultRoot } from "./Root";
|
|
|
9
9
|
function Body(props) {
|
|
10
10
|
const { hasSetRoot } = useContext(DocumentStructureContext);
|
|
11
11
|
const { children } = props;
|
|
12
|
-
return /* @__PURE__ */ jsxs("body", {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
]
|
|
19
|
-
});
|
|
12
|
+
return /* @__PURE__ */ jsxs("body", { children: [
|
|
13
|
+
hasSetRoot ? null : /* @__PURE__ */ jsx(DefaultRoot, {}),
|
|
14
|
+
children,
|
|
15
|
+
`${DOCUMENT_CHUNKSMAP_PLACEHOLDER}`,
|
|
16
|
+
`${DOCUMENT_SSRDATASCRIPT_PLACEHOLDER}`
|
|
17
|
+
] });
|
|
20
18
|
}
|
|
21
19
|
export {
|
|
22
20
|
Body
|
|
@@ -7,19 +7,15 @@ import { DOCUMENT_META_PLACEHOLDER } from "./constants";
|
|
|
7
7
|
function Head(props) {
|
|
8
8
|
const { hasSetScripts, hasSetLinks } = useContext(DocumentStructureContext);
|
|
9
9
|
const { children } = props;
|
|
10
|
-
return /* @__PURE__ */ jsxs("head", {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
]
|
|
17
|
-
});
|
|
10
|
+
return /* @__PURE__ */ jsxs("head", { children: [
|
|
11
|
+
`${DOCUMENT_META_PLACEHOLDER}`,
|
|
12
|
+
!hasSetLinks && /* @__PURE__ */ jsx(Links, {}),
|
|
13
|
+
!hasSetScripts && /* @__PURE__ */ jsx(Scripts, {}),
|
|
14
|
+
children
|
|
15
|
+
] });
|
|
18
16
|
}
|
|
19
17
|
function DefaultHead() {
|
|
20
|
-
return /* @__PURE__ */ jsx("head", {
|
|
21
|
-
children: `${DOCUMENT_META_PLACEHOLDER}`
|
|
22
|
-
});
|
|
18
|
+
return /* @__PURE__ */ jsx("head", { children: `${DOCUMENT_META_PLACEHOLDER}` });
|
|
23
19
|
}
|
|
24
20
|
export {
|
|
25
21
|
DefaultHead,
|
|
@@ -34,29 +34,31 @@ function Html(props) {
|
|
|
34
34
|
const notMissMustChild = [
|
|
35
35
|
hasSetHead,
|
|
36
36
|
hasSetBody
|
|
37
|
+
// hasSetScripts,
|
|
38
|
+
// hasSetRoot,
|
|
37
39
|
].every((item) => item);
|
|
38
40
|
if (!notMissMustChild) {
|
|
39
|
-
return /* @__PURE__ */ jsx("html", {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
41
|
+
return /* @__PURE__ */ jsx("html", { children: /* @__PURE__ */ jsxs("body", { style: { color: "red" }, children: [
|
|
42
|
+
`Miss the `,
|
|
43
|
+
[
|
|
44
|
+
hasSetHead,
|
|
45
|
+
hasSetBody
|
|
46
|
+
// hasSetScripts,
|
|
47
|
+
// hasSetRoot,
|
|
48
|
+
].map((item, index) => {
|
|
49
|
+
return item ? null : [
|
|
50
|
+
"Head",
|
|
51
|
+
"Body"
|
|
52
|
+
// 'Scripts',
|
|
53
|
+
// 'Root',
|
|
54
|
+
][index];
|
|
55
|
+
}),
|
|
56
|
+
` Element`
|
|
57
|
+
] }) });
|
|
57
58
|
}
|
|
58
|
-
return /* @__PURE__ */ jsx("html", {
|
|
59
|
-
|
|
59
|
+
return /* @__PURE__ */ jsx("html", { children: /* @__PURE__ */ jsxs(
|
|
60
|
+
DocumentStructureContext.Provider,
|
|
61
|
+
{
|
|
60
62
|
value: {
|
|
61
63
|
hasSetHead,
|
|
62
64
|
hasSetScripts,
|
|
@@ -70,8 +72,8 @@ function Html(props) {
|
|
|
70
72
|
!hasSetBody && /* @__PURE__ */ jsx(Body, {}),
|
|
71
73
|
children
|
|
72
74
|
]
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
+
}
|
|
76
|
+
) });
|
|
75
77
|
}
|
|
76
78
|
export {
|
|
77
79
|
Html
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { DOCUMENT_LINKS_PLACEHOLDER } from "./constants";
|
|
3
3
|
function Links() {
|
|
4
|
-
return /* @__PURE__ */ jsx(Fragment, {
|
|
5
|
-
children: DOCUMENT_LINKS_PLACEHOLDER
|
|
6
|
-
});
|
|
4
|
+
return /* @__PURE__ */ jsx(Fragment, { children: DOCUMENT_LINKS_PLACEHOLDER });
|
|
7
5
|
}
|
|
8
6
|
export {
|
|
9
7
|
Links
|
|
@@ -7,25 +7,19 @@ function Root(props) {
|
|
|
7
7
|
const {
|
|
8
8
|
templateParams: { mountId = "root" }
|
|
9
9
|
} = useContext(DocumentContext);
|
|
10
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
11
|
-
|
|
12
|
-
children
|
|
13
|
-
|
|
14
|
-
children
|
|
15
|
-
]
|
|
16
|
-
});
|
|
10
|
+
return /* @__PURE__ */ jsxs("div", { id: `${rootId || mountId}`, children: [
|
|
11
|
+
`${DOCUMENT_SSR_PLACEHOLDER}`,
|
|
12
|
+
children
|
|
13
|
+
] });
|
|
17
14
|
}
|
|
18
15
|
function DefaultRoot(props) {
|
|
19
16
|
const {
|
|
20
17
|
templateParams: { mountId = "root" }
|
|
21
18
|
} = useContext(DocumentContext);
|
|
22
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
23
|
-
|
|
24
|
-
children
|
|
25
|
-
|
|
26
|
-
props.children
|
|
27
|
-
]
|
|
28
|
-
});
|
|
19
|
+
return /* @__PURE__ */ jsxs("div", { id: `${mountId}`, children: [
|
|
20
|
+
`${DOCUMENT_SSR_PLACEHOLDER}`,
|
|
21
|
+
props.children
|
|
22
|
+
] });
|
|
29
23
|
}
|
|
30
24
|
export {
|
|
31
25
|
DefaultRoot,
|
|
@@ -7,13 +7,11 @@ function Script(props) {
|
|
|
7
7
|
const { content } = props;
|
|
8
8
|
const contentStr = content.toString();
|
|
9
9
|
const contentIIFE = encodeURIComponent(`(${contentStr})()`);
|
|
10
|
-
return /* @__PURE__ */ jsxs(Fragment, {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
]
|
|
16
|
-
});
|
|
10
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11
|
+
`${DOCUMENT_SCRIPT_PLACEHOLDER_START}`,
|
|
12
|
+
`${contentIIFE}`,
|
|
13
|
+
`${DOCUMENT_SCRIPT_PLACEHOLDER_END}`
|
|
14
|
+
] });
|
|
17
15
|
}
|
|
18
16
|
export {
|
|
19
17
|
Script
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { DOCUMENT_SCRIPTS_PLACEHOLDER } from "./constants";
|
|
3
3
|
function Scripts() {
|
|
4
|
-
return /* @__PURE__ */ jsx(Fragment, {
|
|
5
|
-
children: `${DOCUMENT_SCRIPTS_PLACEHOLDER}`
|
|
6
|
-
});
|
|
4
|
+
return /* @__PURE__ */ jsx(Fragment, { children: `${DOCUMENT_SCRIPTS_PLACEHOLDER}` });
|
|
7
5
|
}
|
|
8
6
|
export {
|
|
9
7
|
Scripts
|
|
@@ -91,6 +91,7 @@ var cli_default = () => ({
|
|
|
91
91
|
entryPoints: [documentFilePath],
|
|
92
92
|
outfile: htmlOutputFile,
|
|
93
93
|
platform: "node",
|
|
94
|
+
// change esbuild use the rootDir tsconfig.json as default to tempTsConfigFile
|
|
94
95
|
tsconfig: tempTsConfigFile,
|
|
95
96
|
target: "es6",
|
|
96
97
|
loader: {
|
|
@@ -147,7 +148,7 @@ var cli_default = () => ({
|
|
|
147
148
|
`${DOCUMENT_SCRIPT_PLACEHOLDER_START}(.*?)${DOCUMENT_SCRIPT_PLACEHOLDER_END}`,
|
|
148
149
|
"g"
|
|
149
150
|
),
|
|
150
|
-
(_scriptStr, $1) => `<script>${decodeURIComponent($1)}
|
|
151
|
+
(_scriptStr, $1) => `<script>${decodeURIComponent($1)}</script>`
|
|
151
152
|
);
|
|
152
153
|
}
|
|
153
154
|
const finalHtml = `<!DOCTYPE html>${html}`.replace(DOCUMENT_META_PLACEHOLDER, metas).replace(DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR).replace(DOCUMENT_SCRIPTS_PLACEHOLDER, scripts).replace(DOCUMENT_LINKS_PLACEHOLDER, links).replace(
|
|
@@ -173,6 +174,7 @@ var cli_default = () => ({
|
|
|
173
174
|
) : { ...options == null ? void 0 : options.templateParameters };
|
|
174
175
|
const templateContent = documentEntry(
|
|
175
176
|
entry.entryName,
|
|
177
|
+
// options,
|
|
176
178
|
hackParameters
|
|
177
179
|
);
|
|
178
180
|
const documentHtmlOptions = templateContent ? {
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getEntryOptions,
|
|
3
3
|
createRuntimeExportsUtils,
|
|
4
|
-
PLUGIN_SCHEMAS
|
|
4
|
+
PLUGIN_SCHEMAS,
|
|
5
|
+
isRouterV5 as isV5
|
|
5
6
|
} from "@modern-js/utils";
|
|
6
7
|
const PLUGIN_IDENTIFIER = "router";
|
|
7
8
|
const ROUTES_IDENTIFIER = "routes";
|
|
8
|
-
const isV5 = (config) => {
|
|
9
|
-
var _a, _b;
|
|
10
|
-
return ((_b = (_a = config == null ? void 0 : config.runtime) == null ? void 0 : _a.router) == null ? void 0 : _b.mode) === "react-router-5";
|
|
11
|
-
};
|
|
12
9
|
var cli_default = () => ({
|
|
13
10
|
name: "@modern-js/plugin-router",
|
|
14
11
|
required: ["@modern-js/runtime"],
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
const DefaultNotFound = () => /* @__PURE__ */ jsx(
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
2
|
+
const DefaultNotFound = () => /* @__PURE__ */ jsx(
|
|
3
|
+
"div",
|
|
4
|
+
{
|
|
5
|
+
style: {
|
|
6
|
+
margin: "150px auto",
|
|
7
|
+
textAlign: "center",
|
|
8
|
+
display: "flex",
|
|
9
|
+
alignItems: "center",
|
|
10
|
+
justifyContent: "center"
|
|
11
|
+
},
|
|
12
|
+
children: "404"
|
|
13
|
+
}
|
|
14
|
+
);
|
|
12
15
|
export {
|
|
13
16
|
DefaultNotFound
|
|
14
17
|
};
|