@modern-js/runtime 2.15.1-alpha.2 → 2.16.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/cjs/cli/index.js +32 -48
- package/dist/cjs/common.js +13 -27
- package/dist/cjs/config.js +4 -15
- package/dist/cjs/core/appConfig.js +13 -26
- package/dist/cjs/core/compatible.js +170 -158
- package/dist/cjs/core/index.js +38 -45
- package/dist/cjs/core/loader/index.js +12 -35
- package/dist/cjs/core/loader/loaderManager.js +42 -56
- package/dist/cjs/core/loader/useLoader.js +80 -105
- package/dist/cjs/core/plugin.js +28 -40
- package/dist/cjs/core/types.js +4 -15
- package/dist/cjs/document/Body.js +61 -37
- package/dist/cjs/document/Comment.js +22 -32
- package/dist/cjs/document/DocumentContext.js +14 -37
- package/dist/cjs/document/DocumentStructureContext.js +14 -37
- package/dist/cjs/document/Head.js +71 -40
- package/dist/cjs/document/Html.js +46 -58
- package/dist/cjs/document/Links.js +18 -28
- package/dist/cjs/document/Root.js +73 -44
- package/dist/cjs/document/Script.js +22 -32
- package/dist/cjs/document/Scripts.js +18 -28
- package/dist/cjs/document/cli/index.js +161 -207
- package/dist/cjs/document/constants.js +36 -75
- package/dist/cjs/document/index.js +28 -27
- package/dist/cjs/exports/head.js +27 -37
- package/dist/cjs/exports/loadable.js +27 -37
- package/dist/cjs/exports/server.js +7 -25
- package/dist/cjs/exports/styled.js +27 -37
- package/dist/cjs/index.js +22 -42
- package/dist/cjs/router/cli/index.js +91 -114
- package/dist/cjs/router/index.js +32 -39
- package/dist/cjs/router/runtime/DefaultNotFound.js +23 -38
- package/dist/cjs/router/runtime/DeferredDataScripts.js +8 -24
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +69 -112
- package/dist/cjs/router/runtime/PrefetchLink.js +117 -96
- package/dist/cjs/router/runtime/fetch.js +7 -25
- package/dist/cjs/router/runtime/fetch.node.js +7 -25
- package/dist/cjs/router/runtime/fetch.worker.js +7 -25
- package/dist/cjs/router/runtime/hooks.js +8 -26
- package/dist/cjs/router/runtime/index.js +97 -149
- package/dist/cjs/router/runtime/plugin.js +56 -76
- package/dist/cjs/router/runtime/plugin.node.js +95 -74
- package/dist/cjs/router/runtime/server.js +18 -17
- package/dist/cjs/router/runtime/types.js +4 -15
- package/dist/cjs/router/runtime/utils.js +57 -83
- package/dist/cjs/router/runtime/withRouter.js +24 -39
- package/dist/cjs/runtimeContext.js +14 -27
- package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +75 -59
- package/dist/cjs/ssr/cli/index.js +120 -150
- package/dist/cjs/ssr/index.js +149 -132
- package/dist/cjs/ssr/index.node.js +73 -74
- package/dist/cjs/ssr/prefetch.js +51 -59
- package/dist/cjs/ssr/react/index.js +15 -28
- package/dist/cjs/ssr/react/nossr/index.js +51 -43
- package/dist/cjs/ssr/react/prerender/index.js +93 -59
- package/dist/cjs/ssr/react/prerender/type.js +4 -15
- package/dist/cjs/ssr/react/prerender/util.js +32 -51
- package/dist/cjs/ssr/react/withCallback/index.js +53 -29
- package/dist/cjs/ssr/serverRender/helmet.js +15 -26
- package/dist/cjs/ssr/serverRender/index.js +14 -32
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +15 -34
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.share.js +12 -28
- package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +28 -55
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +23 -48
- package/dist/cjs/ssr/serverRender/renderToStream/loadable.js +13 -32
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +33 -64
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +26 -54
- package/dist/cjs/ssr/serverRender/renderToStream/styledComponent.js +9 -27
- package/dist/cjs/ssr/serverRender/renderToStream/template.js +11 -32
- package/dist/cjs/ssr/serverRender/renderToStream/type.js +4 -15
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +133 -99
- package/dist/cjs/ssr/serverRender/renderToString/index.js +21 -48
- package/dist/cjs/ssr/serverRender/renderToString/loadable.js +20 -45
- package/dist/cjs/ssr/serverRender/renderToString/reduce.js +13 -25
- package/dist/cjs/ssr/serverRender/renderToString/styledComponent.js +9 -27
- package/dist/cjs/ssr/serverRender/renderToString/template.js +42 -37
- package/dist/cjs/ssr/serverRender/renderToString/type.js +10 -28
- package/dist/cjs/ssr/serverRender/time.js +7 -25
- package/dist/cjs/ssr/serverRender/time.worker.js +11 -26
- package/dist/cjs/ssr/serverRender/types.js +7 -25
- package/dist/cjs/ssr/serverRender/utils.js +12 -27
- package/dist/cjs/ssr/utils.js +26 -51
- package/dist/cjs/state/cli/index.js +71 -95
- package/dist/cjs/state/index.js +32 -39
- package/dist/cjs/state/plugins.js +26 -46
- package/dist/cjs/state/runtime/index.js +27 -37
- package/dist/cjs/state/runtime/plugin.js +82 -84
- package/dist/cjs/state/types.js +4 -15
- package/dist/esm/cli/index.js +184 -176
- package/dist/esm/common.js +4 -5
- package/dist/esm/config.js +1 -1
- package/dist/esm/core/appConfig.js +8 -7
- package/dist/esm/core/compatible.js +470 -448
- package/dist/esm/core/index.js +3 -4
- package/dist/esm/core/loader/index.js +1 -2
- package/dist/esm/core/loader/loaderManager.js +391 -366
- package/dist/esm/core/loader/useLoader.js +173 -162
- package/dist/esm/core/plugin.js +162 -155
- package/dist/esm/core/types.js +1 -1
- package/dist/esm/document/Body.js +12 -13
- package/dist/esm/document/Comment.js +11 -12
- package/dist/esm/document/DocumentContext.js +4 -5
- package/dist/esm/document/DocumentStructureContext.js +6 -7
- package/dist/esm/document/Head.js +16 -17
- package/dist/esm/document/Html.js +84 -85
- package/dist/esm/document/Links.js +5 -6
- package/dist/esm/document/Root.js +20 -21
- package/dist/esm/document/Script.js +12 -13
- package/dist/esm/document/Scripts.js +5 -6
- package/dist/esm/document/cli/index.js +390 -371
- package/dist/esm/document/constants.js +33 -34
- package/dist/esm/exports/head.js +1 -2
- package/dist/esm/exports/loadable.js +1 -2
- package/dist/esm/exports/server.js +2 -3
- package/dist/esm/exports/styled.js +1 -2
- package/dist/esm/index.js +2 -3
- package/dist/esm/router/cli/index.js +141 -141
- package/dist/esm/router/index.js +2 -3
- package/dist/esm/router/runtime/DefaultNotFound.js +12 -13
- package/dist/esm/router/runtime/DeferredDataScripts.js +4 -4
- package/dist/esm/router/runtime/DeferredDataScripts.node.js +154 -143
- package/dist/esm/router/runtime/PrefetchLink.js +418 -394
- package/dist/esm/router/runtime/fetch.js +2 -1
- package/dist/esm/router/runtime/fetch.worker.js +2 -1
- package/dist/esm/router/runtime/index.js +62 -9
- package/dist/esm/router/runtime/plugin.js +141 -142
- package/dist/esm/router/runtime/plugin.node.js +372 -353
- package/dist/esm/router/runtime/types.js +1 -1
- package/dist/esm/router/runtime/utils.js +295 -279
- package/dist/esm/router/runtime/withRouter.js +57 -58
- package/dist/esm/runtimeContext.js +2 -3
- package/dist/esm/ssr/cli/babel-plugin-ssr-loader-id.js +105 -118
- package/dist/esm/ssr/cli/index.js +146 -146
- package/dist/esm/ssr/index.js +303 -297
- package/dist/esm/ssr/index.node.js +227 -221
- package/dist/esm/ssr/prefetch.js +192 -186
- package/dist/esm/ssr/react/index.js +2 -3
- package/dist/esm/ssr/react/nossr/index.js +58 -47
- package/dist/esm/ssr/react/prerender/index.js +214 -206
- package/dist/esm/ssr/react/prerender/type.js +1 -1
- package/dist/esm/ssr/react/prerender/util.js +91 -92
- package/dist/esm/ssr/react/withCallback/index.js +13 -14
- package/dist/esm/ssr/serverRender/helmet.js +34 -35
- package/dist/esm/ssr/serverRender/index.js +167 -160
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +58 -59
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -6
- package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +106 -93
- package/dist/esm/ssr/serverRender/renderToStream/index.js +157 -151
- package/dist/esm/ssr/serverRender/renderToStream/loadable.js +17 -18
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +117 -117
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +286 -279
- package/dist/esm/ssr/serverRender/renderToStream/styledComponent.js +8 -9
- package/dist/esm/ssr/serverRender/renderToStream/template.js +62 -51
- package/dist/esm/ssr/serverRender/renderToStream/type.js +1 -1
- package/dist/esm/ssr/serverRender/renderToString/entry.js +393 -383
- package/dist/esm/ssr/serverRender/renderToString/index.js +158 -152
- package/dist/esm/ssr/serverRender/renderToString/loadable.js +46 -47
- package/dist/esm/ssr/serverRender/renderToString/reduce.js +7 -8
- package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +6 -7
- package/dist/esm/ssr/serverRender/renderToString/template.js +142 -128
- package/dist/esm/ssr/serverRender/renderToString/type.js +6 -7
- package/dist/esm/ssr/serverRender/time.js +57 -46
- package/dist/esm/ssr/serverRender/time.worker.js +72 -61
- package/dist/esm/ssr/serverRender/utils.js +14 -15
- package/dist/esm/ssr/utils.js +128 -117
- package/dist/esm/state/cli/index.js +67 -67
- package/dist/esm/state/index.js +2 -3
- package/dist/esm/state/plugins.js +7 -8
- package/dist/esm/state/runtime/index.js +1 -2
- package/dist/esm/state/runtime/plugin.js +177 -166
- package/dist/esm/state/types.js +1 -1
- package/dist/esm-node/cli/index.js +11 -9
- package/dist/esm-node/common.js +3 -8
- package/dist/esm-node/config.js +1 -0
- package/dist/esm-node/core/appConfig.js +2 -6
- package/dist/esm-node/core/compatible.js +104 -120
- package/dist/esm-node/core/index.js +3 -13
- package/dist/esm-node/core/loader/index.js +1 -4
- package/dist/esm-node/core/loader/loaderManager.js +25 -25
- package/dist/esm-node/core/loader/useLoader.js +60 -74
- package/dist/esm-node/core/plugin.js +9 -15
- package/dist/esm-node/core/types.js +1 -0
- package/dist/esm-node/document/Body.js +11 -15
- package/dist/esm-node/document/Comment.js +10 -14
- package/dist/esm-node/document/DocumentContext.js +1 -4
- package/dist/esm-node/document/DocumentStructureContext.js +1 -4
- package/dist/esm-node/document/Head.js +14 -14
- package/dist/esm-node/document/Html.js +31 -34
- package/dist/esm-node/document/Links.js +5 -6
- package/dist/esm-node/document/Root.js +19 -21
- package/dist/esm-node/document/Script.js +10 -14
- package/dist/esm-node/document/Scripts.js +5 -6
- package/dist/esm-node/document/cli/index.js +136 -184
- package/dist/esm-node/document/constants.js +22 -52
- package/dist/esm-node/exports/head.js +1 -4
- package/dist/esm-node/exports/loadable.js +1 -4
- package/dist/esm-node/exports/server.js +1 -4
- package/dist/esm-node/exports/styled.js +1 -4
- package/dist/esm-node/index.js +2 -22
- package/dist/esm-node/router/cli/index.js +83 -98
- package/dist/esm-node/router/index.js +2 -6
- package/dist/esm-node/router/runtime/DefaultNotFound.js +11 -17
- package/dist/esm-node/router/runtime/DeferredDataScripts.js +1 -4
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +51 -85
- package/dist/esm-node/router/runtime/PrefetchLink.js +53 -59
- package/dist/esm-node/router/runtime/fetch.js +1 -3
- package/dist/esm-node/router/runtime/fetch.node.js +1 -3
- package/dist/esm-node/router/runtime/fetch.worker.js +1 -3
- package/dist/esm-node/router/runtime/hooks.js +1 -3
- package/dist/esm-node/router/runtime/index.js +10 -69
- package/dist/esm-node/router/runtime/plugin.js +27 -41
- package/dist/esm-node/router/runtime/plugin.node.js +24 -32
- package/dist/esm-node/router/runtime/types.js +1 -0
- package/dist/esm-node/router/runtime/utils.js +34 -50
- package/dist/esm-node/router/runtime/withRouter.js +8 -14
- package/dist/esm-node/runtimeContext.js +2 -6
- package/dist/esm-node/ssr/cli/babel-plugin-ssr-loader-id.js +99 -119
- package/dist/esm-node/ssr/cli/index.js +106 -125
- package/dist/esm-node/ssr/index.js +112 -96
- package/dist/esm-node/ssr/index.node.js +39 -39
- package/dist/esm-node/ssr/prefetch.js +40 -35
- package/dist/esm-node/ssr/react/index.js +2 -6
- package/dist/esm-node/ssr/react/nossr/index.js +2 -9
- package/dist/esm-node/ssr/react/prerender/index.js +32 -23
- package/dist/esm-node/ssr/react/prerender/type.js +1 -0
- package/dist/esm-node/ssr/react/prerender/util.js +23 -33
- package/dist/esm-node/ssr/react/withCallback/index.js +4 -5
- package/dist/esm-node/ssr/serverRender/helmet.js +2 -5
- package/dist/esm-node/ssr/serverRender/index.js +5 -10
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -9
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +3 -10
- package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +7 -17
- package/dist/esm-node/ssr/serverRender/renderToStream/index.js +2 -7
- package/dist/esm-node/ssr/serverRender/renderToStream/loadable.js +4 -8
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +21 -39
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +16 -31
- package/dist/esm-node/ssr/serverRender/renderToStream/styledComponent.js +1 -4
- package/dist/esm-node/ssr/serverRender/renderToStream/template.js +2 -8
- package/dist/esm-node/ssr/serverRender/renderToStream/type.js +1 -0
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +50 -39
- package/dist/esm-node/ssr/serverRender/renderToString/index.js +1 -8
- package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +8 -18
- package/dist/esm-node/ssr/serverRender/renderToString/reduce.js +1 -4
- package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +1 -4
- package/dist/esm-node/ssr/serverRender/renderToString/template.js +32 -18
- package/dist/esm-node/ssr/serverRender/renderToString/type.js +3 -6
- package/dist/esm-node/ssr/serverRender/time.js +1 -4
- package/dist/esm-node/ssr/serverRender/time.worker.js +5 -5
- package/dist/esm-node/ssr/serverRender/types.js +1 -3
- package/dist/esm-node/ssr/serverRender/utils.js +4 -10
- package/dist/esm-node/ssr/utils.js +8 -19
- package/dist/esm-node/state/cli/index.js +63 -78
- package/dist/esm-node/state/index.js +2 -6
- package/dist/esm-node/state/plugins.js +4 -10
- package/dist/esm-node/state/runtime/index.js +1 -4
- package/dist/esm-node/state/runtime/plugin.js +47 -44
- package/dist/esm-node/state/types.js +1 -0
- package/dist/types/router/runtime/index.d.ts +1 -1
- package/package.json +14 -10
- package/types/model.d.ts +1 -0
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
1
14
|
const VARIABLE_REG_EXP = /<!--<\?([-=+])\s*(.*?)\s*\?>-->/;
|
|
2
15
|
const VARIABLE_SPLITTER = /(<!--<\?.*?\?>-->)/;
|
|
3
16
|
const ENCODE_HTML_RULES = {
|
|
@@ -14,14 +27,27 @@ function encodeChar(c) {
|
|
|
14
27
|
function escape(str) {
|
|
15
28
|
return str.replace(MATCH_HTML, encodeChar);
|
|
16
29
|
}
|
|
17
|
-
|
|
30
|
+
export class Fragment {
|
|
31
|
+
getValue(data) {
|
|
32
|
+
if (this.isVariable) {
|
|
33
|
+
const value = this.path.reduce((p, n) => p != null ? p[n] : p, data);
|
|
34
|
+
return this.filters.reduce((p, n) => n(p), value != null ? value : "");
|
|
35
|
+
}
|
|
36
|
+
return this.content;
|
|
37
|
+
}
|
|
18
38
|
constructor(template) {
|
|
39
|
+
_define_property(this, "isVariable", void 0);
|
|
40
|
+
_define_property(this, "content", void 0);
|
|
41
|
+
_define_property(this, "filters", void 0);
|
|
42
|
+
_define_property(this, "path", void 0);
|
|
19
43
|
const match = VARIABLE_REG_EXP.exec(template);
|
|
20
44
|
if (match) {
|
|
21
45
|
const [, filterFlag, content] = match;
|
|
22
46
|
this.isVariable = true;
|
|
23
47
|
this.content = content;
|
|
24
|
-
this.filters = [
|
|
48
|
+
this.filters = [
|
|
49
|
+
Fragment.filterMap[filterFlag]
|
|
50
|
+
];
|
|
25
51
|
this.path = content.replace(/\[['"](.*?)['"]\]/g, ".$1").split(".");
|
|
26
52
|
} else {
|
|
27
53
|
this.isVariable = false;
|
|
@@ -30,21 +56,13 @@ const _Fragment = class {
|
|
|
30
56
|
this.path = [];
|
|
31
57
|
}
|
|
32
58
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const value = this.path.reduce((p, n) => p != null ? p[n] : p, data);
|
|
36
|
-
return this.filters.reduce((p, n) => n(p), value != null ? value : "");
|
|
37
|
-
}
|
|
38
|
-
return this.content;
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
let Fragment = _Fragment;
|
|
42
|
-
Fragment.filterMap = {
|
|
59
|
+
}
|
|
60
|
+
_define_property(Fragment, "filterMap", {
|
|
43
61
|
"=": escape,
|
|
44
62
|
"-": (v) => v
|
|
45
|
-
};
|
|
63
|
+
});
|
|
46
64
|
const fragmentListMap = {};
|
|
47
|
-
function toFragments(template, entryName) {
|
|
65
|
+
export function toFragments(template, entryName) {
|
|
48
66
|
if (fragmentListMap[entryName]) {
|
|
49
67
|
return fragmentListMap[entryName];
|
|
50
68
|
}
|
|
@@ -52,7 +70,3 @@ function toFragments(template, entryName) {
|
|
|
52
70
|
fragmentListMap[entryName] = fragmentList;
|
|
53
71
|
return fragmentList;
|
|
54
72
|
}
|
|
55
|
-
export {
|
|
56
|
-
Fragment,
|
|
57
|
-
toFragments
|
|
58
|
-
};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
var RenderLevel
|
|
1
|
+
export var RenderLevel;
|
|
2
|
+
(function(RenderLevel2) {
|
|
2
3
|
RenderLevel2[RenderLevel2["CLIENT_RENDER"] = 0] = "CLIENT_RENDER";
|
|
3
4
|
RenderLevel2[RenderLevel2["SERVER_PREFETCH"] = 1] = "SERVER_PREFETCH";
|
|
4
5
|
RenderLevel2[RenderLevel2["SERVER_RENDER"] = 2] = "SERVER_RENDER";
|
|
5
|
-
|
|
6
|
-
})(RenderLevel || {});
|
|
7
|
-
export {
|
|
8
|
-
RenderLevel
|
|
9
|
-
};
|
|
6
|
+
})(RenderLevel || (RenderLevel = {}));
|
|
@@ -2,12 +2,9 @@ const getLatency = (hrtime) => {
|
|
|
2
2
|
const [s, ns] = process.hrtime(hrtime);
|
|
3
3
|
return s * 1e3 + ns / 1e6;
|
|
4
4
|
};
|
|
5
|
-
const time = () => {
|
|
5
|
+
export const time = () => {
|
|
6
6
|
const hrtime = process.hrtime();
|
|
7
7
|
return () => {
|
|
8
8
|
return getLatency(hrtime);
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
|
-
export {
|
|
12
|
-
time
|
|
13
|
-
};
|
|
@@ -11,18 +11,18 @@ function processHrtime(previousTimestamp) {
|
|
|
11
11
|
nanoseconds += 1e9;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
return [
|
|
14
|
+
return [
|
|
15
|
+
seconds,
|
|
16
|
+
nanoseconds
|
|
17
|
+
];
|
|
15
18
|
}
|
|
16
19
|
const getLatency = (hrtime) => {
|
|
17
20
|
const [s, ns] = processHrtime(hrtime);
|
|
18
21
|
return s * 1e3 + ns / 1e6;
|
|
19
22
|
};
|
|
20
|
-
const time = () => {
|
|
23
|
+
export const time = () => {
|
|
21
24
|
const hrtime = processHrtime();
|
|
22
25
|
return () => {
|
|
23
26
|
return getLatency(hrtime);
|
|
24
27
|
};
|
|
25
28
|
};
|
|
26
|
-
export {
|
|
27
|
-
time
|
|
28
|
-
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const CSS_CHUNKS_PLACEHOLDER = "<!--<?- chunksMap.css ?>-->";
|
|
2
|
-
const SSR_DATA_JSON_ID = "__MODERN_SSR_DATA__";
|
|
3
|
-
const ROUTER_DATA_JSON_ID = "__MODERN_ROUTER_DATA__";
|
|
4
|
-
function getLoadableScripts(extractor) {
|
|
1
|
+
export const CSS_CHUNKS_PLACEHOLDER = "<!--<?- chunksMap.css ?>-->";
|
|
2
|
+
export const SSR_DATA_JSON_ID = "__MODERN_SSR_DATA__";
|
|
3
|
+
export const ROUTER_DATA_JSON_ID = "__MODERN_ROUTER_DATA__";
|
|
4
|
+
export function getLoadableScripts(extractor) {
|
|
5
5
|
const check = (scripts2) => (scripts2 || "").includes("__LOADABLE_REQUIRED_CHUNKS___ext");
|
|
6
6
|
const scripts = extractor.getScriptTags();
|
|
7
7
|
if (!check(scripts)) {
|
|
@@ -9,9 +9,3 @@ function getLoadableScripts(extractor) {
|
|
|
9
9
|
}
|
|
10
10
|
return scripts.split("</script>").slice(0, 2).map((i) => `${i}</script>`).join("");
|
|
11
11
|
}
|
|
12
|
-
export {
|
|
13
|
-
CSS_CHUNKS_PLACEHOLDER,
|
|
14
|
-
ROUTER_DATA_JSON_ID,
|
|
15
|
-
SSR_DATA_JSON_ID,
|
|
16
|
-
getLoadableScripts
|
|
17
|
-
};
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import cookieTool from "cookie";
|
|
2
|
-
const isReact18 = () => process.env.IS_REACT18 === "true";
|
|
3
|
-
const formatServer = (request) => {
|
|
4
|
-
const {
|
|
5
|
-
cookie = "",
|
|
6
|
-
"user-agent": userAgent = "",
|
|
7
|
-
referer
|
|
8
|
-
} = request.headers || {};
|
|
2
|
+
export const isReact18 = () => process.env.IS_REACT18 === "true";
|
|
3
|
+
export const formatServer = (request) => {
|
|
4
|
+
const { cookie = "", "user-agent": userAgent = "", referer } = request.headers || {};
|
|
9
5
|
return {
|
|
10
6
|
cookie,
|
|
11
7
|
cookieMap: cookieTool.parse(cookie || "") || {},
|
|
@@ -21,8 +17,8 @@ const getQuery = () => window.location.search.substring(1).split("&").reduce((re
|
|
|
21
17
|
}
|
|
22
18
|
return res;
|
|
23
19
|
}, {});
|
|
24
|
-
const formatClient = (request) => {
|
|
25
|
-
var
|
|
20
|
+
export const formatClient = (request) => {
|
|
21
|
+
var _request_headers;
|
|
26
22
|
return {
|
|
27
23
|
params: request.params || {},
|
|
28
24
|
host: request.host || location.host,
|
|
@@ -30,13 +26,13 @@ const formatClient = (request) => {
|
|
|
30
26
|
headers: request.headers || {},
|
|
31
27
|
cookieMap: cookieTool.parse(document.cookie || "") || {},
|
|
32
28
|
cookie: document.cookie || "",
|
|
33
|
-
userAgent: ((
|
|
29
|
+
userAgent: ((_request_headers = request.headers) === null || _request_headers === void 0 ? void 0 : _request_headers["user-agent"]) || navigator.userAgent,
|
|
34
30
|
referer: request.referer || document.referrer,
|
|
35
31
|
query: request.query || getQuery(),
|
|
36
32
|
url: location.href
|
|
37
33
|
};
|
|
38
34
|
};
|
|
39
|
-
const mockResponse = () => {
|
|
35
|
+
export const mockResponse = () => {
|
|
40
36
|
return {
|
|
41
37
|
setHeader() {
|
|
42
38
|
console.warn("response.setHeader() can only be used in the server side");
|
|
@@ -50,7 +46,7 @@ const mockResponse = () => {
|
|
|
50
46
|
}
|
|
51
47
|
};
|
|
52
48
|
};
|
|
53
|
-
const isCrossOrigin = (url = "", base) => {
|
|
49
|
+
export const isCrossOrigin = (url = "", base) => {
|
|
54
50
|
if (url.startsWith("/") || url.startsWith("./")) {
|
|
55
51
|
return false;
|
|
56
52
|
} else if (!url.includes(base)) {
|
|
@@ -59,10 +55,3 @@ const isCrossOrigin = (url = "", base) => {
|
|
|
59
55
|
return false;
|
|
60
56
|
}
|
|
61
57
|
};
|
|
62
|
-
export {
|
|
63
|
-
formatClient,
|
|
64
|
-
formatServer,
|
|
65
|
-
isCrossOrigin,
|
|
66
|
-
isReact18,
|
|
67
|
-
mockResponse
|
|
68
|
-
};
|
|
@@ -1,83 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getEntryOptions,
|
|
3
|
-
createRuntimeExportsUtils,
|
|
4
|
-
PLUGIN_SCHEMAS
|
|
5
|
-
} from "@modern-js/utils";
|
|
1
|
+
import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS } from "@modern-js/utils";
|
|
6
2
|
const PLUGIN_IDENTIFIER = "state";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
3
|
+
export default () => {
|
|
4
|
+
return {
|
|
5
|
+
name: "@modern-js/plugin-state",
|
|
6
|
+
required: [
|
|
7
|
+
"@modern-js/runtime"
|
|
8
|
+
],
|
|
9
|
+
setup: (api) => {
|
|
10
|
+
const stateConfigMap = /* @__PURE__ */ new Map();
|
|
11
|
+
let pluginsExportsUtils;
|
|
12
|
+
return {
|
|
13
|
+
config() {
|
|
14
|
+
const appContext = api.useAppContext();
|
|
15
|
+
pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "plugins");
|
|
16
|
+
return {
|
|
17
|
+
source: {
|
|
18
|
+
alias: {
|
|
19
|
+
"@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
|
|
20
|
+
}
|
|
24
21
|
}
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
modifyEntryImports({ entrypoint, imports }) {
|
|
25
|
+
var _getEntryOptions;
|
|
26
|
+
const { entryName } = entrypoint;
|
|
27
|
+
const userConfig = api.useResolvedConfigContext();
|
|
28
|
+
const { packageName } = api.useAppContext();
|
|
29
|
+
const stateConfig = (_getEntryOptions = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
|
|
30
|
+
stateConfigMap.set(entryName, stateConfig);
|
|
31
|
+
if (stateConfig) {
|
|
32
|
+
imports.push({
|
|
33
|
+
value: "@modern-js/runtime/plugins",
|
|
34
|
+
specifiers: [
|
|
35
|
+
{
|
|
36
|
+
imported: PLUGIN_IDENTIFIER
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
});
|
|
25
40
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
return {
|
|
51
|
-
entrypoint,
|
|
52
|
-
imports
|
|
53
|
-
};
|
|
54
|
-
},
|
|
55
|
-
modifyEntryRuntimePlugins({ entrypoint, plugins }) {
|
|
56
|
-
const stateOptions = stateConfigMap.get(entrypoint.entryName);
|
|
57
|
-
if (stateOptions) {
|
|
58
|
-
plugins.push({
|
|
59
|
-
name: PLUGIN_IDENTIFIER,
|
|
60
|
-
options: `${JSON.stringify(
|
|
61
|
-
stateConfigMap.get(entrypoint.entryName)
|
|
62
|
-
)}`
|
|
63
|
-
});
|
|
41
|
+
return {
|
|
42
|
+
entrypoint,
|
|
43
|
+
imports
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
modifyEntryRuntimePlugins({ entrypoint, plugins }) {
|
|
47
|
+
const stateOptions = stateConfigMap.get(entrypoint.entryName);
|
|
48
|
+
if (stateOptions) {
|
|
49
|
+
plugins.push({
|
|
50
|
+
name: PLUGIN_IDENTIFIER,
|
|
51
|
+
options: `${JSON.stringify(stateConfigMap.get(entrypoint.entryName))}`
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
entrypoint,
|
|
56
|
+
plugins
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
validateSchema() {
|
|
60
|
+
return PLUGIN_SCHEMAS["@modern-js/plugin-state"];
|
|
61
|
+
},
|
|
62
|
+
addRuntimeExports() {
|
|
63
|
+
pluginsExportsUtils.addExport(`export { default as state } from '@modern-js/runtime/model'`);
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
};
|
|
69
|
-
},
|
|
70
|
-
validateSchema() {
|
|
71
|
-
return PLUGIN_SCHEMAS["@modern-js/plugin-state"];
|
|
72
|
-
},
|
|
73
|
-
addRuntimeExports() {
|
|
74
|
-
pluginsExportsUtils.addExport(
|
|
75
|
-
`export { default as state } from '@modern-js/runtime/model'`
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
export {
|
|
82
|
-
cli_default as default
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
};
|
|
83
68
|
};
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export { default as state } from "./runtime";
|
|
2
|
+
export { default } from "./runtime";
|
|
3
3
|
export * from "./runtime";
|
|
4
|
-
export {
|
|
5
|
-
default3 as default,
|
|
6
|
-
default2 as state
|
|
7
|
-
};
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { plugin as effectsPlugin } from "@modern-js-reduck/plugin-effects";
|
|
2
2
|
import autoActionsPlugin from "@modern-js-reduck/plugin-auto-actions";
|
|
3
3
|
import immerPlugin from "@modern-js-reduck/plugin-immutable";
|
|
4
|
-
|
|
5
|
-
const effects = () => effectsPlugin;
|
|
6
|
-
const immer = () => immerPlugin;
|
|
7
|
-
const autoActions = () => autoActionsPlugin;
|
|
8
|
-
export {
|
|
9
|
-
autoActions,
|
|
10
|
-
default2 as devtools,
|
|
11
|
-
effects,
|
|
12
|
-
immer
|
|
13
|
-
};
|
|
4
|
+
export { default as devtools } from "@modern-js-reduck/plugin-devtools";
|
|
5
|
+
export const effects = () => effectsPlugin;
|
|
6
|
+
export const immer = () => immerPlugin;
|
|
7
|
+
export const autoActions = () => autoActionsPlugin;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useContext } from "react";
|
|
3
|
-
import {
|
|
4
|
-
createStore
|
|
5
|
-
} from "@modern-js-reduck/store";
|
|
3
|
+
import { createStore } from "@modern-js-reduck/store";
|
|
6
4
|
import { Provider } from "@modern-js-reduck/react";
|
|
7
5
|
import hoistNonReactStatics from "hoist-non-react-statics";
|
|
8
6
|
import { immer, effects, autoActions, devtools } from "../plugins";
|
|
@@ -22,9 +20,7 @@ const getStoreConfig = (config) => {
|
|
|
22
20
|
"devtools"
|
|
23
21
|
];
|
|
24
22
|
const plugins = [];
|
|
25
|
-
internalPlugins.filter((plugin) => config[plugin] !== false).forEach(
|
|
26
|
-
(plugin) => plugins.push(StatePluginHandleMap[plugin](config[plugin]))
|
|
27
|
-
);
|
|
23
|
+
internalPlugins.filter((plugin) => config[plugin] !== false).forEach((plugin) => plugins.push(StatePluginHandleMap[plugin](config[plugin])));
|
|
28
24
|
const storeConfig = {};
|
|
29
25
|
for (const [key, value] of Object.entries(config)) {
|
|
30
26
|
if (!internalPlugins.includes(key)) {
|
|
@@ -34,42 +30,49 @@ const getStoreConfig = (config) => {
|
|
|
34
30
|
storeConfig.plugins = plugins;
|
|
35
31
|
return storeConfig;
|
|
36
32
|
};
|
|
37
|
-
const state = (config) =>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
pickedContext: {
|
|
63
|
-
...pickedContext,
|
|
64
|
-
store: context.store
|
|
33
|
+
const state = (config) => {
|
|
34
|
+
return {
|
|
35
|
+
name: "@modern-js/plugin-state",
|
|
36
|
+
setup: () => {
|
|
37
|
+
const storeConfig = getStoreConfig(config);
|
|
38
|
+
return {
|
|
39
|
+
hoc({ App }, next) {
|
|
40
|
+
const getStateApp = (props) => {
|
|
41
|
+
const context = useContext(RuntimeReactContext);
|
|
42
|
+
return /* @__PURE__ */ _jsx(Provider, {
|
|
43
|
+
store: context.store,
|
|
44
|
+
config: storeConfig,
|
|
45
|
+
children: /* @__PURE__ */ _jsx(App, {
|
|
46
|
+
...props
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
return next({
|
|
51
|
+
App: hoistNonReactStatics(getStateApp, App)
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
init({ context }, next) {
|
|
55
|
+
if (isBrowser()) {
|
|
56
|
+
var _window__SSR_DATA, _window__SSR_DATA_data;
|
|
57
|
+
storeConfig.initialState = storeConfig.initialState || (window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_data = _window__SSR_DATA.data) === null || _window__SSR_DATA_data === void 0 ? void 0 : _window__SSR_DATA_data.storeState) || {};
|
|
65
58
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
59
|
+
context.store = createStore(storeConfig);
|
|
60
|
+
return next({
|
|
61
|
+
context
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
pickContext({ context, pickedContext }, next) {
|
|
65
|
+
return next({
|
|
66
|
+
context,
|
|
67
|
+
pickedContext: {
|
|
68
|
+
...pickedContext,
|
|
69
|
+
store: context.store
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
};
|
|
75
76
|
};
|
|
77
|
+
export default state;
|
|
78
|
+
export * from "../plugins";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -9,5 +9,5 @@ export { Link, NavLink } from './PrefetchLink';
|
|
|
9
9
|
export type { LinkProps, NavLinkProps } from './PrefetchLink';
|
|
10
10
|
export declare const useRouteLoaderData: typeof useRouteData;
|
|
11
11
|
export type { FormEncType, FormMethod, GetScrollRestorationKeyFunction, ParamKeyValuePair, SubmitOptions, URLSearchParamsInit, FetcherWithComponents, BrowserRouterProps, HashRouterProps, HistoryRouterProps, FormProps, ScrollRestorationProps, SubmitFunction, ActionFunction, ActionFunctionArgs, AwaitProps, unstable_Blocker, unstable_BlockerFunction, DataRouteMatch, DataRouteObject, Fetcher, Hash, IndexRouteObject, IndexRouteProps, JsonFunction, LayoutRouteProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, Params, ParamParseKey, Path, PathMatch, Pathname, PathPattern, PathRouteProps, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, Search, ShouldRevalidateFunction, To } from 'react-router-dom';
|
|
12
|
-
export { createBrowserRouter, createHashRouter, createMemoryRouter, RouterProvider, BrowserRouter, HashRouter, MemoryRouter, Router, Await, Form, Navigate, Outlet, Route, Routes, ScrollRestoration, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRoutes, useSearchParams, useSubmit, createRoutesFromChildren, createRoutesFromElements, createSearchParams, generatePath, isRouteErrorResponse, matchPath, matchRoutes, renderMatches, resolvePath, createPath } from 'react-router-dom';
|
|
12
|
+
export { createBrowserRouter, createHashRouter, createMemoryRouter, RouterProvider, BrowserRouter, HashRouter, MemoryRouter, Router, Await, Form, Navigate, Outlet, Route, Routes, ScrollRestoration, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRoutes, useSearchParams, useSubmit, createRoutesFromChildren, createRoutesFromElements, createSearchParams, generatePath, isRouteErrorResponse, matchPath, matchRoutes, renderMatches, resolvePath, createPath, unstable_useBlocker, unstable_usePrompt } from 'react-router-dom';
|
|
13
13
|
export { defer, json, redirect } from '@modern-js/utils/universal/remix-router';
|
package/package.json
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
"description": "A Progressive React Framework for modern web development.",
|
|
4
4
|
"homepage": "https://modernjs.dev",
|
|
5
5
|
"bugs": "https://github.com/web-infra-dev/modern.js/issues",
|
|
6
|
-
"repository":
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/web-infra-dev/modern.js",
|
|
9
|
+
"directory": "packages/runtime/plugin-runtime"
|
|
10
|
+
},
|
|
7
11
|
"license": "MIT",
|
|
8
12
|
"keywords": [
|
|
9
13
|
"react",
|
|
@@ -11,7 +15,7 @@
|
|
|
11
15
|
"modern",
|
|
12
16
|
"modern.js"
|
|
13
17
|
],
|
|
14
|
-
"version": "2.
|
|
18
|
+
"version": "2.16.1-alpha.0",
|
|
15
19
|
"engines": {
|
|
16
20
|
"node": ">=14.17.6"
|
|
17
21
|
},
|
|
@@ -158,9 +162,9 @@
|
|
|
158
162
|
"react-side-effect": "^2.1.1",
|
|
159
163
|
"redux-logger": "^3.0.6",
|
|
160
164
|
"styled-components": "^5.3.1",
|
|
161
|
-
"@modern-js/plugin": "2.
|
|
162
|
-
"@modern-js/types": "2.
|
|
163
|
-
"@modern-js/utils": "2.
|
|
165
|
+
"@modern-js/plugin": "2.16.0",
|
|
166
|
+
"@modern-js/types": "2.16.0",
|
|
167
|
+
"@modern-js/utils": "2.16.0"
|
|
164
168
|
},
|
|
165
169
|
"peerDependencies": {
|
|
166
170
|
"react": ">=17",
|
|
@@ -180,11 +184,11 @@
|
|
|
180
184
|
"react-dom": "^18",
|
|
181
185
|
"ts-jest": "^29.0.5",
|
|
182
186
|
"typescript": "^4",
|
|
183
|
-
"@modern-js/app-tools": "2.
|
|
184
|
-
"@
|
|
185
|
-
"@modern-js/
|
|
186
|
-
"@
|
|
187
|
-
"@scripts/jest-config": "2.
|
|
187
|
+
"@modern-js/app-tools": "2.16.0",
|
|
188
|
+
"@scripts/build": "2.16.0",
|
|
189
|
+
"@modern-js/core": "2.16.0",
|
|
190
|
+
"@modern-js/server-core": "2.16.0",
|
|
191
|
+
"@scripts/jest-config": "2.16.0"
|
|
188
192
|
},
|
|
189
193
|
"sideEffects": false,
|
|
190
194
|
"modernConfig": {},
|