@modern-js/runtime 2.0.0-beta.0 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -0
- package/dist/js/modern/cli/index.js +3 -5
- package/dist/js/modern/core/app-config.js +2 -1
- package/dist/js/modern/core/compatible.js +63 -46
- package/dist/js/modern/core/index.js +3 -2
- package/dist/js/modern/core/loader/loaderManager.js +12 -34
- package/dist/js/modern/core/loader/useLoader.js +8 -26
- package/dist/js/modern/core/plugin.js +6 -28
- package/dist/js/modern/document/Body.js +17 -0
- package/dist/js/modern/document/DocumentContext.js +6 -0
- package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
- package/dist/js/modern/document/Head.js +24 -0
- package/dist/js/modern/document/Html.js +92 -0
- package/dist/js/modern/document/Root.js +31 -0
- package/dist/js/modern/document/Scripts.js +10 -0
- package/dist/js/modern/document/cli/index.js +130 -0
- package/dist/js/modern/document/constants.js +19 -0
- package/dist/js/modern/document/index.js +8 -0
- package/dist/js/modern/index.js +1 -1
- package/dist/js/modern/router/cli/index.js +0 -16
- package/dist/js/modern/router/runtime/plugin.js +0 -9
- package/dist/js/modern/router/runtime/plugin.node.js +18 -24
- package/dist/js/modern/router/runtime/root/index.js +19 -0
- package/dist/js/modern/router/runtime/root/load.js +61 -0
- package/dist/js/modern/router/runtime/utils.js +16 -35
- package/dist/js/modern/router/runtime/withRouter.js +1 -3
- package/dist/js/modern/ssr/cli/index.js +2 -23
- package/dist/js/modern/ssr/index.js +23 -34
- package/dist/js/modern/ssr/index.node.js +0 -13
- package/dist/js/modern/ssr/prefetch.js +0 -7
- package/dist/js/modern/ssr/react/prerender/index.js +2 -23
- package/dist/js/modern/ssr/react/prerender/util.js +2 -17
- package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
- package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
- package/dist/js/modern/ssr/serverRender/index.js +1 -2
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -5
- package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +45 -11
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +6 -39
- package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +26 -15
- package/dist/js/modern/ssr/serverRender/renderToStream/template.js +14 -18
- package/dist/js/modern/ssr/serverRender/renderToString/entry.js +2 -34
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +0 -10
- package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToString/template.js +0 -15
- package/dist/js/modern/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/modern/ssr/serverRender/utils.js +2 -6
- package/dist/js/modern/ssr/utils.js +0 -11
- package/dist/js/modern/state/cli/index.js +0 -10
- package/dist/js/modern/state/runtime/plugin.js +1 -14
- package/dist/js/node/cli/index.js +3 -13
- package/dist/js/node/common.js +0 -2
- package/dist/js/node/core/app-config.js +2 -5
- package/dist/js/node/core/compatible.js +63 -64
- package/dist/js/node/core/index.js +0 -16
- package/dist/js/node/core/loader/index.js +0 -2
- package/dist/js/node/core/loader/loaderManager.js +12 -37
- package/dist/js/node/core/loader/useLoader.js +8 -31
- package/dist/js/node/core/plugin.js +5 -34
- package/dist/js/node/document/Body.js +26 -0
- package/dist/js/node/document/DocumentContext.js +14 -0
- package/dist/js/node/document/DocumentStructrueContext.js +15 -0
- package/dist/js/node/document/Head.js +33 -0
- package/dist/js/node/document/Html.js +98 -0
- package/dist/js/node/document/Root.js +41 -0
- package/dist/js/node/document/Scripts.js +17 -0
- package/dist/js/node/document/cli/index.js +140 -0
- package/dist/js/node/document/constants.js +36 -0
- package/dist/js/node/document/index.js +93 -0
- package/dist/js/node/exports/head.js +0 -5
- package/dist/js/node/exports/loadable.js +0 -5
- package/dist/js/node/exports/server.js +0 -2
- package/dist/js/node/exports/styled.js +0 -5
- package/dist/js/node/index.js +0 -8
- package/dist/js/node/router/cli/index.js +0 -20
- package/dist/js/node/router/index.js +0 -4
- package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
- package/dist/js/node/router/runtime/index.js +0 -5
- package/dist/js/node/router/runtime/plugin.js +0 -17
- package/dist/js/node/router/runtime/plugin.node.js +16 -38
- package/dist/js/node/router/runtime/root/index.js +26 -0
- package/dist/js/node/router/runtime/root/load.js +69 -0
- package/dist/js/node/router/runtime/utils.js +16 -44
- package/dist/js/node/router/runtime/withRouter.js +0 -9
- package/dist/js/node/runtime-context.js +0 -2
- package/dist/js/node/ssr/cli/index.js +2 -26
- package/dist/js/node/ssr/index.js +23 -45
- package/dist/js/node/ssr/index.node.js +0 -23
- package/dist/js/node/ssr/prefetch.js +0 -11
- package/dist/js/node/ssr/react/index.js +0 -2
- package/dist/js/node/ssr/react/nossr/index.js +0 -6
- package/dist/js/node/ssr/react/prerender/index.js +2 -30
- package/dist/js/node/ssr/react/prerender/util.js +2 -25
- package/dist/js/node/ssr/react/withCallback/index.js +1 -4
- package/dist/js/node/ssr/serverRender/helmet.js +13 -20
- package/dist/js/node/ssr/serverRender/index.js +1 -4
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -9
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -1
- package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +43 -15
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +6 -48
- package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +0 -4
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +26 -17
- package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +0 -2
- package/dist/js/node/ssr/serverRender/renderToStream/template.js +16 -23
- package/dist/js/node/ssr/serverRender/renderToString/entry.js +2 -51
- package/dist/js/node/ssr/serverRender/renderToString/index.js +0 -10
- package/dist/js/node/ssr/serverRender/renderToString/loadable.js +0 -14
- package/dist/js/node/ssr/serverRender/renderToString/reduce.js +0 -3
- package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +0 -3
- package/dist/js/node/ssr/serverRender/renderToString/template.js +0 -18
- package/dist/js/node/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/node/ssr/serverRender/types.js +0 -1
- package/dist/js/node/ssr/serverRender/utils.js +2 -8
- package/dist/js/node/ssr/utils.js +0 -20
- package/dist/js/node/state/cli/index.js +0 -15
- package/dist/js/node/state/index.js +0 -4
- package/dist/js/node/state/plugins.js +0 -11
- package/dist/js/node/state/runtime/index.js +0 -7
- package/dist/js/node/state/runtime/plugin.js +1 -25
- package/dist/js/treeshaking/cli/index.js +3 -3
- package/dist/js/treeshaking/core/app-config.js +2 -1
- package/dist/js/treeshaking/core/compatible.js +66 -63
- package/dist/js/treeshaking/core/index.js +3 -2
- package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
- package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
- package/dist/js/treeshaking/core/plugin.js +6 -51
- package/dist/js/treeshaking/document/Body.js +14 -0
- package/dist/js/treeshaking/document/DocumentContext.js +6 -0
- package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
- package/dist/js/treeshaking/document/Head.js +21 -0
- package/dist/js/treeshaking/document/Html.js +104 -0
- package/dist/js/treeshaking/document/Root.js +24 -0
- package/dist/js/treeshaking/document/Scripts.js +10 -0
- package/dist/js/treeshaking/document/cli/index.js +170 -0
- package/dist/js/treeshaking/document/constants.js +16 -0
- package/dist/js/treeshaking/document/index.js +8 -0
- package/dist/js/treeshaking/index.js +1 -1
- package/dist/js/treeshaking/router/cli/index.js +6 -18
- package/dist/js/treeshaking/router/runtime/plugin.js +5 -13
- package/dist/js/treeshaking/router/runtime/plugin.node.js +23 -36
- package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
- package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
- package/dist/js/treeshaking/router/runtime/utils.js +21 -39
- package/dist/js/treeshaking/router/runtime/withRouter.js +1 -0
- package/dist/js/treeshaking/ssr/cli/index.js +9 -31
- package/dist/js/treeshaking/ssr/index.js +26 -40
- package/dist/js/treeshaking/ssr/index.node.js +12 -29
- package/dist/js/treeshaking/ssr/prefetch.js +0 -13
- package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
- package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
- package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
- package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
- package/dist/js/treeshaking/ssr/serverRender/index.js +1 -9
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -6
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +46 -15
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +9 -79
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +3 -5
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +46 -35
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +17 -24
- package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +20 -73
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +2 -6
- package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +5 -16
- package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +0 -2
- package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +2 -18
- package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/treeshaking/ssr/serverRender/utils.js +5 -10
- package/dist/js/treeshaking/ssr/utils.js +8 -17
- package/dist/js/treeshaking/state/cli/index.js +3 -10
- package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
- package/dist/types/cli/index.d.ts +0 -2
- package/dist/types/core/compatible.d.ts +5 -5
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/loader/loaderManager.d.ts +0 -1
- package/dist/types/core/loader/useLoader.d.ts +0 -5
- package/dist/types/core/plugin.d.ts +1 -13
- package/dist/types/document/Body.d.ts +4 -0
- package/dist/types/document/DocumentContext.d.ts +13 -0
- package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
- package/dist/types/document/Head.d.ts +5 -0
- package/dist/types/document/Html.d.ts +4 -0
- package/dist/types/document/Root.d.ts +8 -0
- package/dist/types/document/Scripts.d.ts +2 -0
- package/dist/types/document/cli/index.d.ts +3 -0
- package/dist/types/document/constants.d.ts +14 -0
- package/dist/types/document/index.d.ts +8 -0
- package/dist/types/exports/server.d.ts +3 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/types/router/cli/index.d.ts +0 -2
- package/dist/types/router/runtime/root/index.d.ts +8 -0
- package/dist/types/router/runtime/root/load.d.ts +22 -0
- package/dist/types/router/runtime/types.d.ts +0 -2
- package/dist/types/runtime-context.d.ts +1 -0
- package/dist/types/ssr/cli/index.d.ts +0 -2
- package/dist/types/ssr/prefetch.d.ts +2 -2
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +3 -2
- package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -1
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +3 -3
- package/dist/types/ssr/serverRender/renderToStream/template.d.ts +2 -2
- package/dist/types/ssr/serverRender/types.d.ts +1 -4
- package/dist/types/state/cli/index.d.ts +0 -2
- package/dist/types/state/types.d.ts +0 -1
- package/package.json +19 -11
|
@@ -2,28 +2,21 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
2
2
|
import { buildShellAfterTemplate } from "./buildTemplate.after";
|
|
3
3
|
import { buildShellBeforeTemplate } from "./bulidTemplate.before";
|
|
4
4
|
var HTML_SEPARATOR = '<!--<?- html ?>-->';
|
|
5
|
-
export function
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
return {
|
|
23
|
-
shellBefore: builtBeforeTemplate,
|
|
24
|
-
shellAfter: builtAfterTemplate
|
|
25
|
-
};
|
|
5
|
+
export var getTemplates = function getTemplates(context, renderLevel) {
|
|
6
|
+
var ssrContext = context.ssrContext;
|
|
7
|
+
var _ref = ssrContext.template.split(HTML_SEPARATOR) || [],
|
|
8
|
+
_ref2 = _slicedToArray(_ref, 2),
|
|
9
|
+
_ref2$ = _ref2[0],
|
|
10
|
+
beforeAppTemplate = _ref2$ === void 0 ? '' : _ref2$,
|
|
11
|
+
_ref2$2 = _ref2[1],
|
|
12
|
+
afterAppHtmlTemplate = _ref2$2 === void 0 ? '' : _ref2$2;
|
|
13
|
+
var builtBeforeTemplate = buildShellBeforeTemplate(beforeAppTemplate, context);
|
|
14
|
+
var builtAfterTemplate = buildShellAfterTemplate(afterAppHtmlTemplate, {
|
|
15
|
+
ssrContext: ssrContext,
|
|
16
|
+
renderLevel: renderLevel
|
|
17
|
+
});
|
|
18
|
+
return {
|
|
19
|
+
shellBefore: builtBeforeTemplate,
|
|
20
|
+
shellAfter: builtAfterTemplate
|
|
26
21
|
};
|
|
27
|
-
|
|
28
|
-
return getTemplates;
|
|
29
|
-
}
|
|
22
|
+
};
|
|
@@ -11,11 +11,11 @@ import ReactHelmet from 'react-helmet';
|
|
|
11
11
|
import helmetReplace from "../helmet";
|
|
12
12
|
import { RenderLevel } from "../types";
|
|
13
13
|
import { time } from "../utils";
|
|
14
|
+
import _prefetch from "../../prefetch";
|
|
14
15
|
import { toFragments } from "./template";
|
|
15
16
|
import { reduce } from "./reduce";
|
|
16
17
|
import * as loadableRenderer from "./loadable";
|
|
17
18
|
import * as styledComponentRenderer from "./styledComponent";
|
|
18
|
-
|
|
19
19
|
var buildTemplateData = function buildTemplateData(context, data, renderLevel) {
|
|
20
20
|
var request = context.request;
|
|
21
21
|
return {
|
|
@@ -34,32 +34,22 @@ var buildTemplateData = function buildTemplateData(context, data, renderLevel) {
|
|
|
34
34
|
renderLevel: renderLevel
|
|
35
35
|
};
|
|
36
36
|
};
|
|
37
|
-
|
|
38
37
|
var Entry = /*#__PURE__*/function () {
|
|
39
38
|
function Entry(options) {
|
|
40
39
|
_classCallCheck(this, Entry);
|
|
41
|
-
|
|
42
40
|
_defineProperty(this, "entryName", void 0);
|
|
43
|
-
|
|
44
41
|
_defineProperty(this, "result", void 0);
|
|
45
|
-
|
|
46
42
|
_defineProperty(this, "metrics", void 0);
|
|
47
|
-
|
|
48
43
|
_defineProperty(this, "logger", void 0);
|
|
49
|
-
|
|
50
44
|
_defineProperty(this, "App", void 0);
|
|
51
|
-
|
|
52
45
|
_defineProperty(this, "fragments", void 0);
|
|
53
|
-
|
|
54
46
|
_defineProperty(this, "pluginConfig", void 0);
|
|
55
|
-
|
|
56
47
|
_defineProperty(this, "host", void 0);
|
|
57
|
-
|
|
58
48
|
var ctx = options.ctx,
|
|
59
|
-
|
|
49
|
+
config = options.config;
|
|
60
50
|
var entryName = ctx.entryName,
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
template = ctx.template,
|
|
52
|
+
host = ctx.request.host;
|
|
63
53
|
this.fragments = toFragments(template, entryName);
|
|
64
54
|
this.entryName = entryName;
|
|
65
55
|
this.host = host;
|
|
@@ -76,62 +66,48 @@ var Entry = /*#__PURE__*/function () {
|
|
|
76
66
|
}
|
|
77
67
|
};
|
|
78
68
|
}
|
|
79
|
-
|
|
80
69
|
_createClass(Entry, [{
|
|
81
70
|
key: "renderToHtml",
|
|
82
71
|
value: function () {
|
|
83
72
|
var _renderToHtml = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(context) {
|
|
84
73
|
var ssrContext, prefetchData, html, templateData, SSRData, _iterator, _step, fragment, helmetData;
|
|
85
|
-
|
|
86
74
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
87
75
|
while (1) {
|
|
88
76
|
switch (_context.prev = _context.next) {
|
|
89
77
|
case 0:
|
|
90
78
|
ssrContext = context.ssrContext;
|
|
91
|
-
|
|
92
79
|
if (!ssrContext.redirection.url) {
|
|
93
80
|
_context.next = 3;
|
|
94
81
|
break;
|
|
95
82
|
}
|
|
96
|
-
|
|
97
83
|
return _context.abrupt("return", '');
|
|
98
|
-
|
|
99
84
|
case 3:
|
|
100
85
|
_context.next = 5;
|
|
101
86
|
return this.prefetch(context);
|
|
102
|
-
|
|
103
87
|
case 5:
|
|
104
88
|
prefetchData = _context.sent;
|
|
105
|
-
|
|
106
89
|
if (!ssrContext.redirection.url) {
|
|
107
90
|
_context.next = 8;
|
|
108
91
|
break;
|
|
109
92
|
}
|
|
110
|
-
|
|
111
93
|
return _context.abrupt("return", '');
|
|
112
|
-
|
|
113
94
|
case 8:
|
|
114
95
|
if (this.result.renderLevel >= RenderLevel.SERVER_PREFETCH) {
|
|
115
96
|
this.result.html = this.renderToString(context);
|
|
116
97
|
}
|
|
117
|
-
|
|
118
98
|
if (!ssrContext.redirection.url) {
|
|
119
99
|
_context.next = 11;
|
|
120
100
|
break;
|
|
121
101
|
}
|
|
122
|
-
|
|
123
102
|
return _context.abrupt("return", '');
|
|
124
|
-
|
|
125
103
|
case 11:
|
|
126
104
|
html = '';
|
|
127
105
|
templateData = buildTemplateData(ssrContext, prefetchData, this.result.renderLevel);
|
|
128
106
|
SSRData = this.getSSRDataScript(templateData);
|
|
129
107
|
_iterator = _createForOfIteratorHelper(this.fragments);
|
|
130
|
-
|
|
131
108
|
try {
|
|
132
109
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
133
110
|
fragment = _step.value;
|
|
134
|
-
|
|
135
111
|
if (fragment.isVariable && fragment.content === 'SSRDataScript') {
|
|
136
112
|
html += fragment.getValue(SSRData);
|
|
137
113
|
} else {
|
|
@@ -143,10 +119,8 @@ var Entry = /*#__PURE__*/function () {
|
|
|
143
119
|
} finally {
|
|
144
120
|
_iterator.f();
|
|
145
121
|
}
|
|
146
|
-
|
|
147
122
|
helmetData = ReactHelmet.renderStatic();
|
|
148
123
|
return _context.abrupt("return", helmetData ? helmetReplace(html, helmetData) : html);
|
|
149
|
-
|
|
150
124
|
case 18:
|
|
151
125
|
case "end":
|
|
152
126
|
return _context.stop();
|
|
@@ -154,73 +128,50 @@ var Entry = /*#__PURE__*/function () {
|
|
|
154
128
|
}
|
|
155
129
|
}, _callee, this);
|
|
156
130
|
}));
|
|
157
|
-
|
|
158
131
|
function renderToHtml(_x) {
|
|
159
132
|
return _renderToHtml.apply(this, arguments);
|
|
160
133
|
}
|
|
161
|
-
|
|
162
134
|
return renderToHtml;
|
|
163
135
|
}()
|
|
164
136
|
}, {
|
|
165
137
|
key: "prefetch",
|
|
166
138
|
value: function () {
|
|
167
|
-
var
|
|
168
|
-
var
|
|
139
|
+
var _prefetch2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(context) {
|
|
140
|
+
var prefetchData, end, prefetchCost;
|
|
169
141
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
170
142
|
while (1) {
|
|
171
143
|
switch (_context2.prev = _context2.next) {
|
|
172
144
|
case 0:
|
|
173
|
-
prefetch = this.App.prefetch;
|
|
174
145
|
end = time();
|
|
175
|
-
_context2.prev =
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
_context2.next = 6;
|
|
183
|
-
return prefetch(context);
|
|
184
|
-
|
|
185
|
-
case 6:
|
|
186
|
-
_context2.t0 = _context2.sent;
|
|
187
|
-
_context2.next = 10;
|
|
188
|
-
break;
|
|
189
|
-
|
|
190
|
-
case 9:
|
|
191
|
-
_context2.t0 = null;
|
|
192
|
-
|
|
193
|
-
case 10:
|
|
194
|
-
prefetchData = _context2.t0;
|
|
146
|
+
_context2.prev = 1;
|
|
147
|
+
_context2.next = 4;
|
|
148
|
+
return _prefetch(this.App, context);
|
|
149
|
+
case 4:
|
|
150
|
+
prefetchData = _context2.sent;
|
|
195
151
|
this.result.renderLevel = RenderLevel.SERVER_PREFETCH;
|
|
196
152
|
prefetchCost = end();
|
|
197
153
|
this.logger.debug("App Prefetch cost = %d ms", prefetchCost);
|
|
198
154
|
this.metrics.emitTimer('app.prefetch.cost', prefetchCost);
|
|
199
|
-
_context2.next =
|
|
155
|
+
_context2.next = 16;
|
|
200
156
|
break;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
_context2.
|
|
204
|
-
_context2.t1 = _context2["catch"](2);
|
|
157
|
+
case 11:
|
|
158
|
+
_context2.prev = 11;
|
|
159
|
+
_context2.t0 = _context2["catch"](1);
|
|
205
160
|
this.result.renderLevel = RenderLevel.CLIENT_RENDER;
|
|
206
|
-
this.logger.error('App Prefetch Render', _context2.
|
|
161
|
+
this.logger.error('App Prefetch Render', _context2.t0);
|
|
207
162
|
this.metrics.emitCounter('app.prefetch.render.error', 1);
|
|
208
|
-
|
|
209
|
-
case 22:
|
|
163
|
+
case 16:
|
|
210
164
|
return _context2.abrupt("return", prefetchData || {});
|
|
211
|
-
|
|
212
|
-
case 23:
|
|
165
|
+
case 17:
|
|
213
166
|
case "end":
|
|
214
167
|
return _context2.stop();
|
|
215
168
|
}
|
|
216
169
|
}
|
|
217
|
-
}, _callee2, this, [[
|
|
170
|
+
}, _callee2, this, [[1, 11]]);
|
|
218
171
|
}));
|
|
219
|
-
|
|
220
172
|
function prefetch(_x2) {
|
|
221
|
-
return
|
|
173
|
+
return _prefetch2.apply(this, arguments);
|
|
222
174
|
}
|
|
223
|
-
|
|
224
175
|
return prefetch;
|
|
225
176
|
}()
|
|
226
177
|
}, {
|
|
@@ -229,7 +180,6 @@ var Entry = /*#__PURE__*/function () {
|
|
|
229
180
|
var html = '';
|
|
230
181
|
var end = time();
|
|
231
182
|
var ssrContext = context.ssrContext;
|
|
232
|
-
|
|
233
183
|
try {
|
|
234
184
|
var App = /*#__PURE__*/React.createElement(this.App, {
|
|
235
185
|
context: Object.assign(context, {
|
|
@@ -254,7 +204,6 @@ var Entry = /*#__PURE__*/function () {
|
|
|
254
204
|
this.logger.error('App Render To HTML', e);
|
|
255
205
|
this.metrics.emitCounter('app.render.html.error', 1);
|
|
256
206
|
}
|
|
257
|
-
|
|
258
207
|
return html;
|
|
259
208
|
}
|
|
260
209
|
}, {
|
|
@@ -267,8 +216,6 @@ var Entry = /*#__PURE__*/function () {
|
|
|
267
216
|
};
|
|
268
217
|
}
|
|
269
218
|
}]);
|
|
270
|
-
|
|
271
219
|
return Entry;
|
|
272
220
|
}();
|
|
273
|
-
|
|
274
221
|
export { Entry as default };
|
|
@@ -6,8 +6,8 @@ import { time } from "../utils";
|
|
|
6
6
|
import SSREntry from "./entry";
|
|
7
7
|
export var render = function render(_ref) {
|
|
8
8
|
var App = _ref.App,
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
context = _ref.context,
|
|
10
|
+
config = _ref.config;
|
|
11
11
|
var ssrContext = context.ssrContext;
|
|
12
12
|
return run(ssrContext.request.headers, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
13
13
|
var entry, end, html, cost, cacheConfig;
|
|
@@ -24,20 +24,16 @@ export var render = function render(_ref) {
|
|
|
24
24
|
end = time();
|
|
25
25
|
_context.next = 5;
|
|
26
26
|
return entry.renderToHtml(context);
|
|
27
|
-
|
|
28
27
|
case 5:
|
|
29
28
|
html = _context.sent;
|
|
30
29
|
cost = end();
|
|
31
30
|
entry.logger.info('App Render Total cost = %d ms', cost);
|
|
32
31
|
entry.metrics.emitTimer('app.render.cost', cost);
|
|
33
32
|
cacheConfig = PreRender.config();
|
|
34
|
-
|
|
35
33
|
if (cacheConfig) {
|
|
36
34
|
context.ssrContext.cacheConfig = cacheConfig;
|
|
37
35
|
}
|
|
38
|
-
|
|
39
36
|
return _context.abrupt("return", html);
|
|
40
|
-
|
|
41
37
|
case 12:
|
|
42
38
|
case "end":
|
|
43
39
|
return _context.stop();
|
|
@@ -2,26 +2,21 @@ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIt
|
|
|
2
2
|
import { ChunkExtractor } from '@loadable/server';
|
|
3
3
|
import { isCrossOrigin } from "../../utils";
|
|
4
4
|
import { getLoadableScripts } from "../utils";
|
|
5
|
-
|
|
6
5
|
var extname = function extname(uri) {
|
|
7
6
|
if (typeof uri !== 'string' || !uri.includes('.')) {
|
|
8
7
|
return '';
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
return ".".concat(uri === null || uri === void 0 ? void 0 : uri.split('.').pop()) || '';
|
|
12
10
|
};
|
|
13
|
-
|
|
14
11
|
export var toHtml = function toHtml(jsx, renderer, next) {
|
|
15
12
|
var stats = renderer.stats,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
chunksMap = renderer.result.chunksMap,
|
|
14
|
+
host = renderer.host,
|
|
15
|
+
_renderer$config = renderer.config,
|
|
16
|
+
config = _renderer$config === void 0 ? {} : _renderer$config;
|
|
21
17
|
if (!stats || chunksMap.js) {
|
|
22
18
|
return next(jsx);
|
|
23
19
|
}
|
|
24
|
-
|
|
25
20
|
var extractor = new ChunkExtractor({
|
|
26
21
|
stats: stats,
|
|
27
22
|
entrypoints: [renderer.entryName]
|
|
@@ -29,23 +24,18 @@ export var toHtml = function toHtml(jsx, renderer, next) {
|
|
|
29
24
|
var html = next(extractor.collectChunks(jsx));
|
|
30
25
|
var chunks = extractor.getChunkAssets(extractor.chunks);
|
|
31
26
|
chunksMap.js = (chunksMap.js || '') + getLoadableScripts(extractor);
|
|
32
|
-
|
|
33
27
|
var _iterator = _createForOfIteratorHelper(chunks),
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
_step;
|
|
36
29
|
try {
|
|
37
30
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
38
31
|
var v = _step.value;
|
|
39
32
|
var fileType = extname(v.url).slice(1);
|
|
40
|
-
|
|
41
33
|
if (fileType === 'js') {
|
|
42
34
|
var props = [];
|
|
43
35
|
var crossorigin = config.crossorigin;
|
|
44
|
-
|
|
45
36
|
if (crossorigin && isCrossOrigin(v.url, host)) {
|
|
46
37
|
props.push("crossorigin=\"".concat(crossorigin === true ? 'anonymous' : crossorigin, "\""));
|
|
47
38
|
}
|
|
48
|
-
|
|
49
39
|
chunksMap[fileType] += "<script src=\"".concat(v.url, "\" ").concat(props.join(' '), "></script>");
|
|
50
40
|
} else if (fileType === 'css') {
|
|
51
41
|
chunksMap[fileType] += "<link href=\"".concat(v.url, "\" rel=\"stylesheet\" />");
|
|
@@ -56,6 +46,5 @@ export var toHtml = function toHtml(jsx, renderer, next) {
|
|
|
56
46
|
} finally {
|
|
57
47
|
_iterator.f();
|
|
58
48
|
}
|
|
59
|
-
|
|
60
49
|
return html;
|
|
61
50
|
};
|
|
@@ -12,34 +12,24 @@ var ENCODE_HTML_RULES = {
|
|
|
12
12
|
"'": '''
|
|
13
13
|
};
|
|
14
14
|
var MATCH_HTML = /[&<>'"]/g;
|
|
15
|
-
|
|
16
15
|
function encodeChar(c) {
|
|
17
16
|
return ENCODE_HTML_RULES[c] || c;
|
|
18
17
|
}
|
|
19
|
-
|
|
20
18
|
function escape(str) {
|
|
21
19
|
return str.replace(MATCH_HTML, encodeChar);
|
|
22
20
|
}
|
|
23
|
-
|
|
24
21
|
export var Fragment = /*#__PURE__*/function () {
|
|
25
22
|
function Fragment(template) {
|
|
26
23
|
_classCallCheck(this, Fragment);
|
|
27
|
-
|
|
28
24
|
_defineProperty(this, "isVariable", void 0);
|
|
29
|
-
|
|
30
25
|
_defineProperty(this, "content", void 0);
|
|
31
|
-
|
|
32
26
|
_defineProperty(this, "filters", void 0);
|
|
33
|
-
|
|
34
27
|
_defineProperty(this, "path", void 0);
|
|
35
|
-
|
|
36
28
|
var match = VARIABLE_REG_EXP.exec(template);
|
|
37
|
-
|
|
38
29
|
if (match) {
|
|
39
30
|
var _match = _slicedToArray(match, 3),
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
31
|
+
filterFlag = _match[1],
|
|
32
|
+
content = _match[2];
|
|
43
33
|
this.isVariable = true;
|
|
44
34
|
this.content = content;
|
|
45
35
|
this.filters = [Fragment.filterMap[filterFlag]];
|
|
@@ -51,7 +41,6 @@ export var Fragment = /*#__PURE__*/function () {
|
|
|
51
41
|
this.path = [];
|
|
52
42
|
}
|
|
53
43
|
}
|
|
54
|
-
|
|
55
44
|
_createClass(Fragment, [{
|
|
56
45
|
key: "getValue",
|
|
57
46
|
value: function getValue(data) {
|
|
@@ -63,27 +52,22 @@ export var Fragment = /*#__PURE__*/function () {
|
|
|
63
52
|
return n(p);
|
|
64
53
|
}, value != null ? value : '');
|
|
65
54
|
}
|
|
66
|
-
|
|
67
55
|
return this.content;
|
|
68
56
|
}
|
|
69
57
|
}]);
|
|
70
|
-
|
|
71
58
|
return Fragment;
|
|
72
59
|
}();
|
|
73
|
-
|
|
74
60
|
_defineProperty(Fragment, "filterMap", {
|
|
75
61
|
'=': escape,
|
|
76
62
|
'-': function _(v) {
|
|
77
63
|
return v;
|
|
78
64
|
}
|
|
79
65
|
});
|
|
80
|
-
|
|
81
66
|
var fragmentListMap = {};
|
|
82
67
|
export function toFragments(template, entryName) {
|
|
83
68
|
if (fragmentListMap[entryName]) {
|
|
84
69
|
return fragmentListMap[entryName];
|
|
85
70
|
}
|
|
86
|
-
|
|
87
71
|
var fragmentList = template.split(VARIABLE_SPLITTER).filter(function (v) {
|
|
88
72
|
return Boolean(v);
|
|
89
73
|
}).map(function (v) {
|
|
@@ -3,28 +3,23 @@ export function getLoadableScripts(extractor) {
|
|
|
3
3
|
var check = function check(scripts) {
|
|
4
4
|
return (scripts || '').includes('__LOADABLE_REQUIRED_CHUNKS___ext');
|
|
5
5
|
};
|
|
6
|
-
|
|
7
6
|
var scripts = extractor.getScriptTags();
|
|
8
|
-
|
|
9
7
|
if (!check(scripts)) {
|
|
10
8
|
return '';
|
|
11
9
|
}
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
return scripts.split('</script>')
|
|
11
|
+
// 前两个 script为 loadable 必须的 script
|
|
14
12
|
.slice(0, 2).map(function (i) {
|
|
15
13
|
return "".concat(i, "</script>");
|
|
16
14
|
}).join('');
|
|
17
15
|
}
|
|
18
|
-
|
|
19
16
|
var getLatency = function getLatency(hrtime) {
|
|
20
17
|
var _process$hrtime = process.hrtime(hrtime),
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
_process$hrtime2 = _slicedToArray(_process$hrtime, 2),
|
|
19
|
+
s = _process$hrtime2[0],
|
|
20
|
+
ns = _process$hrtime2[1];
|
|
25
21
|
return s * 1e3 + ns / 1e6;
|
|
26
22
|
};
|
|
27
|
-
|
|
28
23
|
export var time = function time() {
|
|
29
24
|
var hrtime = process.hrtime();
|
|
30
25
|
return function () {
|
|
@@ -5,37 +5,31 @@ export var isReact18 = function isReact18() {
|
|
|
5
5
|
};
|
|
6
6
|
export var formatServer = function formatServer(request) {
|
|
7
7
|
var _ref = request.headers || {},
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
_ref$cookie = _ref.cookie,
|
|
9
|
+
cookie = _ref$cookie === void 0 ? '' : _ref$cookie,
|
|
10
|
+
_ref$userAgent = _ref['user-agent'],
|
|
11
|
+
userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent,
|
|
12
|
+
referer = _ref.referer;
|
|
14
13
|
return _objectSpread({
|
|
15
14
|
cookie: cookie,
|
|
16
15
|
userAgent: userAgent,
|
|
17
16
|
referer: referer
|
|
18
17
|
}, request);
|
|
19
18
|
};
|
|
20
|
-
|
|
21
19
|
var getQuery = function getQuery() {
|
|
22
20
|
return window.location.search.substring(1).split('&').reduce(function (res, item) {
|
|
23
21
|
var _item$split = item.split('='),
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
_item$split2 = _slicedToArray(_item$split, 2),
|
|
23
|
+
key = _item$split2[0],
|
|
24
|
+
value = _item$split2[1];
|
|
28
25
|
if (key) {
|
|
29
26
|
res[key] = value;
|
|
30
27
|
}
|
|
31
|
-
|
|
32
28
|
return res;
|
|
33
29
|
}, {});
|
|
34
30
|
};
|
|
35
|
-
|
|
36
31
|
export var formatClient = function formatClient(request) {
|
|
37
32
|
var _request$headers, _request$headers2;
|
|
38
|
-
|
|
39
33
|
return {
|
|
40
34
|
params: request.params || {},
|
|
41
35
|
host: request.host || location.host,
|
|
@@ -57,18 +51,15 @@ export var mockResponse = function mockResponse() {
|
|
|
57
51
|
status: function status() {
|
|
58
52
|
console.warn('response.status() can only be used in the server side');
|
|
59
53
|
},
|
|
60
|
-
|
|
61
54
|
get locals() {
|
|
62
55
|
console.warn('response.locals can only be used in the server side');
|
|
63
56
|
return {};
|
|
64
57
|
}
|
|
65
|
-
|
|
66
58
|
};
|
|
67
59
|
};
|
|
68
60
|
export var isCrossOrigin = function isCrossOrigin() {
|
|
69
61
|
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
70
62
|
var base = arguments.length > 1 ? arguments[1] : undefined;
|
|
71
|
-
|
|
72
63
|
if (url.startsWith('/') || url.startsWith('./')) {
|
|
73
64
|
return false;
|
|
74
65
|
} else if (!url.includes(base)) {
|
|
@@ -22,18 +22,14 @@ export default (function () {
|
|
|
22
22
|
},
|
|
23
23
|
modifyEntryImports: function modifyEntryImports(_ref) {
|
|
24
24
|
var _getEntryOptions;
|
|
25
|
-
|
|
26
25
|
var entrypoint = _ref.entrypoint,
|
|
27
|
-
|
|
26
|
+
imports = _ref.imports;
|
|
28
27
|
var entryName = entrypoint.entryName;
|
|
29
28
|
var userConfig = api.useResolvedConfigContext();
|
|
30
|
-
|
|
31
29
|
var _api$useAppContext = api.useAppContext(),
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
packageName = _api$useAppContext.packageName;
|
|
34
31
|
var stateConfig = (_getEntryOptions = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
|
|
35
32
|
stateConfigMap.set(entryName, stateConfig);
|
|
36
|
-
|
|
37
33
|
if (stateConfig) {
|
|
38
34
|
imports.push({
|
|
39
35
|
value: '@modern-js/runtime/plugins',
|
|
@@ -42,7 +38,6 @@ export default (function () {
|
|
|
42
38
|
}]
|
|
43
39
|
});
|
|
44
40
|
}
|
|
45
|
-
|
|
46
41
|
return {
|
|
47
42
|
entrypoint: entrypoint,
|
|
48
43
|
imports: imports
|
|
@@ -50,16 +45,14 @@ export default (function () {
|
|
|
50
45
|
},
|
|
51
46
|
modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(_ref2) {
|
|
52
47
|
var entrypoint = _ref2.entrypoint,
|
|
53
|
-
|
|
48
|
+
plugins = _ref2.plugins;
|
|
54
49
|
var stateOptions = stateConfigMap.get(entrypoint.entryName);
|
|
55
|
-
|
|
56
50
|
if (stateOptions) {
|
|
57
51
|
plugins.push({
|
|
58
52
|
name: PLUGIN_IDENTIFIER,
|
|
59
53
|
options: "".concat(JSON.stringify(stateConfigMap.get(entrypoint.entryName)))
|
|
60
54
|
});
|
|
61
55
|
}
|
|
62
|
-
|
|
63
56
|
return {
|
|
64
57
|
entrypoint: entrypoint,
|
|
65
58
|
plugins: plugins
|
|
@@ -13,7 +13,6 @@ var StatePluginHandleMap = {
|
|
|
13
13
|
autoActions: autoActions,
|
|
14
14
|
devtools: devtools
|
|
15
15
|
};
|
|
16
|
-
|
|
17
16
|
var getStoreConfig = function getStoreConfig(config) {
|
|
18
17
|
var internalPlugins = ['immer', 'effects', 'autoActions', 'devtools'];
|
|
19
18
|
var plugins = [];
|
|
@@ -26,7 +25,6 @@ var getStoreConfig = function getStoreConfig(config) {
|
|
|
26
25
|
plugins: plugins
|
|
27
26
|
};
|
|
28
27
|
};
|
|
29
|
-
|
|
30
28
|
var state = function state(config) {
|
|
31
29
|
return {
|
|
32
30
|
name: '@modern-js/plugin-state',
|
|
@@ -34,7 +32,6 @@ var state = function state(config) {
|
|
|
34
32
|
return {
|
|
35
33
|
hoc: function hoc(_ref, next) {
|
|
36
34
|
var App = _ref.App;
|
|
37
|
-
|
|
38
35
|
var getStateApp = function getStateApp(props) {
|
|
39
36
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
40
37
|
var context = useContext(RuntimeReactContext);
|
|
@@ -44,7 +41,6 @@ var state = function state(config) {
|
|
|
44
41
|
children: /*#__PURE__*/_jsx(App, _objectSpread({}, props))
|
|
45
42
|
});
|
|
46
43
|
};
|
|
47
|
-
|
|
48
44
|
return next({
|
|
49
45
|
App: hoistNonReactStatics(getStateApp, App)
|
|
50
46
|
});
|
|
@@ -52,21 +48,18 @@ var state = function state(config) {
|
|
|
52
48
|
init: function init(_ref2, next) {
|
|
53
49
|
var context = _ref2.context;
|
|
54
50
|
var storeConfig = getStoreConfig(config || {});
|
|
55
|
-
|
|
56
51
|
if (isBrowser()) {
|
|
57
52
|
var _window, _window$_SSR_DATA, _window$_SSR_DATA$dat;
|
|
58
|
-
|
|
59
53
|
storeConfig.initialState = storeConfig.initialState || ((_window = window) === null || _window === void 0 ? void 0 : (_window$_SSR_DATA = _window._SSR_DATA) === null || _window$_SSR_DATA === void 0 ? void 0 : (_window$_SSR_DATA$dat = _window$_SSR_DATA.data) === null || _window$_SSR_DATA$dat === void 0 ? void 0 : _window$_SSR_DATA$dat.storeState) || {};
|
|
60
54
|
}
|
|
61
|
-
|
|
62
55
|
context.store = createStore(storeConfig);
|
|
63
|
-
next({
|
|
56
|
+
return next({
|
|
64
57
|
context: context
|
|
65
58
|
});
|
|
66
59
|
},
|
|
67
60
|
pickContext: function pickContext(_ref3, next) {
|
|
68
61
|
var context = _ref3.context,
|
|
69
|
-
|
|
62
|
+
pickedContext = _ref3.pickedContext;
|
|
70
63
|
return next({
|
|
71
64
|
context: context,
|
|
72
65
|
pickedContext: _objectSpread(_objectSpread({}, pickedContext), {}, {
|
|
@@ -78,6 +71,5 @@ var state = function state(config) {
|
|
|
78
71
|
}
|
|
79
72
|
};
|
|
80
73
|
};
|
|
81
|
-
|
|
82
74
|
export default state;
|
|
83
75
|
export * from "../plugins";
|