@modern-js/runtime 2.5.0-alpha.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/cli/index.js +9 -0
  3. package/dist/cjs/common.js +0 -6
  4. package/dist/cjs/core/app-config.js +5 -1
  5. package/dist/cjs/core/compatible.js +8 -7
  6. package/dist/cjs/core/loader/index.js +4 -0
  7. package/dist/cjs/core/loader/loaderManager.js +6 -0
  8. package/dist/cjs/core/loader/useLoader.js +4 -0
  9. package/dist/cjs/document/Body.js +6 -8
  10. package/dist/cjs/document/DocumentContext.js +4 -0
  11. package/dist/cjs/document/DocumentStructureContext.js +4 -0
  12. package/dist/cjs/document/Head.js +7 -11
  13. package/dist/cjs/document/Html.js +24 -22
  14. package/dist/cjs/document/Links.js +1 -3
  15. package/dist/cjs/document/Root.js +8 -14
  16. package/dist/cjs/document/Script.js +5 -7
  17. package/dist/cjs/document/Scripts.js +1 -3
  18. package/dist/cjs/document/cli/index.js +7 -1
  19. package/dist/cjs/exports/head.js +4 -0
  20. package/dist/cjs/exports/loadable.js +4 -0
  21. package/dist/cjs/exports/styled.js +4 -0
  22. package/dist/cjs/router/cli/index.js +3 -7
  23. package/dist/cjs/router/index.js +4 -0
  24. package/dist/cjs/router/runtime/DefaultNotFound.js +13 -10
  25. package/dist/cjs/router/runtime/index.js +3 -52
  26. package/dist/cjs/router/runtime/plugin.js +6 -14
  27. package/dist/cjs/router/runtime/plugin.node.js +54 -10
  28. package/dist/cjs/router/runtime/utils.js +80 -28
  29. package/dist/cjs/router/runtime/withRouter.js +9 -6
  30. package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +4 -0
  31. package/dist/cjs/ssr/cli/index.js +4 -0
  32. package/dist/cjs/ssr/index.js +10 -24
  33. package/dist/cjs/ssr/index.node.js +4 -0
  34. package/dist/cjs/ssr/prefetch.js +3 -6
  35. package/dist/cjs/ssr/react/nossr/index.js +4 -0
  36. package/dist/cjs/ssr/react/prerender/index.js +4 -0
  37. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +19 -5
  38. package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +5 -0
  39. package/dist/cjs/ssr/serverRender/renderToStream/index.js +4 -0
  40. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +7 -22
  41. package/dist/cjs/ssr/serverRender/renderToStream/template.js +1 -2
  42. package/dist/cjs/ssr/serverRender/renderToString/entry.js +14 -12
  43. package/dist/cjs/ssr/serverRender/renderToString/index.js +4 -0
  44. package/dist/cjs/ssr/serverRender/renderToString/loadable.js +1 -1
  45. package/dist/cjs/ssr/serverRender/time.worker.js +1 -1
  46. package/dist/cjs/ssr/serverRender/utils.js +1 -1
  47. package/dist/cjs/ssr/utils.js +16 -4
  48. package/dist/cjs/state/index.js +4 -0
  49. package/dist/cjs/state/plugins.js +4 -0
  50. package/dist/cjs/state/runtime/index.js +4 -0
  51. package/dist/cjs/state/runtime/plugin.js +5 -7
  52. package/dist/esm/cli/index.js +5 -1
  53. package/dist/esm/common.js +1 -3
  54. package/dist/esm/core/app-config.js +3 -1
  55. package/dist/esm/core/compatible.js +3 -1
  56. package/dist/esm/core/loader/loaderManager.js +3 -1
  57. package/dist/esm/document/cli/index.js +3 -1
  58. package/dist/esm/router/cli/index.js +1 -5
  59. package/dist/esm/router/runtime/index.js +2 -3
  60. package/dist/esm/router/runtime/plugin.js +2 -5
  61. package/dist/esm/router/runtime/plugin.node.js +65 -8
  62. package/dist/esm/router/runtime/utils.js +106 -5
  63. package/dist/esm/ssr/prefetch.js +1 -0
  64. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +39 -8
  65. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
  66. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +8 -19
  67. package/dist/esm/ssr/serverRender/renderToStream/template.js +1 -2
  68. package/dist/esm/ssr/serverRender/renderToString/entry.js +29 -16
  69. package/dist/esm/ssr/serverRender/time.worker.js +1 -1
  70. package/dist/esm/ssr/utils.js +6 -4
  71. package/dist/esm-node/cli/index.js +5 -0
  72. package/dist/esm-node/common.js +0 -4
  73. package/dist/esm-node/core/app-config.js +5 -1
  74. package/dist/esm-node/core/compatible.js +4 -7
  75. package/dist/esm-node/core/loader/loaderManager.js +2 -0
  76. package/dist/esm-node/document/Body.js +6 -8
  77. package/dist/esm-node/document/Head.js +7 -11
  78. package/dist/esm-node/document/Html.js +24 -22
  79. package/dist/esm-node/document/Links.js +1 -3
  80. package/dist/esm-node/document/Root.js +8 -14
  81. package/dist/esm-node/document/Script.js +5 -7
  82. package/dist/esm-node/document/Scripts.js +1 -3
  83. package/dist/esm-node/document/cli/index.js +3 -1
  84. package/dist/esm-node/router/cli/index.js +2 -5
  85. package/dist/esm-node/router/runtime/DefaultNotFound.js +13 -10
  86. package/dist/esm-node/router/runtime/index.js +2 -51
  87. package/dist/esm-node/router/runtime/plugin.js +2 -14
  88. package/dist/esm-node/router/runtime/plugin.node.js +53 -10
  89. package/dist/esm-node/router/runtime/utils.js +80 -22
  90. package/dist/esm-node/router/runtime/withRouter.js +9 -6
  91. package/dist/esm-node/ssr/index.js +6 -24
  92. package/dist/esm-node/ssr/prefetch.js +3 -6
  93. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +9 -5
  94. package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
  95. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +7 -22
  96. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +1 -2
  97. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +10 -12
  98. package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +1 -1
  99. package/dist/esm-node/ssr/serverRender/time.worker.js +1 -1
  100. package/dist/esm-node/ssr/serverRender/utils.js +1 -1
  101. package/dist/esm-node/ssr/utils.js +6 -4
  102. package/dist/esm-node/state/runtime/plugin.js +1 -7
  103. package/dist/types/common.d.ts +1 -3
  104. package/dist/types/core/index.d.ts +0 -1
  105. package/dist/types/core/loader/index.d.ts +2 -1
  106. package/dist/types/core/loader/useLoader.d.ts +15 -1
  107. package/dist/types/router/runtime/index.d.ts +2 -4
  108. package/dist/types/runtime-context.d.ts +0 -2
  109. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +0 -2
  110. package/dist/types/ssr/serverRender/renderToString/type.d.ts +1 -0
  111. package/package.json +17 -12
  112. package/dist/cjs/core/types.js +0 -15
  113. package/dist/cjs/router/index.node.js +0 -31
  114. package/dist/cjs/router/runtime/DeferredDataScripts.js +0 -148
  115. package/dist/cjs/ssr/prefetch.worker.js +0 -67
  116. package/dist/cjs/ssr/serverRender/renderToStream/index.worker.js +0 -64
  117. package/dist/cjs/ssr/serverRender/renderToString/index.worker.js +0 -58
  118. package/dist/esm/core/types.js +0 -1
  119. package/dist/esm/router/index.node.js +0 -4
  120. package/dist/esm/router/runtime/DeferredDataScripts.js +0 -158
  121. package/dist/esm/ssr/prefetch.worker.js +0 -191
  122. package/dist/esm/ssr/serverRender/renderToStream/index.worker.js +0 -32
  123. package/dist/esm/ssr/serverRender/renderToString/index.worker.js +0 -167
  124. package/dist/esm-node/core/types.js +0 -0
  125. package/dist/esm-node/router/index.node.js +0 -7
  126. package/dist/esm-node/router/runtime/DeferredDataScripts.js +0 -131
  127. package/dist/esm-node/ssr/prefetch.worker.js +0 -46
  128. package/dist/esm-node/ssr/serverRender/renderToStream/index.worker.js +0 -35
  129. package/dist/esm-node/ssr/serverRender/renderToString/index.worker.js +0 -29
  130. package/dist/types/core/types.d.ts +0 -21
  131. package/dist/types/router/index.node.d.ts +0 -3
  132. package/dist/types/router/runtime/DeferredDataScripts.d.ts +0 -8
  133. package/dist/types/ssr/prefetch.worker.d.ts +0 -13
  134. package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +0 -6
  135. package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +0 -6
@@ -1,158 +0,0 @@
1
- function _arrayLikeToArray(arr, len) {
2
- if (len == null || len > arr.length) len = arr.length;
3
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
- return arr2;
5
- }
6
- function _arrayWithHoles(arr) {
7
- if (Array.isArray(arr)) return arr;
8
- }
9
- function _iterableToArrayLimit(arr, i) {
10
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
- if (_i == null) return;
12
- var _arr = [];
13
- var _n = true;
14
- var _d = false;
15
- var _s, _e;
16
- try {
17
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
18
- _arr.push(_s.value);
19
- if (i && _arr.length === i) break;
20
- }
21
- } catch (err) {
22
- _d = true;
23
- _e = err;
24
- } finally{
25
- try {
26
- if (!_n && _i["return"] != null) _i["return"]();
27
- } finally{
28
- if (_d) throw _e;
29
- }
30
- }
31
- return _arr;
32
- }
33
- function _nonIterableRest() {
34
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
- }
36
- function _slicedToArray(arr, i) {
37
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
38
- }
39
- function _unsupportedIterableToArray(o, minLen) {
40
- if (!o) return;
41
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
42
- var n = Object.prototype.toString.call(o).slice(8, -1);
43
- if (n === "Object" && o.constructor) n = o.constructor.name;
44
- if (n === "Map" || n === "Set") return Array.from(n);
45
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
46
- }
47
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
48
- import { Suspense, useEffect, useRef, useMemo, useContext } from "react";
49
- import { Await, UNSAFE_DataRouterContext as DataRouterContext, useAsyncError } from "react-router-dom";
50
- import { serializeJson } from "@modern-js/utils/serialize";
51
- import { JSX_SHELL_STREAM_END_MARK } from "../../common";
52
- var setupFnStr = "function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};";
53
- var resolveFnStr = "function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};";
54
- var preResolvedFnStr = "function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resovle(e)};";
55
- var DeferredDataScripts = function() {
56
- var context = useContext(DataRouterContext);
57
- var staticContext = (context || {}).staticContext;
58
- var hydratedRef = useRef(false);
59
- useEffect(function() {
60
- hydratedRef.current = true;
61
- }, []);
62
- var deferredScripts = useMemo(function() {
63
- var activeDeferreds = (staticContext === null || staticContext === void 0 ? void 0 : staticContext.activeDeferreds) || [];
64
- var _ROUTER_DATA = {
65
- loaderData: staticContext === null || staticContext === void 0 ? void 0 : staticContext.loaderData
66
- };
67
- var initialScripts = [
68
- "_ROUTER_DATA = ".concat(serializeJson(_ROUTER_DATA), ";"),
69
- "_ROUTER_DATA.s = ".concat(setupFnStr),
70
- "_ROUTER_DATA.r = ".concat(resolveFnStr),
71
- "_ROUTER_DATA.p = ".concat(preResolvedFnStr)
72
- ].join("\n");
73
- var deferredDataScripts = [];
74
- initialScripts += Object.entries(activeDeferreds).map(function(param) {
75
- var _param = _slicedToArray(param, 2), routeId = _param[0], deferredData = _param[1];
76
- var pendingKeys = new Set(deferredData.pendingKeys);
77
- var deferredKeys = deferredData.deferredKeys;
78
- var deferredKeyPromiseStr = deferredKeys.map(function(key) {
79
- if (pendingKeys.has(key)) {
80
- deferredDataScripts.push(/* @__PURE__ */ jsx(DeferredDataScript, {
81
- data: deferredData.data[key],
82
- dataKey: key,
83
- routeId: routeId
84
- }, "".concat(routeId, " | ").concat(key)));
85
- return "".concat(JSON.stringify(key), ": _ROUTER_DATA.s(").concat(JSON.stringify(routeId), ",").concat(JSON.stringify(key), ") ");
86
- } else {
87
- var trackedPromise = deferredData.data[key];
88
- if (typeof trackedPromise._error !== "undefined") {
89
- var error = {
90
- message: trackedPromise._error.message,
91
- stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
92
- };
93
- return "".concat(JSON.stringify(key), ": _ROUTER_DATA.p(").concat(void 0, ", ").concat(serializeJson(error), ")");
94
- } else {
95
- if (typeof trackedPromise._data === "undefined") {
96
- throw new Error("The deferred data for ".concat(key, " was not resolved, did you forget to return data from a deferred promise"));
97
- }
98
- return "".concat(JSON.stringify(key), ": _ROUTER_DATA.p(").concat(serializeJson(trackedPromise._data), ")");
99
- }
100
- }
101
- }).join(",\n");
102
- return "Object.assign(_ROUTER_DATA.loaderData[".concat(JSON.stringify(routeId), "], {").concat(deferredKeyPromiseStr, "});");
103
- }).join("\n");
104
- return [
105
- initialScripts,
106
- deferredDataScripts
107
- ];
108
- }, []);
109
- return /* @__PURE__ */ jsxs(Fragment, {
110
- children: [
111
- !hydratedRef.current && /* @__PURE__ */ jsx("script", {
112
- async: true,
113
- suppressHydrationWarning: true,
114
- dangerouslySetInnerHTML: {
115
- __html: deferredScripts[0]
116
- }
117
- }),
118
- !hydratedRef.current && deferredScripts[1],
119
- JSX_SHELL_STREAM_END_MARK
120
- ]
121
- });
122
- };
123
- var DeferredDataScript = function(param) {
124
- var data = param.data, routeId = param.routeId, dataKey = param.dataKey;
125
- return /* @__PURE__ */ jsx(Suspense, {
126
- children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ jsx(Await, {
127
- resolve: data,
128
- errorElement: /* @__PURE__ */ jsx(ErrorDeferredDataScript, {
129
- routeId: routeId,
130
- dataKey: dataKey
131
- }),
132
- children: function(data2) {
133
- return /* @__PURE__ */ jsx("script", {
134
- async: true,
135
- suppressHydrationWarning: true,
136
- dangerouslySetInnerHTML: {
137
- __html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(serializeJson(data2), ");")
138
- }
139
- });
140
- }
141
- }) : null
142
- });
143
- };
144
- var ErrorDeferredDataScript = function(param) {
145
- var routeId = param.routeId, dataKey = param.dataKey;
146
- var error = useAsyncError();
147
- return /* @__PURE__ */ jsx("script", {
148
- suppressHydrationWarning: true,
149
- dangerouslySetInnerHTML: {
150
- __html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(void 0, ", ").concat(serializeJson({
151
- message: error.message,
152
- stack: error.stack
153
- }), ");")
154
- }
155
- });
156
- };
157
- var DeferredDataScripts_default = DeferredDataScripts;
158
- export { DeferredDataScripts_default as default };
@@ -1,191 +0,0 @@
1
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
- try {
3
- var info = gen[key](arg);
4
- var value = info.value;
5
- } catch (error) {
6
- reject(error);
7
- return;
8
- }
9
- if (info.done) {
10
- resolve(value);
11
- } else {
12
- Promise.resolve(value).then(_next, _throw);
13
- }
14
- }
15
- function _asyncToGenerator(fn) {
16
- return function() {
17
- var self = this, args = arguments;
18
- return new Promise(function(resolve, reject) {
19
- var gen = fn.apply(self, args);
20
- function _next(value) {
21
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
- }
23
- function _throw(err) {
24
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
- }
26
- _next(undefined);
27
- });
28
- };
29
- }
30
- var __generator = this && this.__generator || function(thisArg, body) {
31
- var f, y, t, g, _ = {
32
- label: 0,
33
- sent: function() {
34
- if (t[0] & 1) throw t[1];
35
- return t[1];
36
- },
37
- trys: [],
38
- ops: []
39
- };
40
- return(g = {
41
- next: verb(0),
42
- "throw": verb(1),
43
- "return": verb(2)
44
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
45
- return this;
46
- }), g);
47
- function verb(n) {
48
- return function(v) {
49
- return step([
50
- n,
51
- v
52
- ]);
53
- };
54
- }
55
- function step(op) {
56
- if (f) throw new TypeError("Generator is already executing.");
57
- while(_)try {
58
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
59
- if (y = 0, t) op = [
60
- op[0] & 2,
61
- t.value
62
- ];
63
- switch(op[0]){
64
- case 0:
65
- case 1:
66
- t = op;
67
- break;
68
- case 4:
69
- _.label++;
70
- return {
71
- value: op[1],
72
- done: false
73
- };
74
- case 5:
75
- _.label++;
76
- y = op[1];
77
- op = [
78
- 0
79
- ];
80
- continue;
81
- case 7:
82
- op = _.ops.pop();
83
- _.trys.pop();
84
- continue;
85
- default:
86
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
87
- _ = 0;
88
- continue;
89
- }
90
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
91
- _.label = op[1];
92
- break;
93
- }
94
- if (op[0] === 6 && _.label < t[1]) {
95
- _.label = t[1];
96
- t = op;
97
- break;
98
- }
99
- if (t && _.label < t[2]) {
100
- _.label = t[2];
101
- _.ops.push(op);
102
- break;
103
- }
104
- if (t[2]) _.ops.pop();
105
- _.trys.pop();
106
- continue;
107
- }
108
- op = body.call(thisArg, _);
109
- } catch (e) {
110
- op = [
111
- 6,
112
- e
113
- ];
114
- y = 0;
115
- } finally{
116
- f = t = 0;
117
- }
118
- if (op[0] & 5) throw op[1];
119
- return {
120
- value: op[0] ? op[1] : void 0,
121
- done: true
122
- };
123
- }
124
- };
125
- import { jsx } from "react/jsx-runtime";
126
- import { renderToStaticMarkup } from "react-dom/server";
127
- import { ChunkExtractor } from "@loadable/server";
128
- var prefetch = function() {
129
- var _ref = _asyncToGenerator(function(App, context) {
130
- var _context_store, ssrContext, loadableStats, extractor, loadersData;
131
- return __generator(this, function(_state) {
132
- switch(_state.label){
133
- case 0:
134
- ssrContext = context.ssrContext;
135
- loadableStats = ssrContext.loadableStats;
136
- if (loadableStats) {
137
- extractor = new ChunkExtractor({
138
- stats: loadableStats,
139
- entrypoints: [
140
- ssrContext.entryName
141
- ].filter(Boolean)
142
- });
143
- renderToStaticMarkup(extractor.collectChunks(/* @__PURE__ */ jsx(App, {
144
- context: context
145
- })));
146
- } else {
147
- renderToStaticMarkup(/* @__PURE__ */ jsx(App, {
148
- context: context
149
- }));
150
- }
151
- if (!context.loaderManager.hasPendingLoaders()) {
152
- return [
153
- 2,
154
- {
155
- initialData: context.initialData,
156
- i18nData: context.__i18nData__
157
- }
158
- ];
159
- }
160
- return [
161
- 4,
162
- context.loaderManager.awaitPendingLoaders()
163
- ];
164
- case 1:
165
- loadersData = _state.sent();
166
- Object.keys(loadersData).forEach(function(id) {
167
- var data = loadersData[id];
168
- if (data._error) {
169
- ssrContext.logger.error("App Prefetch Loader", data._error);
170
- ssrContext.metrics.emitCounter("app.prefetch.loader.error", 1);
171
- delete data._error;
172
- }
173
- });
174
- return [
175
- 2,
176
- {
177
- loadersData: loadersData,
178
- initialData: context.initialData,
179
- i18nData: context.__i18nData__,
180
- storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
181
- }
182
- ];
183
- }
184
- });
185
- });
186
- return function prefetch(App, context) {
187
- return _ref.apply(this, arguments);
188
- };
189
- }();
190
- var prefetch_worker_default = prefetch;
191
- export { prefetch_worker_default as default };
@@ -1,32 +0,0 @@
1
- import { createElement } from "react";
2
- import { PreRender } from "../../react/prerender";
3
- import { time } from "../time";
4
- import renderToPipe from "./renderToPipe";
5
- var render = function(param) {
6
- var App = param.App, context = param.context;
7
- var ssrContext = context.ssrContext;
8
- if (!ssrContext) {
9
- throw new Error('The "ssrContext" must not be undefined, but received undefined');
10
- }
11
- var end = time();
12
- var rootElement = createElement(App, {
13
- context: Object.assign(context || {}, {
14
- ssr: true
15
- })
16
- });
17
- var pipe = renderToPipe(rootElement, context, {
18
- onShellReady: function onShellReady() {
19
- var cacheConfig = PreRender.config();
20
- if (cacheConfig) {
21
- ssrContext.cacheConfig = cacheConfig;
22
- }
23
- },
24
- onAllReady: function onAllReady() {
25
- var cost = end();
26
- ssrContext.logger.debug("App Render To HTML cost = %d ms", cost);
27
- ssrContext.metrics.emitTimer("app.render.html.cost", cost);
28
- }
29
- });
30
- return pipe;
31
- };
32
- export { render };
@@ -1,167 +0,0 @@
1
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
- try {
3
- var info = gen[key](arg);
4
- var value = info.value;
5
- } catch (error) {
6
- reject(error);
7
- return;
8
- }
9
- if (info.done) {
10
- resolve(value);
11
- } else {
12
- Promise.resolve(value).then(_next, _throw);
13
- }
14
- }
15
- function _asyncToGenerator(fn) {
16
- return function() {
17
- var self = this, args = arguments;
18
- return new Promise(function(resolve, reject) {
19
- var gen = fn.apply(self, args);
20
- function _next(value) {
21
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
- }
23
- function _throw(err) {
24
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
- }
26
- _next(undefined);
27
- });
28
- };
29
- }
30
- var __generator = this && this.__generator || function(thisArg, body) {
31
- var f, y, t, g, _ = {
32
- label: 0,
33
- sent: function() {
34
- if (t[0] & 1) throw t[1];
35
- return t[1];
36
- },
37
- trys: [],
38
- ops: []
39
- };
40
- return(g = {
41
- next: verb(0),
42
- "throw": verb(1),
43
- "return": verb(2)
44
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
45
- return this;
46
- }), g);
47
- function verb(n) {
48
- return function(v) {
49
- return step([
50
- n,
51
- v
52
- ]);
53
- };
54
- }
55
- function step(op) {
56
- if (f) throw new TypeError("Generator is already executing.");
57
- while(_)try {
58
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
59
- if (y = 0, t) op = [
60
- op[0] & 2,
61
- t.value
62
- ];
63
- switch(op[0]){
64
- case 0:
65
- case 1:
66
- t = op;
67
- break;
68
- case 4:
69
- _.label++;
70
- return {
71
- value: op[1],
72
- done: false
73
- };
74
- case 5:
75
- _.label++;
76
- y = op[1];
77
- op = [
78
- 0
79
- ];
80
- continue;
81
- case 7:
82
- op = _.ops.pop();
83
- _.trys.pop();
84
- continue;
85
- default:
86
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
87
- _ = 0;
88
- continue;
89
- }
90
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
91
- _.label = op[1];
92
- break;
93
- }
94
- if (op[0] === 6 && _.label < t[1]) {
95
- _.label = t[1];
96
- t = op;
97
- break;
98
- }
99
- if (t && _.label < t[2]) {
100
- _.label = t[2];
101
- _.ops.push(op);
102
- break;
103
- }
104
- if (t[2]) _.ops.pop();
105
- _.trys.pop();
106
- continue;
107
- }
108
- op = body.call(thisArg, _);
109
- } catch (e) {
110
- op = [
111
- 6,
112
- e
113
- ];
114
- y = 0;
115
- } finally{
116
- f = t = 0;
117
- }
118
- if (op[0] & 5) throw op[1];
119
- return {
120
- value: op[0] ? op[1] : void 0,
121
- done: true
122
- };
123
- }
124
- };
125
- import { PreRender } from "../../react/prerender";
126
- import { time } from "../time";
127
- import SSREntry from "./entry";
128
- var render = function() {
129
- var _ref = _asyncToGenerator(function(param) {
130
- var App, context, config, ssrContext, entry, end, html, cost, cacheConfig;
131
- return __generator(this, function(_state) {
132
- switch(_state.label){
133
- case 0:
134
- App = param.App, context = param.context, config = param.config;
135
- ssrContext = context.ssrContext;
136
- entry = new SSREntry({
137
- ctx: ssrContext,
138
- App: App,
139
- config: config
140
- });
141
- entry.metrics.emitCounter("app.visit.count", 1);
142
- end = time();
143
- return [
144
- 4,
145
- entry.renderToHtml(context)
146
- ];
147
- case 1:
148
- html = _state.sent();
149
- cost = end();
150
- entry.logger.info("App Render Total cost = %d ms", cost);
151
- entry.metrics.emitTimer("app.render.cost", cost);
152
- cacheConfig = PreRender.config();
153
- if (cacheConfig) {
154
- context.ssrContext.cacheConfig = cacheConfig;
155
- }
156
- return [
157
- 2,
158
- html
159
- ];
160
- }
161
- });
162
- });
163
- return function render(_) {
164
- return _ref.apply(this, arguments);
165
- };
166
- }();
167
- export { render };
File without changes
@@ -1,7 +0,0 @@
1
- import { routerPlugin } from "./runtime/plugin.node";
2
- import { routerPlugin as routerPlugin2 } from "./runtime/plugin.node";
3
- export * from "./runtime";
4
- export {
5
- routerPlugin2 as default,
6
- routerPlugin as router
7
- };
@@ -1,131 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { Suspense, useEffect, useRef, useMemo, useContext } from "react";
3
- import {
4
- Await,
5
- UNSAFE_DataRouterContext as DataRouterContext,
6
- useAsyncError
7
- } from "react-router-dom";
8
- import { serializeJson } from "@modern-js/utils/serialize";
9
- import { JSX_SHELL_STREAM_END_MARK } from "../../common";
10
- const setupFnStr = `function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};`;
11
- const resolveFnStr = `function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};`;
12
- const preResolvedFnStr = `function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resovle(e)};`;
13
- const DeferredDataScripts = () => {
14
- const context = useContext(DataRouterContext);
15
- const { staticContext } = context || {};
16
- const hydratedRef = useRef(false);
17
- useEffect(() => {
18
- hydratedRef.current = true;
19
- }, []);
20
- const deferredScripts = useMemo(() => {
21
- const activeDeferreds = (staticContext == null ? void 0 : staticContext.activeDeferreds) || [];
22
- const _ROUTER_DATA = {
23
- loaderData: staticContext == null ? void 0 : staticContext.loaderData
24
- };
25
- let initialScripts = [
26
- `_ROUTER_DATA = ${serializeJson(_ROUTER_DATA)};`,
27
- `_ROUTER_DATA.s = ${setupFnStr}`,
28
- `_ROUTER_DATA.r = ${resolveFnStr}`,
29
- `_ROUTER_DATA.p = ${preResolvedFnStr}`
30
- ].join("\n");
31
- const deferredDataScripts = [];
32
- initialScripts += Object.entries(activeDeferreds).map(([routeId, deferredData]) => {
33
- const pendingKeys = new Set(deferredData.pendingKeys);
34
- const { deferredKeys } = deferredData;
35
- const deferredKeyPromiseStr = deferredKeys.map((key) => {
36
- if (pendingKeys.has(key)) {
37
- deferredDataScripts.push(
38
- /* @__PURE__ */ jsx(DeferredDataScript, {
39
- data: deferredData.data[key],
40
- dataKey: key,
41
- routeId
42
- }, `${routeId} | ${key}`)
43
- );
44
- return `${JSON.stringify(key)}: _ROUTER_DATA.s(${JSON.stringify(
45
- routeId
46
- )},${JSON.stringify(key)}) `;
47
- } else {
48
- const trackedPromise = deferredData.data[key];
49
- if (typeof trackedPromise._error !== "undefined") {
50
- const error = {
51
- message: trackedPromise._error.message,
52
- stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
53
- };
54
- return `${JSON.stringify(
55
- key
56
- )}: _ROUTER_DATA.p(${void 0}, ${serializeJson(error)})`;
57
- } else {
58
- if (typeof trackedPromise._data === "undefined") {
59
- throw new Error(
60
- `The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise`
61
- );
62
- }
63
- return `${JSON.stringify(key)}: _ROUTER_DATA.p(${serializeJson(
64
- trackedPromise._data
65
- )})`;
66
- }
67
- }
68
- }).join(",\n");
69
- return `Object.assign(_ROUTER_DATA.loaderData[${JSON.stringify(
70
- routeId
71
- )}], {${deferredKeyPromiseStr}});`;
72
- }).join("\n");
73
- return [initialScripts, deferredDataScripts];
74
- }, []);
75
- return /* @__PURE__ */ jsxs(Fragment, {
76
- children: [
77
- !hydratedRef.current && /* @__PURE__ */ jsx("script", {
78
- async: true,
79
- suppressHydrationWarning: true,
80
- dangerouslySetInnerHTML: { __html: deferredScripts[0] }
81
- }),
82
- !hydratedRef.current && deferredScripts[1],
83
- JSX_SHELL_STREAM_END_MARK
84
- ]
85
- });
86
- };
87
- const DeferredDataScript = ({
88
- data,
89
- routeId,
90
- dataKey
91
- }) => {
92
- return /* @__PURE__ */ jsx(Suspense, {
93
- children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ jsx(Await, {
94
- resolve: data,
95
- errorElement: /* @__PURE__ */ jsx(ErrorDeferredDataScript, {
96
- routeId,
97
- dataKey
98
- }),
99
- children: (data2) => /* @__PURE__ */ jsx("script", {
100
- async: true,
101
- suppressHydrationWarning: true,
102
- dangerouslySetInnerHTML: {
103
- __html: `_ROUTER_DATA.r(${JSON.stringify(
104
- routeId
105
- )}, ${JSON.stringify(dataKey)}, ${serializeJson(data2)});`
106
- }
107
- })
108
- }) : null
109
- });
110
- };
111
- const ErrorDeferredDataScript = ({
112
- routeId,
113
- dataKey
114
- }) => {
115
- const error = useAsyncError();
116
- return /* @__PURE__ */ jsx("script", {
117
- suppressHydrationWarning: true,
118
- dangerouslySetInnerHTML: {
119
- __html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(
120
- dataKey
121
- )}, ${void 0}, ${serializeJson({
122
- message: error.message,
123
- stack: error.stack
124
- })});`
125
- }
126
- });
127
- };
128
- var DeferredDataScripts_default = DeferredDataScripts;
129
- export {
130
- DeferredDataScripts_default as default
131
- };