@modern-js/runtime 2.5.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 (101) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/cli/index.js +9 -0
  3. package/dist/cjs/core/app-config.js +5 -1
  4. package/dist/cjs/core/compatible.js +8 -7
  5. package/dist/cjs/core/loader/index.js +4 -0
  6. package/dist/cjs/core/loader/loaderManager.js +6 -0
  7. package/dist/cjs/core/loader/useLoader.js +4 -0
  8. package/dist/cjs/document/Body.js +6 -8
  9. package/dist/cjs/document/DocumentContext.js +4 -0
  10. package/dist/cjs/document/DocumentStructureContext.js +4 -0
  11. package/dist/cjs/document/Head.js +7 -11
  12. package/dist/cjs/document/Html.js +24 -22
  13. package/dist/cjs/document/Links.js +1 -3
  14. package/dist/cjs/document/Root.js +8 -14
  15. package/dist/cjs/document/Script.js +5 -7
  16. package/dist/cjs/document/Scripts.js +1 -3
  17. package/dist/cjs/document/cli/index.js +8 -2
  18. package/dist/cjs/exports/head.js +4 -0
  19. package/dist/cjs/exports/loadable.js +4 -0
  20. package/dist/cjs/exports/styled.js +4 -0
  21. package/dist/cjs/router/cli/index.js +3 -7
  22. package/dist/cjs/router/index.js +4 -0
  23. package/dist/cjs/router/runtime/DefaultNotFound.js +13 -10
  24. package/dist/cjs/router/runtime/plugin.js +5 -6
  25. package/dist/cjs/router/runtime/plugin.node.js +16 -9
  26. package/dist/cjs/router/runtime/utils.js +15 -36
  27. package/dist/cjs/router/runtime/withRouter.js +9 -6
  28. package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +4 -0
  29. package/dist/cjs/ssr/cli/index.js +4 -0
  30. package/dist/cjs/ssr/index.js +10 -24
  31. package/dist/cjs/ssr/index.node.js +4 -0
  32. package/dist/cjs/ssr/prefetch.js +3 -6
  33. package/dist/cjs/ssr/react/nossr/index.js +4 -0
  34. package/dist/cjs/ssr/react/prerender/index.js +4 -0
  35. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -4
  36. package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +5 -0
  37. package/dist/cjs/ssr/serverRender/renderToStream/index.js +4 -0
  38. package/dist/cjs/ssr/serverRender/renderToString/entry.js +10 -4
  39. package/dist/cjs/ssr/serverRender/renderToString/index.js +4 -0
  40. package/dist/cjs/ssr/serverRender/renderToString/loadable.js +1 -1
  41. package/dist/cjs/ssr/serverRender/time.worker.js +1 -1
  42. package/dist/cjs/ssr/serverRender/utils.js +1 -1
  43. package/dist/cjs/ssr/utils.js +16 -4
  44. package/dist/cjs/state/index.js +4 -0
  45. package/dist/cjs/state/plugins.js +4 -0
  46. package/dist/cjs/state/runtime/index.js +4 -0
  47. package/dist/cjs/state/runtime/plugin.js +5 -7
  48. package/dist/esm/cli/index.js +5 -1
  49. package/dist/esm/core/app-config.js +3 -1
  50. package/dist/esm/core/compatible.js +3 -1
  51. package/dist/esm/core/loader/loaderManager.js +3 -1
  52. package/dist/esm/document/cli/index.js +4 -2
  53. package/dist/esm/router/cli/index.js +1 -5
  54. package/dist/esm/ssr/prefetch.js +1 -0
  55. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +35 -6
  56. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
  57. package/dist/esm/ssr/serverRender/renderToString/entry.js +22 -6
  58. package/dist/esm/ssr/serverRender/time.worker.js +1 -1
  59. package/dist/esm/ssr/utils.js +6 -4
  60. package/dist/esm-node/cli/index.js +5 -0
  61. package/dist/esm-node/core/app-config.js +5 -1
  62. package/dist/esm-node/core/compatible.js +4 -7
  63. package/dist/esm-node/core/loader/loaderManager.js +2 -0
  64. package/dist/esm-node/document/Body.js +6 -8
  65. package/dist/esm-node/document/Head.js +7 -11
  66. package/dist/esm-node/document/Html.js +24 -22
  67. package/dist/esm-node/document/Links.js +1 -3
  68. package/dist/esm-node/document/Root.js +8 -14
  69. package/dist/esm-node/document/Script.js +5 -7
  70. package/dist/esm-node/document/Scripts.js +1 -3
  71. package/dist/esm-node/document/cli/index.js +4 -2
  72. package/dist/esm-node/router/cli/index.js +2 -5
  73. package/dist/esm-node/router/runtime/DefaultNotFound.js +13 -10
  74. package/dist/esm-node/router/runtime/plugin.js +1 -6
  75. package/dist/esm-node/router/runtime/plugin.node.js +12 -9
  76. package/dist/esm-node/router/runtime/utils.js +15 -36
  77. package/dist/esm-node/router/runtime/withRouter.js +9 -6
  78. package/dist/esm-node/ssr/index.js +6 -24
  79. package/dist/esm-node/ssr/prefetch.js +3 -6
  80. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +6 -4
  81. package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
  82. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +6 -4
  83. package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +1 -1
  84. package/dist/esm-node/ssr/serverRender/time.worker.js +1 -1
  85. package/dist/esm-node/ssr/serverRender/utils.js +1 -1
  86. package/dist/esm-node/ssr/utils.js +6 -4
  87. package/dist/esm-node/state/runtime/plugin.js +1 -7
  88. package/dist/types/ssr/serverRender/renderToString/type.d.ts +1 -0
  89. package/package.json +11 -9
  90. package/dist/cjs/ssr/prefetch.worker.js +0 -67
  91. package/dist/cjs/ssr/serverRender/renderToStream/index.worker.js +0 -64
  92. package/dist/cjs/ssr/serverRender/renderToString/index.worker.js +0 -58
  93. package/dist/esm/ssr/prefetch.worker.js +0 -191
  94. package/dist/esm/ssr/serverRender/renderToStream/index.worker.js +0 -32
  95. package/dist/esm/ssr/serverRender/renderToString/index.worker.js +0 -167
  96. package/dist/esm-node/ssr/prefetch.worker.js +0 -46
  97. package/dist/esm-node/ssr/serverRender/renderToStream/index.worker.js +0 -35
  98. package/dist/esm-node/ssr/serverRender/renderToString/index.worker.js +0 -29
  99. package/dist/types/ssr/prefetch.worker.d.ts +0 -13
  100. package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +0 -6
  101. package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +0 -6
@@ -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 };
@@ -1,46 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { renderToStaticMarkup } from "react-dom/server";
3
- import { ChunkExtractor } from "@loadable/server";
4
- const prefetch = async (App, context) => {
5
- var _a;
6
- const { ssrContext } = context;
7
- const { loadableStats } = ssrContext;
8
- if (loadableStats) {
9
- const extractor = new ChunkExtractor({
10
- stats: loadableStats,
11
- entrypoints: [ssrContext.entryName].filter(Boolean)
12
- });
13
- renderToStaticMarkup(extractor.collectChunks(/* @__PURE__ */ jsx(App, {
14
- context
15
- })));
16
- } else {
17
- renderToStaticMarkup(/* @__PURE__ */ jsx(App, {
18
- context
19
- }));
20
- }
21
- if (!context.loaderManager.hasPendingLoaders()) {
22
- return {
23
- initialData: context.initialData,
24
- i18nData: context.__i18nData__
25
- };
26
- }
27
- const loadersData = await context.loaderManager.awaitPendingLoaders();
28
- Object.keys(loadersData).forEach((id) => {
29
- const data = loadersData[id];
30
- if (data._error) {
31
- ssrContext.logger.error("App Prefetch Loader", data._error);
32
- ssrContext.metrics.emitCounter("app.prefetch.loader.error", 1);
33
- delete data._error;
34
- }
35
- });
36
- return {
37
- loadersData,
38
- initialData: context.initialData,
39
- i18nData: context.__i18nData__,
40
- storeState: (_a = context == null ? void 0 : context.store) == null ? void 0 : _a.getState()
41
- };
42
- };
43
- var prefetch_worker_default = prefetch;
44
- export {
45
- prefetch_worker_default as default
46
- };
@@ -1,35 +0,0 @@
1
- import { createElement } from "react";
2
- import { PreRender } from "../../react/prerender";
3
- import { time } from "../time";
4
- import renderToPipe from "./renderToPipe";
5
- const render = ({ App, context }) => {
6
- const { ssrContext } = context;
7
- if (!ssrContext) {
8
- throw new Error(
9
- 'The "ssrContext" must not be undefined, but received undefined'
10
- );
11
- }
12
- const end = time();
13
- const rootElement = createElement(App, {
14
- context: Object.assign(context || {}, {
15
- ssr: true
16
- })
17
- });
18
- const pipe = renderToPipe(rootElement, context, {
19
- onShellReady() {
20
- const cacheConfig = PreRender.config();
21
- if (cacheConfig) {
22
- ssrContext.cacheConfig = cacheConfig;
23
- }
24
- },
25
- onAllReady() {
26
- const cost = end();
27
- ssrContext.logger.debug("App Render To HTML cost = %d ms", cost);
28
- ssrContext.metrics.emitTimer("app.render.html.cost", cost);
29
- }
30
- });
31
- return pipe;
32
- };
33
- export {
34
- render
35
- };
@@ -1,29 +0,0 @@
1
- import { PreRender } from "../../react/prerender";
2
- import { time } from "../time";
3
- import SSREntry from "./entry";
4
- const render = async ({
5
- App,
6
- context,
7
- config
8
- }) => {
9
- const ssrContext = context.ssrContext;
10
- const entry = new SSREntry({
11
- ctx: ssrContext,
12
- App,
13
- config
14
- });
15
- entry.metrics.emitCounter("app.visit.count", 1);
16
- const end = time();
17
- const html = await entry.renderToHtml(context);
18
- const cost = end();
19
- entry.logger.info("App Render Total cost = %d ms", cost);
20
- entry.metrics.emitTimer("app.render.cost", cost);
21
- const cacheConfig = PreRender.config();
22
- if (cacheConfig) {
23
- context.ssrContext.cacheConfig = cacheConfig;
24
- }
25
- return html;
26
- };
27
- export {
28
- render
29
- };
@@ -1,13 +0,0 @@
1
- import { RuntimeContext } from '../core';
2
- declare const prefetch: (App: React.ComponentType<any>, context: RuntimeContext) => Promise<{
3
- initialData: Record<string, unknown> | undefined;
4
- i18nData: any;
5
- loadersData?: undefined;
6
- storeState?: undefined;
7
- } | {
8
- loadersData: Record<string, import("../core/loader/loaderManager").LoaderResult>;
9
- initialData: Record<string, unknown> | undefined;
10
- i18nData: any;
11
- storeState: any;
12
- }>;
13
- export default prefetch;
@@ -1,6 +0,0 @@
1
- /// <reference types="node" />
2
- import { ServerRenderOptions } from '../types';
3
- export declare const render: ({
4
- App,
5
- context
6
- }: ServerRenderOptions) => import("./renderToPipe").Pipe<import("stream").Writable>;
@@ -1,6 +0,0 @@
1
- import { ServerRenderOptions } from '../types';
2
- export declare const render: ({
3
- App,
4
- context,
5
- config
6
- }: ServerRenderOptions) => Promise<string>;