@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
|
@@ -3,30 +3,23 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
6
|
+
exports.getTemplates = void 0;
|
|
8
7
|
var _buildTemplate = require("./buildTemplate.after");
|
|
9
|
-
|
|
10
8
|
var _bulidTemplate = require("./bulidTemplate.before");
|
|
11
|
-
|
|
12
9
|
const HTML_SEPARATOR = '<!--<?- html ?>-->';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
shellBefore: builtBeforeTemplate,
|
|
27
|
-
shellAfter: builtAfterTemplate
|
|
28
|
-
};
|
|
10
|
+
const getTemplates = (context, renderLevel) => {
|
|
11
|
+
const {
|
|
12
|
+
ssrContext
|
|
13
|
+
} = context;
|
|
14
|
+
const [beforeAppTemplate = '', afterAppHtmlTemplate = ''] = ssrContext.template.split(HTML_SEPARATOR) || [];
|
|
15
|
+
const builtBeforeTemplate = (0, _bulidTemplate.buildShellBeforeTemplate)(beforeAppTemplate, context);
|
|
16
|
+
const builtAfterTemplate = (0, _buildTemplate.buildShellAfterTemplate)(afterAppHtmlTemplate, {
|
|
17
|
+
ssrContext: ssrContext,
|
|
18
|
+
renderLevel
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
shellBefore: builtBeforeTemplate,
|
|
22
|
+
shellAfter: builtAfterTemplate
|
|
29
23
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
24
|
+
};
|
|
25
|
+
exports.getTemplates = getTemplates;
|
|
@@ -4,37 +4,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _server = _interopRequireDefault(require("react-dom/server"));
|
|
11
|
-
|
|
12
9
|
var _serializeJavascript = _interopRequireDefault(require("serialize-javascript"));
|
|
13
|
-
|
|
14
10
|
var _reactHelmet = _interopRequireDefault(require("react-helmet"));
|
|
15
|
-
|
|
16
11
|
var _helmet = _interopRequireDefault(require("../helmet"));
|
|
17
|
-
|
|
18
12
|
var _types = require("../types");
|
|
19
|
-
|
|
20
13
|
var _utils = require("../utils");
|
|
21
|
-
|
|
14
|
+
var _prefetch = _interopRequireDefault(require("../../prefetch"));
|
|
22
15
|
var _template = require("./template");
|
|
23
|
-
|
|
24
16
|
var _reduce = require("./reduce");
|
|
25
|
-
|
|
26
17
|
var loadableRenderer = _interopRequireWildcard(require("./loadable"));
|
|
27
|
-
|
|
28
18
|
var styledComponentRenderer = _interopRequireWildcard(require("./styledComponent"));
|
|
29
|
-
|
|
30
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
-
|
|
32
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
-
|
|
34
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
-
|
|
36
22
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
37
|
-
|
|
38
23
|
const buildTemplateData = (context, data, renderLevel) => {
|
|
39
24
|
const {
|
|
40
25
|
request
|
|
@@ -55,25 +40,16 @@ const buildTemplateData = (context, data, renderLevel) => {
|
|
|
55
40
|
renderLevel
|
|
56
41
|
};
|
|
57
42
|
};
|
|
58
|
-
|
|
59
43
|
class Entry {
|
|
60
44
|
constructor(options) {
|
|
61
45
|
_defineProperty(this, "entryName", void 0);
|
|
62
|
-
|
|
63
46
|
_defineProperty(this, "result", void 0);
|
|
64
|
-
|
|
65
47
|
_defineProperty(this, "metrics", void 0);
|
|
66
|
-
|
|
67
48
|
_defineProperty(this, "logger", void 0);
|
|
68
|
-
|
|
69
49
|
_defineProperty(this, "App", void 0);
|
|
70
|
-
|
|
71
50
|
_defineProperty(this, "fragments", void 0);
|
|
72
|
-
|
|
73
51
|
_defineProperty(this, "pluginConfig", void 0);
|
|
74
|
-
|
|
75
52
|
_defineProperty(this, "host", void 0);
|
|
76
|
-
|
|
77
53
|
const {
|
|
78
54
|
ctx,
|
|
79
55
|
config
|
|
@@ -101,32 +77,24 @@ class Entry {
|
|
|
101
77
|
}
|
|
102
78
|
};
|
|
103
79
|
}
|
|
104
|
-
|
|
105
80
|
async renderToHtml(context) {
|
|
106
81
|
const ssrContext = context.ssrContext;
|
|
107
|
-
|
|
108
82
|
if (ssrContext.redirection.url) {
|
|
109
83
|
return '';
|
|
110
84
|
}
|
|
111
|
-
|
|
112
85
|
const prefetchData = await this.prefetch(context);
|
|
113
|
-
|
|
114
86
|
if (ssrContext.redirection.url) {
|
|
115
87
|
return '';
|
|
116
88
|
}
|
|
117
|
-
|
|
118
89
|
if (this.result.renderLevel >= _types.RenderLevel.SERVER_PREFETCH) {
|
|
119
90
|
this.result.html = this.renderToString(context);
|
|
120
91
|
}
|
|
121
|
-
|
|
122
92
|
if (ssrContext.redirection.url) {
|
|
123
93
|
return '';
|
|
124
94
|
}
|
|
125
|
-
|
|
126
95
|
let html = '';
|
|
127
96
|
const templateData = buildTemplateData(ssrContext, prefetchData, this.result.renderLevel);
|
|
128
97
|
const SSRData = this.getSSRDataScript(templateData);
|
|
129
|
-
|
|
130
98
|
for (const fragment of this.fragments) {
|
|
131
99
|
if (fragment.isVariable && fragment.content === 'SSRDataScript') {
|
|
132
100
|
html += fragment.getValue(SSRData);
|
|
@@ -134,23 +102,14 @@ class Entry {
|
|
|
134
102
|
html += fragment.getValue(this.result);
|
|
135
103
|
}
|
|
136
104
|
}
|
|
137
|
-
|
|
138
105
|
const helmetData = _reactHelmet.default.renderStatic();
|
|
139
|
-
|
|
140
106
|
return helmetData ? (0, _helmet.default)(html, helmetData) : html;
|
|
141
107
|
}
|
|
142
|
-
|
|
143
108
|
async prefetch(context) {
|
|
144
|
-
const {
|
|
145
|
-
App: {
|
|
146
|
-
prefetch
|
|
147
|
-
}
|
|
148
|
-
} = this;
|
|
149
109
|
let prefetchData;
|
|
150
110
|
const end = (0, _utils.time)();
|
|
151
|
-
|
|
152
111
|
try {
|
|
153
|
-
prefetchData =
|
|
112
|
+
prefetchData = await (0, _prefetch.default)(this.App, context);
|
|
154
113
|
this.result.renderLevel = _types.RenderLevel.SERVER_PREFETCH;
|
|
155
114
|
const prefetchCost = end();
|
|
156
115
|
this.logger.debug(`App Prefetch cost = %d ms`, prefetchCost);
|
|
@@ -160,24 +119,20 @@ class Entry {
|
|
|
160
119
|
this.logger.error('App Prefetch Render', e);
|
|
161
120
|
this.metrics.emitCounter('app.prefetch.render.error', 1);
|
|
162
121
|
}
|
|
163
|
-
|
|
164
122
|
return prefetchData || {};
|
|
165
123
|
}
|
|
166
|
-
|
|
167
124
|
renderToString(context) {
|
|
168
125
|
let html = '';
|
|
169
126
|
const end = (0, _utils.time)();
|
|
170
127
|
const {
|
|
171
128
|
ssrContext
|
|
172
129
|
} = context;
|
|
173
|
-
|
|
174
130
|
try {
|
|
175
131
|
const App = /*#__PURE__*/_react.default.createElement(this.App, {
|
|
176
132
|
context: Object.assign(context, {
|
|
177
133
|
ssr: true
|
|
178
134
|
})
|
|
179
135
|
});
|
|
180
|
-
|
|
181
136
|
const renderContext = {
|
|
182
137
|
stats: ssrContext.loadableStats,
|
|
183
138
|
host: this.host,
|
|
@@ -194,10 +149,8 @@ class Entry {
|
|
|
194
149
|
this.logger.error('App Render To HTML', e);
|
|
195
150
|
this.metrics.emitCounter('app.render.html.error', 1);
|
|
196
151
|
}
|
|
197
|
-
|
|
198
152
|
return html;
|
|
199
153
|
}
|
|
200
|
-
|
|
201
154
|
getSSRDataScript(templateData) {
|
|
202
155
|
return {
|
|
203
156
|
SSRDataScript: `
|
|
@@ -207,7 +160,5 @@ class Entry {
|
|
|
207
160
|
`
|
|
208
161
|
};
|
|
209
162
|
}
|
|
210
|
-
|
|
211
163
|
}
|
|
212
|
-
|
|
213
164
|
exports.default = Entry;
|
|
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.render = void 0;
|
|
7
|
-
|
|
8
7
|
var _ssr = require("@modern-js/utils/ssr");
|
|
9
|
-
|
|
10
8
|
var _prerender = require("../../react/prerender");
|
|
11
|
-
|
|
12
9
|
var _utils = require("../utils");
|
|
13
|
-
|
|
14
10
|
var _entry = _interopRequireDefault(require("./entry"));
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
const render = ({
|
|
19
13
|
App,
|
|
20
14
|
context,
|
|
@@ -33,15 +27,11 @@ const render = ({
|
|
|
33
27
|
const cost = end();
|
|
34
28
|
entry.logger.info('App Render Total cost = %d ms', cost);
|
|
35
29
|
entry.metrics.emitTimer('app.render.cost', cost);
|
|
36
|
-
|
|
37
30
|
const cacheConfig = _prerender.PreRender.config();
|
|
38
|
-
|
|
39
31
|
if (cacheConfig) {
|
|
40
32
|
context.ssrContext.cacheConfig = cacheConfig;
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
return html;
|
|
44
35
|
});
|
|
45
36
|
};
|
|
46
|
-
|
|
47
37
|
exports.render = render;
|
|
@@ -4,21 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.toHtml = void 0;
|
|
7
|
-
|
|
8
7
|
var _server = require("@loadable/server");
|
|
9
|
-
|
|
10
8
|
var _utils = require("../../utils");
|
|
11
|
-
|
|
12
9
|
var _utils2 = require("../utils");
|
|
13
|
-
|
|
14
10
|
const extname = uri => {
|
|
15
11
|
if (typeof uri !== 'string' || !uri.includes('.')) {
|
|
16
12
|
return '';
|
|
17
13
|
}
|
|
18
|
-
|
|
19
14
|
return `.${uri === null || uri === void 0 ? void 0 : uri.split('.').pop()}` || '';
|
|
20
15
|
};
|
|
21
|
-
|
|
22
16
|
const toHtml = (jsx, renderer, next) => {
|
|
23
17
|
const {
|
|
24
18
|
stats,
|
|
@@ -28,11 +22,9 @@ const toHtml = (jsx, renderer, next) => {
|
|
|
28
22
|
host,
|
|
29
23
|
config = {}
|
|
30
24
|
} = renderer;
|
|
31
|
-
|
|
32
25
|
if (!stats || chunksMap.js) {
|
|
33
26
|
return next(jsx);
|
|
34
27
|
}
|
|
35
|
-
|
|
36
28
|
const extractor = new _server.ChunkExtractor({
|
|
37
29
|
stats,
|
|
38
30
|
entrypoints: [renderer.entryName]
|
|
@@ -40,27 +32,21 @@ const toHtml = (jsx, renderer, next) => {
|
|
|
40
32
|
const html = next(extractor.collectChunks(jsx));
|
|
41
33
|
const chunks = extractor.getChunkAssets(extractor.chunks);
|
|
42
34
|
chunksMap.js = (chunksMap.js || '') + (0, _utils2.getLoadableScripts)(extractor);
|
|
43
|
-
|
|
44
35
|
for (const v of chunks) {
|
|
45
36
|
const fileType = extname(v.url).slice(1);
|
|
46
|
-
|
|
47
37
|
if (fileType === 'js') {
|
|
48
38
|
const props = [];
|
|
49
39
|
const {
|
|
50
40
|
crossorigin
|
|
51
41
|
} = config;
|
|
52
|
-
|
|
53
42
|
if (crossorigin && (0, _utils.isCrossOrigin)(v.url, host)) {
|
|
54
43
|
props.push(`crossorigin="${crossorigin === true ? 'anonymous' : crossorigin}"`);
|
|
55
44
|
}
|
|
56
|
-
|
|
57
45
|
chunksMap[fileType] += `<script src="${v.url}" ${props.join(' ')}></script>`;
|
|
58
46
|
} else if (fileType === 'css') {
|
|
59
47
|
chunksMap[fileType] += `<link href="${v.url}" rel="stylesheet" />`;
|
|
60
48
|
}
|
|
61
49
|
}
|
|
62
|
-
|
|
63
50
|
return html;
|
|
64
51
|
};
|
|
65
|
-
|
|
66
52
|
exports.toHtml = toHtml;
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.reduce = reduce;
|
|
7
|
-
|
|
8
7
|
function reduce(jsx, renderer, middleware) {
|
|
9
8
|
let index = 0;
|
|
10
|
-
|
|
11
9
|
const createNext = () => App => middleware[index++](App, renderer, createNext());
|
|
12
|
-
|
|
13
10
|
return createNext()(jsx);
|
|
14
11
|
}
|
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.toHtml = void 0;
|
|
7
|
-
|
|
8
7
|
var _styledComponents = require("styled-components");
|
|
9
|
-
|
|
10
8
|
const toHtml = (jsx, renderer, next) => {
|
|
11
9
|
const sheet = new _styledComponents.ServerStyleSheet();
|
|
12
10
|
const html = next(sheet.collectStyles(jsx));
|
|
@@ -14,5 +12,4 @@ const toHtml = (jsx, renderer, next) => {
|
|
|
14
12
|
renderer.result.chunksMap.css += css;
|
|
15
13
|
return html;
|
|
16
14
|
};
|
|
17
|
-
|
|
18
15
|
exports.toHtml = toHtml;
|
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Fragment = void 0;
|
|
7
7
|
exports.toFragments = toFragments;
|
|
8
|
-
|
|
9
8
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
-
|
|
11
9
|
const VARIABLE_REG_EXP = /<!--<\?([-=+])\s*(.*?)\s*\?>-->/;
|
|
12
10
|
const VARIABLE_SPLITTER = /(<!--<\?.*?\?>-->)/;
|
|
13
11
|
const ENCODE_HTML_RULES = {
|
|
@@ -18,27 +16,19 @@ const ENCODE_HTML_RULES = {
|
|
|
18
16
|
"'": '''
|
|
19
17
|
};
|
|
20
18
|
const MATCH_HTML = /[&<>'"]/g;
|
|
21
|
-
|
|
22
19
|
function encodeChar(c) {
|
|
23
20
|
return ENCODE_HTML_RULES[c] || c;
|
|
24
21
|
}
|
|
25
|
-
|
|
26
22
|
function escape(str) {
|
|
27
23
|
return str.replace(MATCH_HTML, encodeChar);
|
|
28
24
|
}
|
|
29
|
-
|
|
30
25
|
class Fragment {
|
|
31
26
|
constructor(template) {
|
|
32
27
|
_defineProperty(this, "isVariable", void 0);
|
|
33
|
-
|
|
34
28
|
_defineProperty(this, "content", void 0);
|
|
35
|
-
|
|
36
29
|
_defineProperty(this, "filters", void 0);
|
|
37
|
-
|
|
38
30
|
_defineProperty(this, "path", void 0);
|
|
39
|
-
|
|
40
31
|
const match = VARIABLE_REG_EXP.exec(template);
|
|
41
|
-
|
|
42
32
|
if (match) {
|
|
43
33
|
const [, filterFlag, content] = match;
|
|
44
34
|
this.isVariable = true;
|
|
@@ -52,32 +42,24 @@ class Fragment {
|
|
|
52
42
|
this.path = [];
|
|
53
43
|
}
|
|
54
44
|
}
|
|
55
|
-
|
|
56
45
|
getValue(data) {
|
|
57
46
|
if (this.isVariable) {
|
|
58
47
|
const value = this.path.reduce((p, n) => p != null ? p[n] : p, data);
|
|
59
48
|
return this.filters.reduce((p, n) => n(p), value != null ? value : '');
|
|
60
49
|
}
|
|
61
|
-
|
|
62
50
|
return this.content;
|
|
63
51
|
}
|
|
64
|
-
|
|
65
52
|
}
|
|
66
|
-
|
|
67
53
|
exports.Fragment = Fragment;
|
|
68
|
-
|
|
69
54
|
_defineProperty(Fragment, "filterMap", {
|
|
70
55
|
'=': escape,
|
|
71
56
|
'-': v => v
|
|
72
57
|
});
|
|
73
|
-
|
|
74
58
|
const fragmentListMap = {};
|
|
75
|
-
|
|
76
59
|
function toFragments(template, entryName) {
|
|
77
60
|
if (fragmentListMap[entryName]) {
|
|
78
61
|
return fragmentListMap[entryName];
|
|
79
62
|
}
|
|
80
|
-
|
|
81
63
|
const fragmentList = template.split(VARIABLE_SPLITTER).filter(v => Boolean(v)).map(v => new Fragment(v));
|
|
82
64
|
fragmentListMap[entryName] = fragmentList;
|
|
83
65
|
return fragmentList;
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.RenderLevel = void 0;
|
|
7
7
|
let RenderLevel;
|
|
8
8
|
exports.RenderLevel = RenderLevel;
|
|
9
|
-
|
|
10
9
|
(function (RenderLevel) {
|
|
11
10
|
RenderLevel[RenderLevel["CLIENT_RENDER"] = 0] = "CLIENT_RENDER";
|
|
12
11
|
RenderLevel[RenderLevel["SERVER_PREFETCH"] = 1] = "SERVER_PREFETCH";
|
|
@@ -5,30 +5,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getLoadableScripts = getLoadableScripts;
|
|
7
7
|
exports.time = void 0;
|
|
8
|
-
|
|
9
8
|
function getLoadableScripts(extractor) {
|
|
10
9
|
const check = scripts => (scripts || '').includes('__LOADABLE_REQUIRED_CHUNKS___ext');
|
|
11
|
-
|
|
12
10
|
const scripts = extractor.getScriptTags();
|
|
13
|
-
|
|
14
11
|
if (!check(scripts)) {
|
|
15
12
|
return '';
|
|
16
13
|
}
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
return scripts.split('</script>')
|
|
15
|
+
// 前两个 script为 loadable 必须的 script
|
|
19
16
|
.slice(0, 2).map(i => `${i}</script>`).join('');
|
|
20
17
|
}
|
|
21
|
-
|
|
22
18
|
const getLatency = hrtime => {
|
|
23
19
|
const [s, ns] = process.hrtime(hrtime);
|
|
24
20
|
return s * 1e3 + ns / 1e6;
|
|
25
21
|
};
|
|
26
|
-
|
|
27
22
|
const time = () => {
|
|
28
23
|
const hrtime = process.hrtime();
|
|
29
24
|
return () => {
|
|
30
25
|
return getLatency(hrtime);
|
|
31
26
|
};
|
|
32
27
|
};
|
|
33
|
-
|
|
34
28
|
exports.time = time;
|
|
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.mockResponse = exports.isReact18 = exports.isCrossOrigin = exports.formatServer = exports.formatClient = void 0;
|
|
7
|
-
|
|
8
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
-
|
|
10
8
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
-
|
|
12
9
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
|
|
14
10
|
const isReact18 = () => process.env.IS_REACT18 === 'true';
|
|
15
|
-
|
|
16
11
|
exports.isReact18 = isReact18;
|
|
17
|
-
|
|
18
12
|
const formatServer = request => {
|
|
19
13
|
const {
|
|
20
14
|
cookie = '',
|
|
@@ -27,22 +21,16 @@ const formatServer = request => {
|
|
|
27
21
|
referer
|
|
28
22
|
}, request);
|
|
29
23
|
};
|
|
30
|
-
|
|
31
24
|
exports.formatServer = formatServer;
|
|
32
|
-
|
|
33
25
|
const getQuery = () => window.location.search.substring(1).split('&').reduce((res, item) => {
|
|
34
26
|
const [key, value] = item.split('=');
|
|
35
|
-
|
|
36
27
|
if (key) {
|
|
37
28
|
res[key] = value;
|
|
38
29
|
}
|
|
39
|
-
|
|
40
30
|
return res;
|
|
41
31
|
}, {});
|
|
42
|
-
|
|
43
32
|
const formatClient = request => {
|
|
44
33
|
var _request$headers, _request$headers2;
|
|
45
|
-
|
|
46
34
|
return {
|
|
47
35
|
params: request.params || {},
|
|
48
36
|
host: request.host || location.host,
|
|
@@ -56,29 +44,22 @@ const formatClient = request => {
|
|
|
56
44
|
url: location.href
|
|
57
45
|
};
|
|
58
46
|
};
|
|
59
|
-
|
|
60
47
|
exports.formatClient = formatClient;
|
|
61
|
-
|
|
62
48
|
const mockResponse = () => {
|
|
63
49
|
return {
|
|
64
50
|
setHeader() {
|
|
65
51
|
console.warn('response.setHeader() can only be used in the server side');
|
|
66
52
|
},
|
|
67
|
-
|
|
68
53
|
status() {
|
|
69
54
|
console.warn('response.status() can only be used in the server side');
|
|
70
55
|
},
|
|
71
|
-
|
|
72
56
|
get locals() {
|
|
73
57
|
console.warn('response.locals can only be used in the server side');
|
|
74
58
|
return {};
|
|
75
59
|
}
|
|
76
|
-
|
|
77
60
|
};
|
|
78
61
|
};
|
|
79
|
-
|
|
80
62
|
exports.mockResponse = mockResponse;
|
|
81
|
-
|
|
82
63
|
const isCrossOrigin = (url = '', base) => {
|
|
83
64
|
if (url.startsWith('/') || url.startsWith('./')) {
|
|
84
65
|
return false;
|
|
@@ -88,5 +69,4 @@ const isCrossOrigin = (url = '', base) => {
|
|
|
88
69
|
return false;
|
|
89
70
|
}
|
|
90
71
|
};
|
|
91
|
-
|
|
92
72
|
exports.isCrossOrigin = isCrossOrigin;
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _utils = require("@modern-js/utils");
|
|
9
|
-
|
|
10
8
|
require("../types");
|
|
11
|
-
|
|
12
9
|
const PLUGIN_IDENTIFIER = 'state';
|
|
13
|
-
|
|
14
10
|
var _default = () => ({
|
|
15
11
|
name: '@modern-js/plugin-state',
|
|
16
12
|
required: ['@modern-js/runtime'],
|
|
@@ -29,13 +25,11 @@ var _default = () => ({
|
|
|
29
25
|
}
|
|
30
26
|
};
|
|
31
27
|
},
|
|
32
|
-
|
|
33
28
|
modifyEntryImports({
|
|
34
29
|
entrypoint,
|
|
35
30
|
imports
|
|
36
31
|
}) {
|
|
37
32
|
var _getEntryOptions;
|
|
38
|
-
|
|
39
33
|
const {
|
|
40
34
|
entryName
|
|
41
35
|
} = entrypoint;
|
|
@@ -45,7 +39,6 @@ var _default = () => ({
|
|
|
45
39
|
} = api.useAppContext();
|
|
46
40
|
const stateConfig = (_getEntryOptions = (0, _utils.getEntryOptions)(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
|
|
47
41
|
stateConfigMap.set(entryName, stateConfig);
|
|
48
|
-
|
|
49
42
|
if (stateConfig) {
|
|
50
43
|
imports.push({
|
|
51
44
|
value: '@modern-js/runtime/plugins',
|
|
@@ -54,42 +47,34 @@ var _default = () => ({
|
|
|
54
47
|
}]
|
|
55
48
|
});
|
|
56
49
|
}
|
|
57
|
-
|
|
58
50
|
return {
|
|
59
51
|
entrypoint,
|
|
60
52
|
imports
|
|
61
53
|
};
|
|
62
54
|
},
|
|
63
|
-
|
|
64
55
|
modifyEntryRuntimePlugins({
|
|
65
56
|
entrypoint,
|
|
66
57
|
plugins
|
|
67
58
|
}) {
|
|
68
59
|
const stateOptions = stateConfigMap.get(entrypoint.entryName);
|
|
69
|
-
|
|
70
60
|
if (stateOptions) {
|
|
71
61
|
plugins.push({
|
|
72
62
|
name: PLUGIN_IDENTIFIER,
|
|
73
63
|
options: `${JSON.stringify(stateConfigMap.get(entrypoint.entryName))}`
|
|
74
64
|
});
|
|
75
65
|
}
|
|
76
|
-
|
|
77
66
|
return {
|
|
78
67
|
entrypoint,
|
|
79
68
|
plugins
|
|
80
69
|
};
|
|
81
70
|
},
|
|
82
|
-
|
|
83
71
|
validateSchema() {
|
|
84
72
|
return _utils.PLUGIN_SCHEMAS['@modern-js/plugin-state'];
|
|
85
73
|
},
|
|
86
|
-
|
|
87
74
|
addRuntimeExports() {
|
|
88
75
|
pluginsExportsUtils.addExport(`export { default as state } from '@modern-js/runtime/model'`);
|
|
89
76
|
}
|
|
90
|
-
|
|
91
77
|
};
|
|
92
78
|
}
|
|
93
79
|
});
|
|
94
|
-
|
|
95
80
|
exports.default = _default;
|
|
@@ -18,9 +18,7 @@ Object.defineProperty(exports, "state", {
|
|
|
18
18
|
return _runtime.default;
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
|
|
22
21
|
var _runtime = _interopRequireWildcard(require("./runtime"));
|
|
23
|
-
|
|
24
22
|
Object.keys(_runtime).forEach(function (key) {
|
|
25
23
|
if (key === "default" || key === "__esModule") return;
|
|
26
24
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -32,7 +30,5 @@ Object.keys(_runtime).forEach(function (key) {
|
|
|
32
30
|
}
|
|
33
31
|
});
|
|
34
32
|
});
|
|
35
|
-
|
|
36
33
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
|
-
|
|
38
34
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -11,25 +11,14 @@ Object.defineProperty(exports, "devtools", {
|
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
13
|
exports.immer = exports.effects = void 0;
|
|
14
|
-
|
|
15
14
|
var _pluginEffects = require("@modern-js-reduck/plugin-effects");
|
|
16
|
-
|
|
17
15
|
var _pluginAutoActions = _interopRequireDefault(require("@modern-js-reduck/plugin-auto-actions"));
|
|
18
|
-
|
|
19
16
|
var _pluginImmutable = _interopRequireDefault(require("@modern-js-reduck/plugin-immutable"));
|
|
20
|
-
|
|
21
17
|
var _pluginDevtools = _interopRequireDefault(require("@modern-js-reduck/plugin-devtools"));
|
|
22
|
-
|
|
23
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
-
|
|
25
19
|
const effects = () => _pluginEffects.plugin;
|
|
26
|
-
|
|
27
20
|
exports.effects = effects;
|
|
28
|
-
|
|
29
21
|
const immer = () => _pluginImmutable.default;
|
|
30
|
-
|
|
31
22
|
exports.immer = immer;
|
|
32
|
-
|
|
33
23
|
const autoActions = () => _pluginAutoActions.default;
|
|
34
|
-
|
|
35
24
|
exports.autoActions = autoActions;
|