@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
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
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; }
|
|
2
|
-
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import ReactDomServer from 'react-dom/server';
|
|
5
4
|
import serialize from 'serialize-javascript';
|
|
@@ -7,11 +6,11 @@ import ReactHelmet from 'react-helmet';
|
|
|
7
6
|
import helmetReplace from "../helmet";
|
|
8
7
|
import { RenderLevel } from "../types";
|
|
9
8
|
import { time } from "../utils";
|
|
9
|
+
import prefetch from "../../prefetch";
|
|
10
10
|
import { toFragments } from "./template";
|
|
11
11
|
import { reduce } from "./reduce";
|
|
12
12
|
import * as loadableRenderer from "./loadable";
|
|
13
13
|
import * as styledComponentRenderer from "./styledComponent";
|
|
14
|
-
|
|
15
14
|
const buildTemplateData = (context, data, renderLevel) => {
|
|
16
15
|
const {
|
|
17
16
|
request
|
|
@@ -32,25 +31,16 @@ const buildTemplateData = (context, data, renderLevel) => {
|
|
|
32
31
|
renderLevel
|
|
33
32
|
};
|
|
34
33
|
};
|
|
35
|
-
|
|
36
34
|
export default class Entry {
|
|
37
35
|
constructor(options) {
|
|
38
36
|
_defineProperty(this, "entryName", void 0);
|
|
39
|
-
|
|
40
37
|
_defineProperty(this, "result", void 0);
|
|
41
|
-
|
|
42
38
|
_defineProperty(this, "metrics", void 0);
|
|
43
|
-
|
|
44
39
|
_defineProperty(this, "logger", void 0);
|
|
45
|
-
|
|
46
40
|
_defineProperty(this, "App", void 0);
|
|
47
|
-
|
|
48
41
|
_defineProperty(this, "fragments", void 0);
|
|
49
|
-
|
|
50
42
|
_defineProperty(this, "pluginConfig", void 0);
|
|
51
|
-
|
|
52
43
|
_defineProperty(this, "host", void 0);
|
|
53
|
-
|
|
54
44
|
const {
|
|
55
45
|
ctx,
|
|
56
46
|
config
|
|
@@ -78,32 +68,24 @@ export default class Entry {
|
|
|
78
68
|
}
|
|
79
69
|
};
|
|
80
70
|
}
|
|
81
|
-
|
|
82
71
|
async renderToHtml(context) {
|
|
83
72
|
const ssrContext = context.ssrContext;
|
|
84
|
-
|
|
85
73
|
if (ssrContext.redirection.url) {
|
|
86
74
|
return '';
|
|
87
75
|
}
|
|
88
|
-
|
|
89
76
|
const prefetchData = await this.prefetch(context);
|
|
90
|
-
|
|
91
77
|
if (ssrContext.redirection.url) {
|
|
92
78
|
return '';
|
|
93
79
|
}
|
|
94
|
-
|
|
95
80
|
if (this.result.renderLevel >= RenderLevel.SERVER_PREFETCH) {
|
|
96
81
|
this.result.html = this.renderToString(context);
|
|
97
82
|
}
|
|
98
|
-
|
|
99
83
|
if (ssrContext.redirection.url) {
|
|
100
84
|
return '';
|
|
101
85
|
}
|
|
102
|
-
|
|
103
86
|
let html = '';
|
|
104
87
|
const templateData = buildTemplateData(ssrContext, prefetchData, this.result.renderLevel);
|
|
105
88
|
const SSRData = this.getSSRDataScript(templateData);
|
|
106
|
-
|
|
107
89
|
for (const fragment of this.fragments) {
|
|
108
90
|
if (fragment.isVariable && fragment.content === 'SSRDataScript') {
|
|
109
91
|
html += fragment.getValue(SSRData);
|
|
@@ -111,22 +93,14 @@ export default class Entry {
|
|
|
111
93
|
html += fragment.getValue(this.result);
|
|
112
94
|
}
|
|
113
95
|
}
|
|
114
|
-
|
|
115
96
|
const helmetData = ReactHelmet.renderStatic();
|
|
116
97
|
return helmetData ? helmetReplace(html, helmetData) : html;
|
|
117
98
|
}
|
|
118
|
-
|
|
119
99
|
async prefetch(context) {
|
|
120
|
-
const {
|
|
121
|
-
App: {
|
|
122
|
-
prefetch
|
|
123
|
-
}
|
|
124
|
-
} = this;
|
|
125
100
|
let prefetchData;
|
|
126
101
|
const end = time();
|
|
127
|
-
|
|
128
102
|
try {
|
|
129
|
-
prefetchData =
|
|
103
|
+
prefetchData = await prefetch(this.App, context);
|
|
130
104
|
this.result.renderLevel = RenderLevel.SERVER_PREFETCH;
|
|
131
105
|
const prefetchCost = end();
|
|
132
106
|
this.logger.debug(`App Prefetch cost = %d ms`, prefetchCost);
|
|
@@ -136,17 +110,14 @@ export default class Entry {
|
|
|
136
110
|
this.logger.error('App Prefetch Render', e);
|
|
137
111
|
this.metrics.emitCounter('app.prefetch.render.error', 1);
|
|
138
112
|
}
|
|
139
|
-
|
|
140
113
|
return prefetchData || {};
|
|
141
114
|
}
|
|
142
|
-
|
|
143
115
|
renderToString(context) {
|
|
144
116
|
let html = '';
|
|
145
117
|
const end = time();
|
|
146
118
|
const {
|
|
147
119
|
ssrContext
|
|
148
120
|
} = context;
|
|
149
|
-
|
|
150
121
|
try {
|
|
151
122
|
const App = /*#__PURE__*/React.createElement(this.App, {
|
|
152
123
|
context: Object.assign(context, {
|
|
@@ -169,10 +140,8 @@ export default class Entry {
|
|
|
169
140
|
this.logger.error('App Render To HTML', e);
|
|
170
141
|
this.metrics.emitCounter('app.render.html.error', 1);
|
|
171
142
|
}
|
|
172
|
-
|
|
173
143
|
return html;
|
|
174
144
|
}
|
|
175
|
-
|
|
176
145
|
getSSRDataScript(templateData) {
|
|
177
146
|
return {
|
|
178
147
|
SSRDataScript: `
|
|
@@ -182,5 +151,4 @@ export default class Entry {
|
|
|
182
151
|
`
|
|
183
152
|
};
|
|
184
153
|
}
|
|
185
|
-
|
|
186
154
|
}
|
|
@@ -21,11 +21,9 @@ export const render = ({
|
|
|
21
21
|
entry.logger.info('App Render Total cost = %d ms', cost);
|
|
22
22
|
entry.metrics.emitTimer('app.render.cost', cost);
|
|
23
23
|
const cacheConfig = PreRender.config();
|
|
24
|
-
|
|
25
24
|
if (cacheConfig) {
|
|
26
25
|
context.ssrContext.cacheConfig = cacheConfig;
|
|
27
26
|
}
|
|
28
|
-
|
|
29
27
|
return html;
|
|
30
28
|
});
|
|
31
29
|
};
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { ChunkExtractor } from '@loadable/server';
|
|
2
2
|
import { isCrossOrigin } from "../../utils";
|
|
3
3
|
import { getLoadableScripts } from "../utils";
|
|
4
|
-
|
|
5
4
|
const extname = uri => {
|
|
6
5
|
if (typeof uri !== 'string' || !uri.includes('.')) {
|
|
7
6
|
return '';
|
|
8
7
|
}
|
|
9
|
-
|
|
10
8
|
return `.${uri === null || uri === void 0 ? void 0 : uri.split('.').pop()}` || '';
|
|
11
9
|
};
|
|
12
|
-
|
|
13
10
|
export const toHtml = (jsx, renderer, next) => {
|
|
14
11
|
const {
|
|
15
12
|
stats,
|
|
@@ -19,11 +16,9 @@ export const toHtml = (jsx, renderer, next) => {
|
|
|
19
16
|
host,
|
|
20
17
|
config = {}
|
|
21
18
|
} = renderer;
|
|
22
|
-
|
|
23
19
|
if (!stats || chunksMap.js) {
|
|
24
20
|
return next(jsx);
|
|
25
21
|
}
|
|
26
|
-
|
|
27
22
|
const extractor = new ChunkExtractor({
|
|
28
23
|
stats,
|
|
29
24
|
entrypoints: [renderer.entryName]
|
|
@@ -31,25 +26,20 @@ export const toHtml = (jsx, renderer, next) => {
|
|
|
31
26
|
const html = next(extractor.collectChunks(jsx));
|
|
32
27
|
const chunks = extractor.getChunkAssets(extractor.chunks);
|
|
33
28
|
chunksMap.js = (chunksMap.js || '') + getLoadableScripts(extractor);
|
|
34
|
-
|
|
35
29
|
for (const v of chunks) {
|
|
36
30
|
const fileType = extname(v.url).slice(1);
|
|
37
|
-
|
|
38
31
|
if (fileType === 'js') {
|
|
39
32
|
const props = [];
|
|
40
33
|
const {
|
|
41
34
|
crossorigin
|
|
42
35
|
} = config;
|
|
43
|
-
|
|
44
36
|
if (crossorigin && isCrossOrigin(v.url, host)) {
|
|
45
37
|
props.push(`crossorigin="${crossorigin === true ? 'anonymous' : crossorigin}"`);
|
|
46
38
|
}
|
|
47
|
-
|
|
48
39
|
chunksMap[fileType] += `<script src="${v.url}" ${props.join(' ')}></script>`;
|
|
49
40
|
} else if (fileType === 'css') {
|
|
50
41
|
chunksMap[fileType] += `<link href="${v.url}" rel="stylesheet" />`;
|
|
51
42
|
}
|
|
52
43
|
}
|
|
53
|
-
|
|
54
44
|
return html;
|
|
55
45
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
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; }
|
|
2
|
-
|
|
3
2
|
const VARIABLE_REG_EXP = /<!--<\?([-=+])\s*(.*?)\s*\?>-->/;
|
|
4
3
|
const VARIABLE_SPLITTER = /(<!--<\?.*?\?>-->)/;
|
|
5
4
|
const ENCODE_HTML_RULES = {
|
|
@@ -10,27 +9,19 @@ const ENCODE_HTML_RULES = {
|
|
|
10
9
|
"'": '''
|
|
11
10
|
};
|
|
12
11
|
const MATCH_HTML = /[&<>'"]/g;
|
|
13
|
-
|
|
14
12
|
function encodeChar(c) {
|
|
15
13
|
return ENCODE_HTML_RULES[c] || c;
|
|
16
14
|
}
|
|
17
|
-
|
|
18
15
|
function escape(str) {
|
|
19
16
|
return str.replace(MATCH_HTML, encodeChar);
|
|
20
17
|
}
|
|
21
|
-
|
|
22
18
|
export class Fragment {
|
|
23
19
|
constructor(template) {
|
|
24
20
|
_defineProperty(this, "isVariable", void 0);
|
|
25
|
-
|
|
26
21
|
_defineProperty(this, "content", void 0);
|
|
27
|
-
|
|
28
22
|
_defineProperty(this, "filters", void 0);
|
|
29
|
-
|
|
30
23
|
_defineProperty(this, "path", void 0);
|
|
31
|
-
|
|
32
24
|
const match = VARIABLE_REG_EXP.exec(template);
|
|
33
|
-
|
|
34
25
|
if (match) {
|
|
35
26
|
const [, filterFlag, content] = match;
|
|
36
27
|
this.isVariable = true;
|
|
@@ -44,29 +35,23 @@ export class Fragment {
|
|
|
44
35
|
this.path = [];
|
|
45
36
|
}
|
|
46
37
|
}
|
|
47
|
-
|
|
48
38
|
getValue(data) {
|
|
49
39
|
if (this.isVariable) {
|
|
50
40
|
const value = this.path.reduce((p, n) => p != null ? p[n] : p, data);
|
|
51
41
|
return this.filters.reduce((p, n) => n(p), value != null ? value : '');
|
|
52
42
|
}
|
|
53
|
-
|
|
54
43
|
return this.content;
|
|
55
44
|
}
|
|
56
|
-
|
|
57
45
|
}
|
|
58
|
-
|
|
59
46
|
_defineProperty(Fragment, "filterMap", {
|
|
60
47
|
'=': escape,
|
|
61
48
|
'-': v => v
|
|
62
49
|
});
|
|
63
|
-
|
|
64
50
|
const fragmentListMap = {};
|
|
65
51
|
export function toFragments(template, entryName) {
|
|
66
52
|
if (fragmentListMap[entryName]) {
|
|
67
53
|
return fragmentListMap[entryName];
|
|
68
54
|
}
|
|
69
|
-
|
|
70
55
|
const fragmentList = template.split(VARIABLE_SPLITTER).filter(v => Boolean(v)).map(v => new Fragment(v));
|
|
71
56
|
fragmentListMap[entryName] = fragmentList;
|
|
72
57
|
return fragmentList;
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
export function getLoadableScripts(extractor) {
|
|
2
2
|
const check = scripts => (scripts || '').includes('__LOADABLE_REQUIRED_CHUNKS___ext');
|
|
3
|
-
|
|
4
3
|
const scripts = extractor.getScriptTags();
|
|
5
|
-
|
|
6
4
|
if (!check(scripts)) {
|
|
7
5
|
return '';
|
|
8
6
|
}
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
return scripts.split('</script>')
|
|
8
|
+
// 前两个 script为 loadable 必须的 script
|
|
11
9
|
.slice(0, 2).map(i => `${i}</script>`).join('');
|
|
12
10
|
}
|
|
13
|
-
|
|
14
11
|
const getLatency = hrtime => {
|
|
15
12
|
const [s, ns] = process.hrtime(hrtime);
|
|
16
13
|
return s * 1e3 + ns / 1e6;
|
|
17
14
|
};
|
|
18
|
-
|
|
19
15
|
export const time = () => {
|
|
20
16
|
const hrtime = process.hrtime();
|
|
21
17
|
return () => {
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
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; }
|
|
2
|
-
|
|
3
2
|
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; }
|
|
4
|
-
|
|
5
3
|
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; }
|
|
6
|
-
|
|
7
4
|
export const isReact18 = () => process.env.IS_REACT18 === 'true';
|
|
8
5
|
export const formatServer = request => {
|
|
9
6
|
const {
|
|
@@ -17,20 +14,15 @@ export const formatServer = request => {
|
|
|
17
14
|
referer
|
|
18
15
|
}, request);
|
|
19
16
|
};
|
|
20
|
-
|
|
21
17
|
const getQuery = () => window.location.search.substring(1).split('&').reduce((res, item) => {
|
|
22
18
|
const [key, value] = item.split('=');
|
|
23
|
-
|
|
24
19
|
if (key) {
|
|
25
20
|
res[key] = value;
|
|
26
21
|
}
|
|
27
|
-
|
|
28
22
|
return res;
|
|
29
23
|
}, {});
|
|
30
|
-
|
|
31
24
|
export const formatClient = request => {
|
|
32
25
|
var _request$headers, _request$headers2;
|
|
33
|
-
|
|
34
26
|
return {
|
|
35
27
|
params: request.params || {},
|
|
36
28
|
host: request.host || location.host,
|
|
@@ -49,16 +41,13 @@ export const mockResponse = () => {
|
|
|
49
41
|
setHeader() {
|
|
50
42
|
console.warn('response.setHeader() can only be used in the server side');
|
|
51
43
|
},
|
|
52
|
-
|
|
53
44
|
status() {
|
|
54
45
|
console.warn('response.status() can only be used in the server side');
|
|
55
46
|
},
|
|
56
|
-
|
|
57
47
|
get locals() {
|
|
58
48
|
console.warn('response.locals can only be used in the server side');
|
|
59
49
|
return {};
|
|
60
50
|
}
|
|
61
|
-
|
|
62
51
|
};
|
|
63
52
|
};
|
|
64
53
|
export const isCrossOrigin = (url = '', base) => {
|
|
@@ -19,13 +19,11 @@ export default (() => ({
|
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
},
|
|
22
|
-
|
|
23
22
|
modifyEntryImports({
|
|
24
23
|
entrypoint,
|
|
25
24
|
imports
|
|
26
25
|
}) {
|
|
27
26
|
var _getEntryOptions;
|
|
28
|
-
|
|
29
27
|
const {
|
|
30
28
|
entryName
|
|
31
29
|
} = entrypoint;
|
|
@@ -35,7 +33,6 @@ export default (() => ({
|
|
|
35
33
|
} = api.useAppContext();
|
|
36
34
|
const stateConfig = (_getEntryOptions = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
|
|
37
35
|
stateConfigMap.set(entryName, stateConfig);
|
|
38
|
-
|
|
39
36
|
if (stateConfig) {
|
|
40
37
|
imports.push({
|
|
41
38
|
value: '@modern-js/runtime/plugins',
|
|
@@ -44,40 +41,33 @@ export default (() => ({
|
|
|
44
41
|
}]
|
|
45
42
|
});
|
|
46
43
|
}
|
|
47
|
-
|
|
48
44
|
return {
|
|
49
45
|
entrypoint,
|
|
50
46
|
imports
|
|
51
47
|
};
|
|
52
48
|
},
|
|
53
|
-
|
|
54
49
|
modifyEntryRuntimePlugins({
|
|
55
50
|
entrypoint,
|
|
56
51
|
plugins
|
|
57
52
|
}) {
|
|
58
53
|
const stateOptions = stateConfigMap.get(entrypoint.entryName);
|
|
59
|
-
|
|
60
54
|
if (stateOptions) {
|
|
61
55
|
plugins.push({
|
|
62
56
|
name: PLUGIN_IDENTIFIER,
|
|
63
57
|
options: `${JSON.stringify(stateConfigMap.get(entrypoint.entryName))}`
|
|
64
58
|
});
|
|
65
59
|
}
|
|
66
|
-
|
|
67
60
|
return {
|
|
68
61
|
entrypoint,
|
|
69
62
|
plugins
|
|
70
63
|
};
|
|
71
64
|
},
|
|
72
|
-
|
|
73
65
|
validateSchema() {
|
|
74
66
|
return PLUGIN_SCHEMAS['@modern-js/plugin-state'];
|
|
75
67
|
},
|
|
76
|
-
|
|
77
68
|
addRuntimeExports() {
|
|
78
69
|
pluginsExportsUtils.addExport(`export { default as state } from '@modern-js/runtime/model'`);
|
|
79
70
|
}
|
|
80
|
-
|
|
81
71
|
};
|
|
82
72
|
}
|
|
83
73
|
}));
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
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; }
|
|
2
|
-
|
|
3
2
|
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; }
|
|
4
|
-
|
|
5
3
|
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; }
|
|
6
|
-
|
|
7
4
|
import { useContext } from 'react';
|
|
8
5
|
import { createStore } from '@modern-js-reduck/store';
|
|
9
6
|
import { Provider } from '@modern-js-reduck/react';
|
|
@@ -18,7 +15,6 @@ const StatePluginHandleMap = {
|
|
|
18
15
|
autoActions,
|
|
19
16
|
devtools
|
|
20
17
|
};
|
|
21
|
-
|
|
22
18
|
const getStoreConfig = config => {
|
|
23
19
|
const internalPlugins = ['immer', 'effects', 'autoActions', 'devtools'];
|
|
24
20
|
const plugins = [];
|
|
@@ -27,7 +23,6 @@ const getStoreConfig = config => {
|
|
|
27
23
|
plugins
|
|
28
24
|
};
|
|
29
25
|
};
|
|
30
|
-
|
|
31
26
|
const state = config => ({
|
|
32
27
|
name: '@modern-js/plugin-state',
|
|
33
28
|
setup: () => {
|
|
@@ -44,29 +39,23 @@ const state = config => ({
|
|
|
44
39
|
children: /*#__PURE__*/_jsx(App, _objectSpread({}, props))
|
|
45
40
|
});
|
|
46
41
|
};
|
|
47
|
-
|
|
48
42
|
return next({
|
|
49
43
|
App: hoistNonReactStatics(getStateApp, App)
|
|
50
44
|
});
|
|
51
45
|
},
|
|
52
|
-
|
|
53
46
|
init({
|
|
54
47
|
context
|
|
55
48
|
}, next) {
|
|
56
49
|
const storeConfig = getStoreConfig(config || {});
|
|
57
|
-
|
|
58
50
|
if (isBrowser()) {
|
|
59
51
|
var _window, _window$_SSR_DATA, _window$_SSR_DATA$dat;
|
|
60
|
-
|
|
61
52
|
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) || {};
|
|
62
53
|
}
|
|
63
|
-
|
|
64
54
|
context.store = createStore(storeConfig);
|
|
65
|
-
next({
|
|
55
|
+
return next({
|
|
66
56
|
context
|
|
67
57
|
});
|
|
68
58
|
},
|
|
69
|
-
|
|
70
59
|
pickContext({
|
|
71
60
|
context,
|
|
72
61
|
pickedContext
|
|
@@ -78,10 +67,8 @@ const state = config => ({
|
|
|
78
67
|
})
|
|
79
68
|
});
|
|
80
69
|
}
|
|
81
|
-
|
|
82
70
|
};
|
|
83
71
|
}
|
|
84
72
|
});
|
|
85
|
-
|
|
86
73
|
export default state;
|
|
87
74
|
export * from "../plugins";
|
|
@@ -4,23 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
|
|
10
8
|
var _utils = require("@modern-js/utils");
|
|
11
|
-
|
|
12
9
|
var _cli = _interopRequireDefault(require("../state/cli"));
|
|
13
|
-
|
|
14
10
|
var _cli2 = _interopRequireDefault(require("../ssr/cli"));
|
|
15
|
-
|
|
16
11
|
var _cli3 = _interopRequireDefault(require("../router/cli"));
|
|
17
|
-
|
|
12
|
+
var _cli4 = _interopRequireDefault(require("../document/cli"));
|
|
18
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
14
|
var _default = () => ({
|
|
21
15
|
name: '@modern-js/runtime',
|
|
22
|
-
post: ['@modern-js/plugin-router', '@modern-js/plugin-ssr', '@modern-js/plugin-state', '@modern-js/plugin-design-token'],
|
|
23
|
-
usePlugins: [(0, _cli.default)(), (0, _cli2.default)(), (0, _cli3.default)()],
|
|
16
|
+
post: ['@modern-js/plugin-router', '@modern-js/plugin-ssr', '@modern-js/plugin-document', '@modern-js/plugin-state', '@modern-js/plugin-design-token'],
|
|
17
|
+
usePlugins: [(0, _cli.default)(), (0, _cli2.default)(), (0, _cli3.default)(), (0, _cli4.default)()],
|
|
24
18
|
setup: api => {
|
|
25
19
|
return {
|
|
26
20
|
config() {
|
|
@@ -42,17 +36,13 @@ var _default = () => ({
|
|
|
42
36
|
}
|
|
43
37
|
};
|
|
44
38
|
},
|
|
45
|
-
|
|
46
39
|
validateSchema() {
|
|
47
40
|
return _utils.PLUGIN_SCHEMAS['@modern-js/runtime'];
|
|
48
41
|
},
|
|
49
|
-
|
|
50
42
|
async beforeRestart() {
|
|
51
43
|
(0, _utils.cleanRequireCache)([require.resolve("../state/cli"), require.resolve("../router/cli"), require.resolve("../ssr/cli")]);
|
|
52
44
|
}
|
|
53
|
-
|
|
54
45
|
};
|
|
55
46
|
}
|
|
56
47
|
});
|
|
57
|
-
|
|
58
48
|
exports.default = _default;
|
package/dist/js/node/common.js
CHANGED
|
@@ -5,18 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getConfig = exports.defineConfig = void 0;
|
|
7
7
|
const APP_CONFIG_SYMBOL = 'config';
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const getConfig = Component =>
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
10
|
// @ts-expect-error
|
|
11
11
|
Component[APP_CONFIG_SYMBOL];
|
|
12
|
-
|
|
13
12
|
exports.getConfig = getConfig;
|
|
14
|
-
|
|
15
13
|
const defineConfig = (Component, config) => {
|
|
16
14
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
17
15
|
// @ts-expect-error
|
|
18
16
|
Component[APP_CONFIG_SYMBOL] = config;
|
|
19
17
|
return Component;
|
|
20
18
|
};
|
|
21
|
-
|
|
22
19
|
exports.defineConfig = defineConfig;
|