@modern-js/runtime 2.44.0 → 2.45.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/dist/cjs/ssr/cli/index.js +3 -7
- package/dist/cjs/ssr/prefetch.js +1 -2
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -2
- package/dist/cjs/ssr/serverRender/renderToString/index.js +0 -1
- package/dist/cjs/ssr/serverRender/renderToString/loadable.js +2 -1
- package/dist/cjs/ssr/serverRender/tracker.js +8 -20
- package/dist/esm/ssr/cli/index.js +5 -8
- package/dist/esm/ssr/prefetch.js +1 -2
- package/dist/esm/ssr/serverRender/renderToString/entry.js +0 -2
- package/dist/esm/ssr/serverRender/renderToString/index.js +0 -1
- package/dist/esm/ssr/serverRender/renderToString/loadable.js +2 -1
- package/dist/esm/ssr/serverRender/tracker.js +8 -20
- package/dist/esm-node/ssr/cli/index.js +3 -7
- package/dist/esm-node/ssr/prefetch.js +1 -2
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +0 -2
- package/dist/esm-node/ssr/serverRender/renderToString/index.js +0 -1
- package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +2 -1
- package/dist/esm-node/ssr/serverRender/tracker.js +8 -20
- package/dist/types/ssr/serverRender/renderToString/entry.d.ts +0 -1
- package/dist/types/ssr/serverRender/tracker.d.ts +1 -1
- package/dist/types/ssr/serverRender/types.d.ts +1 -1
- package/package.json +10 -10
|
@@ -154,24 +154,20 @@ const ssrPlugin = () => ({
|
|
|
154
154
|
},
|
|
155
155
|
modifyEntryRuntimePlugins({ entrypoint, plugins, bundlerConfigs }) {
|
|
156
156
|
if (ssrConfigMap.get(entrypoint.entryName)) {
|
|
157
|
-
var _bundlerConfigs_find_output, _bundlerConfigs_find
|
|
157
|
+
var _bundlerConfigs_find_output, _bundlerConfigs_find;
|
|
158
158
|
const chunkLoadingGlobal = bundlerConfigs === null || bundlerConfigs === void 0 ? void 0 : (_bundlerConfigs_find = bundlerConfigs.find((config2) => config2.name === "client")) === null || _bundlerConfigs_find === void 0 ? void 0 : (_bundlerConfigs_find_output = _bundlerConfigs_find.output) === null || _bundlerConfigs_find_output === void 0 ? void 0 : _bundlerConfigs_find_output.chunkLoadingGlobal;
|
|
159
159
|
const config = api.useResolvedConfigContext();
|
|
160
160
|
const { enableInlineScripts, enableInlineStyles } = config.output;
|
|
161
161
|
const { crossorigin, scriptLoading } = config.html;
|
|
162
|
-
const disablePrerender = typeof ((_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr) === "object" ? Boolean(config.server.ssr.disablePrerender) : false;
|
|
163
|
-
const unsafeHeaders = typeof ((_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssr) === "object" ? config.server.ssr.unsafeHeaders : void 0;
|
|
164
162
|
plugins.push({
|
|
165
163
|
name: PLUGIN_IDENTIFIER,
|
|
166
164
|
options: JSON.stringify({
|
|
165
|
+
scriptLoading,
|
|
167
166
|
...ssrConfigMap.get(entrypoint.entryName) || {},
|
|
168
167
|
crossorigin,
|
|
169
|
-
scriptLoading,
|
|
170
168
|
chunkLoadingGlobal,
|
|
171
|
-
disablePrerender,
|
|
172
169
|
enableInlineScripts: typeof enableInlineScripts === "function" ? void 0 : enableInlineScripts,
|
|
173
|
-
enableInlineStyles: typeof enableInlineStyles === "function" ? void 0 : enableInlineStyles
|
|
174
|
-
unsafeHeaders
|
|
170
|
+
enableInlineStyles: typeof enableInlineStyles === "function" ? void 0 : enableInlineStyles
|
|
175
171
|
})
|
|
176
172
|
});
|
|
177
173
|
}
|
package/dist/cjs/ssr/prefetch.js
CHANGED
|
@@ -77,8 +77,7 @@ const prefetch = async (App, context, config, tracker) => (0, import_node.run)(c
|
|
|
77
77
|
Object.keys(loadersData).forEach((id) => {
|
|
78
78
|
const data = loadersData[id];
|
|
79
79
|
if (data._error) {
|
|
80
|
-
ssrContext.logger.error("App
|
|
81
|
-
ssrContext.metrics.emitCounter("app.prefetch.loader.error", 1);
|
|
80
|
+
ssrContext.logger.error("App Load use-loader", data._error);
|
|
82
81
|
delete data._error;
|
|
83
82
|
}
|
|
84
83
|
});
|
|
@@ -161,7 +161,6 @@ class Entry {
|
|
|
161
161
|
constructor(options) {
|
|
162
162
|
(0, import_define_property._)(this, "entryName", void 0);
|
|
163
163
|
(0, import_define_property._)(this, "result", void 0);
|
|
164
|
-
(0, import_define_property._)(this, "metrics", void 0);
|
|
165
164
|
(0, import_define_property._)(this, "tracker", void 0);
|
|
166
165
|
(0, import_define_property._)(this, "template", void 0);
|
|
167
166
|
(0, import_define_property._)(this, "App", void 0);
|
|
@@ -177,7 +176,6 @@ class Entry {
|
|
|
177
176
|
this.pluginConfig = config;
|
|
178
177
|
this.routeManifest = ctx.routeManifest;
|
|
179
178
|
this.tracker = ctx.tracker;
|
|
180
|
-
this.metrics = ctx.metrics;
|
|
181
179
|
this.htmlModifiers = ctx.htmlModifiers;
|
|
182
180
|
this.nonce = nonce;
|
|
183
181
|
this.result = {
|
|
@@ -105,7 +105,8 @@ class LoadableCollector {
|
|
|
105
105
|
const { scriptLoading = "defer", enableInlineScripts } = config;
|
|
106
106
|
const scriptLoadingAtr = {
|
|
107
107
|
defer: scriptLoading === "defer" ? true : void 0,
|
|
108
|
-
type: scriptLoading === "module" ? "module" : void 0
|
|
108
|
+
type: scriptLoading === "module" ? "module" : void 0,
|
|
109
|
+
async: scriptLoading === "async" ? true : void 0
|
|
109
110
|
};
|
|
110
111
|
const attributes = (0, import_utils.attributesToString)(this.generateAttributes({
|
|
111
112
|
nonce,
|
|
@@ -41,69 +41,57 @@ var SSRErrors;
|
|
|
41
41
|
const errors = {
|
|
42
42
|
[0]: {
|
|
43
43
|
reporter: "App Prerender",
|
|
44
|
-
logger: "App Prerender"
|
|
45
|
-
metrics: "app.prerender.error"
|
|
44
|
+
logger: "App Prerender"
|
|
46
45
|
},
|
|
47
46
|
[1]: {
|
|
48
47
|
reporter: "App run useLoader",
|
|
49
|
-
logger: "App run useLoader"
|
|
50
|
-
metrics: "app.useloader.error"
|
|
48
|
+
logger: "App run useLoader"
|
|
51
49
|
},
|
|
52
50
|
[2]: {
|
|
53
51
|
reporter: "App Render To HTML",
|
|
54
|
-
logger: "App Render To HTML"
|
|
55
|
-
metrics: "app.render.html.error"
|
|
52
|
+
logger: "App Render To HTML"
|
|
56
53
|
},
|
|
57
54
|
[3]: {
|
|
58
55
|
reporter: "App Render To Streaming",
|
|
59
|
-
logger: "An error occurs during streaming SSR"
|
|
60
|
-
metrics: "app.render.streaming.error"
|
|
56
|
+
logger: "An error occurs during streaming SSR"
|
|
61
57
|
},
|
|
62
|
-
[4]: {
|
|
63
|
-
metrics: "app.render.streaming.shell.error"
|
|
64
|
-
}
|
|
58
|
+
[4]: {}
|
|
65
59
|
};
|
|
66
60
|
const timings = {
|
|
67
61
|
[0]: {
|
|
68
62
|
reporter: "ssr-prerender",
|
|
69
63
|
serverTiming: "ssr-prerender",
|
|
70
|
-
metrics: "app.prerender.cost",
|
|
71
64
|
logger: "App Prerender cost = %d ms"
|
|
72
65
|
},
|
|
73
66
|
[1]: {
|
|
74
67
|
reporter: "ssr-render-html",
|
|
75
68
|
serverTiming: "ssr-render-html",
|
|
76
|
-
metrics: "app.render.html.cost",
|
|
77
69
|
logger: "App Render To HTML cost = %d ms"
|
|
78
70
|
},
|
|
79
71
|
[2]: {
|
|
80
72
|
reporter: "ssr-render-shell",
|
|
81
|
-
metrics: "app.render.shell.cost",
|
|
82
73
|
logger: "App Render To Shell cost = %d ms"
|
|
83
74
|
},
|
|
84
75
|
[3]: {
|
|
85
76
|
reporter: "use-loader",
|
|
86
77
|
serverTiming: "use-loader",
|
|
87
|
-
metrics: "app.useloader.cost",
|
|
88
78
|
logger: "App run useLoader cost = %d ms"
|
|
89
79
|
}
|
|
90
80
|
};
|
|
91
|
-
function createSSRTracker({ reporter, serverTiming,
|
|
81
|
+
function createSSRTracker({ reporter, serverTiming, logger }) {
|
|
92
82
|
const tracker = {
|
|
93
83
|
get sessionId() {
|
|
94
84
|
return reporter.sessionId;
|
|
95
85
|
},
|
|
96
86
|
trackError(key, e) {
|
|
97
|
-
const { reporter: reporterContent,
|
|
87
|
+
const { reporter: reporterContent, logger: loggerContent } = errors[key];
|
|
98
88
|
reporterContent && reporter.reportError(`SSR Error - ${reporterContent}`, e);
|
|
99
|
-
metricsContent && metrics.emitCounter(metricsContent, 1);
|
|
100
89
|
loggerContent && logger.error(loggerContent, e);
|
|
101
90
|
},
|
|
102
91
|
trackTiming(key, cost) {
|
|
103
|
-
const { reporter: reporterName, serverTiming: serverTimingName, logger: loggerName
|
|
92
|
+
const { reporter: reporterName, serverTiming: serverTimingName, logger: loggerName } = timings[key];
|
|
104
93
|
reporterName && reporter.reportTiming(reporterName, cost);
|
|
105
94
|
serverTimingName && serverTiming.addServeTiming(serverTimingName, cost);
|
|
106
|
-
metricsName && metrics.emitTimer(metricsName, cost);
|
|
107
95
|
loggerName && logger.debug(loggerName, cost);
|
|
108
96
|
}
|
|
109
97
|
};
|
|
@@ -146,25 +146,22 @@ var ssrPlugin = function() {
|
|
|
146
146
|
modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
|
|
147
147
|
var entrypoint = param.entrypoint, plugins = param.plugins, bundlerConfigs = param.bundlerConfigs;
|
|
148
148
|
if (ssrConfigMap.get(entrypoint.entryName)) {
|
|
149
|
-
var _bundlerConfigs_find_output, _bundlerConfigs_find
|
|
149
|
+
var _bundlerConfigs_find_output, _bundlerConfigs_find;
|
|
150
150
|
var chunkLoadingGlobal = bundlerConfigs === null || bundlerConfigs === void 0 ? void 0 : (_bundlerConfigs_find = bundlerConfigs.find(function(config2) {
|
|
151
151
|
return config2.name === "client";
|
|
152
152
|
})) === null || _bundlerConfigs_find === void 0 ? void 0 : (_bundlerConfigs_find_output = _bundlerConfigs_find.output) === null || _bundlerConfigs_find_output === void 0 ? void 0 : _bundlerConfigs_find_output.chunkLoadingGlobal;
|
|
153
153
|
var config = api.useResolvedConfigContext();
|
|
154
154
|
var _config_output = config.output, enableInlineScripts = _config_output.enableInlineScripts, enableInlineStyles = _config_output.enableInlineStyles;
|
|
155
155
|
var _config_html = config.html, crossorigin = _config_html.crossorigin, scriptLoading = _config_html.scriptLoading;
|
|
156
|
-
var disablePrerender = typeof ((_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr) === "object" ? Boolean(config.server.ssr.disablePrerender) : false;
|
|
157
|
-
var unsafeHeaders = typeof ((_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssr) === "object" ? config.server.ssr.unsafeHeaders : void 0;
|
|
158
156
|
plugins.push({
|
|
159
157
|
name: PLUGIN_IDENTIFIER,
|
|
160
|
-
options: JSON.stringify(_object_spread_props(_object_spread({
|
|
158
|
+
options: JSON.stringify(_object_spread_props(_object_spread({
|
|
159
|
+
scriptLoading
|
|
160
|
+
}, ssrConfigMap.get(entrypoint.entryName) || {}), {
|
|
161
161
|
crossorigin,
|
|
162
|
-
scriptLoading,
|
|
163
162
|
chunkLoadingGlobal,
|
|
164
|
-
disablePrerender,
|
|
165
163
|
enableInlineScripts: typeof enableInlineScripts === "function" ? void 0 : enableInlineScripts,
|
|
166
|
-
enableInlineStyles: typeof enableInlineStyles === "function" ? void 0 : enableInlineStyles
|
|
167
|
-
unsafeHeaders
|
|
164
|
+
enableInlineStyles: typeof enableInlineStyles === "function" ? void 0 : enableInlineStyles
|
|
168
165
|
}))
|
|
169
166
|
});
|
|
170
167
|
}
|
package/dist/esm/ssr/prefetch.js
CHANGED
|
@@ -84,8 +84,7 @@ var prefetch = function() {
|
|
|
84
84
|
Object.keys(loadersData).forEach(function(id) {
|
|
85
85
|
var data = loadersData[id];
|
|
86
86
|
if (data._error) {
|
|
87
|
-
ssrContext.logger.error("App
|
|
88
|
-
ssrContext.metrics.emitCounter("app.prefetch.loader.error", 1);
|
|
87
|
+
ssrContext.logger.error("App Load use-loader", data._error);
|
|
89
88
|
delete data._error;
|
|
90
89
|
}
|
|
91
90
|
});
|
|
@@ -54,7 +54,6 @@ var Entry = /* @__PURE__ */ function() {
|
|
|
54
54
|
_class_call_check(this, Entry2);
|
|
55
55
|
_define_property(this, "entryName", void 0);
|
|
56
56
|
_define_property(this, "result", void 0);
|
|
57
|
-
_define_property(this, "metrics", void 0);
|
|
58
57
|
_define_property(this, "tracker", void 0);
|
|
59
58
|
_define_property(this, "template", void 0);
|
|
60
59
|
_define_property(this, "App", void 0);
|
|
@@ -70,7 +69,6 @@ var Entry = /* @__PURE__ */ function() {
|
|
|
70
69
|
this.pluginConfig = config;
|
|
71
70
|
this.routeManifest = ctx.routeManifest;
|
|
72
71
|
this.tracker = ctx.tracker;
|
|
73
|
-
this.metrics = ctx.metrics;
|
|
74
72
|
this.htmlModifiers = ctx.htmlModifiers;
|
|
75
73
|
this.nonce = nonce;
|
|
76
74
|
this.result = {
|
|
@@ -164,7 +164,8 @@ var LoadableCollector = /* @__PURE__ */ function() {
|
|
|
164
164
|
_config_scriptLoading = config.scriptLoading, scriptLoading = _config_scriptLoading === void 0 ? "defer" : _config_scriptLoading, enableInlineScripts = config.enableInlineScripts;
|
|
165
165
|
scriptLoadingAtr = {
|
|
166
166
|
defer: scriptLoading === "defer" ? true : void 0,
|
|
167
|
-
type: scriptLoading === "module" ? "module" : void 0
|
|
167
|
+
type: scriptLoading === "module" ? "module" : void 0,
|
|
168
|
+
async: scriptLoading === "async" ? true : void 0
|
|
168
169
|
};
|
|
169
170
|
attributes = attributesToString(_this.generateAttributes(_object_spread({
|
|
170
171
|
nonce
|
|
@@ -17,61 +17,49 @@ var SSRErrors;
|
|
|
17
17
|
var _obj;
|
|
18
18
|
var errors = (_obj = {}, _define_property(_obj, 0, {
|
|
19
19
|
reporter: "App Prerender",
|
|
20
|
-
logger: "App Prerender"
|
|
21
|
-
metrics: "app.prerender.error"
|
|
20
|
+
logger: "App Prerender"
|
|
22
21
|
}), _define_property(_obj, 1, {
|
|
23
22
|
reporter: "App run useLoader",
|
|
24
|
-
logger: "App run useLoader"
|
|
25
|
-
metrics: "app.useloader.error"
|
|
23
|
+
logger: "App run useLoader"
|
|
26
24
|
}), _define_property(_obj, 2, {
|
|
27
25
|
reporter: "App Render To HTML",
|
|
28
|
-
logger: "App Render To HTML"
|
|
29
|
-
metrics: "app.render.html.error"
|
|
26
|
+
logger: "App Render To HTML"
|
|
30
27
|
}), _define_property(_obj, 3, {
|
|
31
28
|
reporter: "App Render To Streaming",
|
|
32
|
-
logger: "An error occurs during streaming SSR"
|
|
33
|
-
|
|
34
|
-
}), _define_property(_obj, 4, {
|
|
35
|
-
metrics: "app.render.streaming.shell.error"
|
|
36
|
-
}), _obj);
|
|
29
|
+
logger: "An error occurs during streaming SSR"
|
|
30
|
+
}), _define_property(_obj, 4, {}), _obj);
|
|
37
31
|
var _obj1;
|
|
38
32
|
var timings = (_obj1 = {}, _define_property(_obj1, 0, {
|
|
39
33
|
reporter: "ssr-prerender",
|
|
40
34
|
serverTiming: "ssr-prerender",
|
|
41
|
-
metrics: "app.prerender.cost",
|
|
42
35
|
logger: "App Prerender cost = %d ms"
|
|
43
36
|
}), _define_property(_obj1, 1, {
|
|
44
37
|
reporter: "ssr-render-html",
|
|
45
38
|
serverTiming: "ssr-render-html",
|
|
46
|
-
metrics: "app.render.html.cost",
|
|
47
39
|
logger: "App Render To HTML cost = %d ms"
|
|
48
40
|
}), _define_property(_obj1, 2, {
|
|
49
41
|
reporter: "ssr-render-shell",
|
|
50
|
-
metrics: "app.render.shell.cost",
|
|
51
42
|
logger: "App Render To Shell cost = %d ms"
|
|
52
43
|
}), _define_property(_obj1, 3, {
|
|
53
44
|
reporter: "use-loader",
|
|
54
45
|
serverTiming: "use-loader",
|
|
55
|
-
metrics: "app.useloader.cost",
|
|
56
46
|
logger: "App run useLoader cost = %d ms"
|
|
57
47
|
}), _obj1);
|
|
58
48
|
function createSSRTracker(param) {
|
|
59
|
-
var reporter = param.reporter, serverTiming = param.serverTiming,
|
|
49
|
+
var reporter = param.reporter, serverTiming = param.serverTiming, logger = param.logger;
|
|
60
50
|
var tracker = {
|
|
61
51
|
get sessionId() {
|
|
62
52
|
return reporter.sessionId;
|
|
63
53
|
},
|
|
64
54
|
trackError: function trackError(key, e) {
|
|
65
|
-
var _errors_key = errors[key], reporterContent = _errors_key.reporter,
|
|
55
|
+
var _errors_key = errors[key], reporterContent = _errors_key.reporter, loggerContent = _errors_key.logger;
|
|
66
56
|
reporterContent && reporter.reportError("SSR Error - ".concat(reporterContent), e);
|
|
67
|
-
metricsContent && metrics.emitCounter(metricsContent, 1);
|
|
68
57
|
loggerContent && logger.error(loggerContent, e);
|
|
69
58
|
},
|
|
70
59
|
trackTiming: function trackTiming(key, cost) {
|
|
71
|
-
var _timings_key = timings[key], reporterName = _timings_key.reporter, serverTimingName = _timings_key.serverTiming, loggerName = _timings_key.logger
|
|
60
|
+
var _timings_key = timings[key], reporterName = _timings_key.reporter, serverTimingName = _timings_key.serverTiming, loggerName = _timings_key.logger;
|
|
72
61
|
reporterName && reporter.reportTiming(reporterName, cost);
|
|
73
62
|
serverTimingName && serverTiming.addServeTiming(serverTimingName, cost);
|
|
74
|
-
metricsName && metrics.emitTimer(metricsName, cost);
|
|
75
63
|
loggerName && logger.debug(loggerName, cost);
|
|
76
64
|
}
|
|
77
65
|
};
|
|
@@ -120,24 +120,20 @@ const ssrPlugin = () => ({
|
|
|
120
120
|
},
|
|
121
121
|
modifyEntryRuntimePlugins({ entrypoint, plugins, bundlerConfigs }) {
|
|
122
122
|
if (ssrConfigMap.get(entrypoint.entryName)) {
|
|
123
|
-
var _bundlerConfigs_find_output, _bundlerConfigs_find
|
|
123
|
+
var _bundlerConfigs_find_output, _bundlerConfigs_find;
|
|
124
124
|
const chunkLoadingGlobal = bundlerConfigs === null || bundlerConfigs === void 0 ? void 0 : (_bundlerConfigs_find = bundlerConfigs.find((config2) => config2.name === "client")) === null || _bundlerConfigs_find === void 0 ? void 0 : (_bundlerConfigs_find_output = _bundlerConfigs_find.output) === null || _bundlerConfigs_find_output === void 0 ? void 0 : _bundlerConfigs_find_output.chunkLoadingGlobal;
|
|
125
125
|
const config = api.useResolvedConfigContext();
|
|
126
126
|
const { enableInlineScripts, enableInlineStyles } = config.output;
|
|
127
127
|
const { crossorigin, scriptLoading } = config.html;
|
|
128
|
-
const disablePrerender = typeof ((_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr) === "object" ? Boolean(config.server.ssr.disablePrerender) : false;
|
|
129
|
-
const unsafeHeaders = typeof ((_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssr) === "object" ? config.server.ssr.unsafeHeaders : void 0;
|
|
130
128
|
plugins.push({
|
|
131
129
|
name: PLUGIN_IDENTIFIER,
|
|
132
130
|
options: JSON.stringify({
|
|
131
|
+
scriptLoading,
|
|
133
132
|
...ssrConfigMap.get(entrypoint.entryName) || {},
|
|
134
133
|
crossorigin,
|
|
135
|
-
scriptLoading,
|
|
136
134
|
chunkLoadingGlobal,
|
|
137
|
-
disablePrerender,
|
|
138
135
|
enableInlineScripts: typeof enableInlineScripts === "function" ? void 0 : enableInlineScripts,
|
|
139
|
-
enableInlineStyles: typeof enableInlineStyles === "function" ? void 0 : enableInlineStyles
|
|
140
|
-
unsafeHeaders
|
|
136
|
+
enableInlineStyles: typeof enableInlineStyles === "function" ? void 0 : enableInlineStyles
|
|
141
137
|
})
|
|
142
138
|
});
|
|
143
139
|
}
|
|
@@ -54,8 +54,7 @@ const prefetch = async (App, context, config, tracker) => run(context.ssrContext
|
|
|
54
54
|
Object.keys(loadersData).forEach((id) => {
|
|
55
55
|
const data = loadersData[id];
|
|
56
56
|
if (data._error) {
|
|
57
|
-
ssrContext.logger.error("App
|
|
58
|
-
ssrContext.metrics.emitCounter("app.prefetch.loader.error", 1);
|
|
57
|
+
ssrContext.logger.error("App Load use-loader", data._error);
|
|
59
58
|
delete data._error;
|
|
60
59
|
}
|
|
61
60
|
});
|
|
@@ -128,7 +128,6 @@ class Entry {
|
|
|
128
128
|
constructor(options) {
|
|
129
129
|
_define_property(this, "entryName", void 0);
|
|
130
130
|
_define_property(this, "result", void 0);
|
|
131
|
-
_define_property(this, "metrics", void 0);
|
|
132
131
|
_define_property(this, "tracker", void 0);
|
|
133
132
|
_define_property(this, "template", void 0);
|
|
134
133
|
_define_property(this, "App", void 0);
|
|
@@ -144,7 +143,6 @@ class Entry {
|
|
|
144
143
|
this.pluginConfig = config;
|
|
145
144
|
this.routeManifest = ctx.routeManifest;
|
|
146
145
|
this.tracker = ctx.tracker;
|
|
147
|
-
this.metrics = ctx.metrics;
|
|
148
146
|
this.htmlModifiers = ctx.htmlModifiers;
|
|
149
147
|
this.nonce = nonce;
|
|
150
148
|
this.result = {
|
|
@@ -72,7 +72,8 @@ class LoadableCollector {
|
|
|
72
72
|
const { scriptLoading = "defer", enableInlineScripts } = config;
|
|
73
73
|
const scriptLoadingAtr = {
|
|
74
74
|
defer: scriptLoading === "defer" ? true : void 0,
|
|
75
|
-
type: scriptLoading === "module" ? "module" : void 0
|
|
75
|
+
type: scriptLoading === "module" ? "module" : void 0,
|
|
76
|
+
async: scriptLoading === "async" ? true : void 0
|
|
76
77
|
};
|
|
77
78
|
const attributes = attributesToString(this.generateAttributes({
|
|
78
79
|
nonce,
|
|
@@ -16,69 +16,57 @@ var SSRErrors;
|
|
|
16
16
|
const errors = {
|
|
17
17
|
[0]: {
|
|
18
18
|
reporter: "App Prerender",
|
|
19
|
-
logger: "App Prerender"
|
|
20
|
-
metrics: "app.prerender.error"
|
|
19
|
+
logger: "App Prerender"
|
|
21
20
|
},
|
|
22
21
|
[1]: {
|
|
23
22
|
reporter: "App run useLoader",
|
|
24
|
-
logger: "App run useLoader"
|
|
25
|
-
metrics: "app.useloader.error"
|
|
23
|
+
logger: "App run useLoader"
|
|
26
24
|
},
|
|
27
25
|
[2]: {
|
|
28
26
|
reporter: "App Render To HTML",
|
|
29
|
-
logger: "App Render To HTML"
|
|
30
|
-
metrics: "app.render.html.error"
|
|
27
|
+
logger: "App Render To HTML"
|
|
31
28
|
},
|
|
32
29
|
[3]: {
|
|
33
30
|
reporter: "App Render To Streaming",
|
|
34
|
-
logger: "An error occurs during streaming SSR"
|
|
35
|
-
metrics: "app.render.streaming.error"
|
|
31
|
+
logger: "An error occurs during streaming SSR"
|
|
36
32
|
},
|
|
37
|
-
[4]: {
|
|
38
|
-
metrics: "app.render.streaming.shell.error"
|
|
39
|
-
}
|
|
33
|
+
[4]: {}
|
|
40
34
|
};
|
|
41
35
|
const timings = {
|
|
42
36
|
[0]: {
|
|
43
37
|
reporter: "ssr-prerender",
|
|
44
38
|
serverTiming: "ssr-prerender",
|
|
45
|
-
metrics: "app.prerender.cost",
|
|
46
39
|
logger: "App Prerender cost = %d ms"
|
|
47
40
|
},
|
|
48
41
|
[1]: {
|
|
49
42
|
reporter: "ssr-render-html",
|
|
50
43
|
serverTiming: "ssr-render-html",
|
|
51
|
-
metrics: "app.render.html.cost",
|
|
52
44
|
logger: "App Render To HTML cost = %d ms"
|
|
53
45
|
},
|
|
54
46
|
[2]: {
|
|
55
47
|
reporter: "ssr-render-shell",
|
|
56
|
-
metrics: "app.render.shell.cost",
|
|
57
48
|
logger: "App Render To Shell cost = %d ms"
|
|
58
49
|
},
|
|
59
50
|
[3]: {
|
|
60
51
|
reporter: "use-loader",
|
|
61
52
|
serverTiming: "use-loader",
|
|
62
|
-
metrics: "app.useloader.cost",
|
|
63
53
|
logger: "App run useLoader cost = %d ms"
|
|
64
54
|
}
|
|
65
55
|
};
|
|
66
|
-
function createSSRTracker({ reporter, serverTiming,
|
|
56
|
+
function createSSRTracker({ reporter, serverTiming, logger }) {
|
|
67
57
|
const tracker = {
|
|
68
58
|
get sessionId() {
|
|
69
59
|
return reporter.sessionId;
|
|
70
60
|
},
|
|
71
61
|
trackError(key, e) {
|
|
72
|
-
const { reporter: reporterContent,
|
|
62
|
+
const { reporter: reporterContent, logger: loggerContent } = errors[key];
|
|
73
63
|
reporterContent && reporter.reportError(`SSR Error - ${reporterContent}`, e);
|
|
74
|
-
metricsContent && metrics.emitCounter(metricsContent, 1);
|
|
75
64
|
loggerContent && logger.error(loggerContent, e);
|
|
76
65
|
},
|
|
77
66
|
trackTiming(key, cost) {
|
|
78
|
-
const { reporter: reporterName, serverTiming: serverTimingName, logger: loggerName
|
|
67
|
+
const { reporter: reporterName, serverTiming: serverTimingName, logger: loggerName } = timings[key];
|
|
79
68
|
reporterName && reporter.reportTiming(reporterName, cost);
|
|
80
69
|
serverTimingName && serverTiming.addServeTiming(serverTimingName, cost);
|
|
81
|
-
metricsName && metrics.emitTimer(metricsName, cost);
|
|
82
70
|
loggerName && logger.debug(loggerName, cost);
|
|
83
71
|
}
|
|
84
72
|
};
|
|
@@ -13,7 +13,7 @@ export declare enum SSRErrors {
|
|
|
13
13
|
RENDER_STREAM = 3,
|
|
14
14
|
RENDER_SHELL = 4
|
|
15
15
|
}
|
|
16
|
-
export declare function createSSRTracker({ reporter, serverTiming,
|
|
16
|
+
export declare function createSSRTracker({ reporter, serverTiming, logger, }: BaseSSRServerContext): {
|
|
17
17
|
readonly sessionId: string | undefined;
|
|
18
18
|
trackError(key: SSRErrors, e: Error): void;
|
|
19
19
|
trackTiming(key: SSRTimings, cost: number): void;
|
|
@@ -30,7 +30,7 @@ export type ModernSSRReactComponent = React.ComponentType<any>;
|
|
|
30
30
|
export { RuntimeContext };
|
|
31
31
|
export type SSRPluginConfig = {
|
|
32
32
|
crossorigin?: boolean | 'anonymous' | 'use-credentials';
|
|
33
|
-
scriptLoading?: 'defer' | 'blocking' | 'module';
|
|
33
|
+
scriptLoading?: 'defer' | 'blocking' | 'module' | 'async';
|
|
34
34
|
enableInlineStyles?: boolean | RegExp;
|
|
35
35
|
enableInlineScripts?: boolean | RegExp;
|
|
36
36
|
disablePrerender?: boolean;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.45.0",
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=14.17.6"
|
|
21
21
|
},
|
|
@@ -171,10 +171,10 @@
|
|
|
171
171
|
"react-side-effect": "^2.1.1",
|
|
172
172
|
"styled-components": "^5.3.1",
|
|
173
173
|
"@swc/helpers": "0.5.3",
|
|
174
|
-
"@modern-js/
|
|
175
|
-
"@modern-js/
|
|
176
|
-
"@modern-js/
|
|
177
|
-
"@modern-js/
|
|
174
|
+
"@modern-js/plugin": "2.45.0",
|
|
175
|
+
"@modern-js/types": "2.45.0",
|
|
176
|
+
"@modern-js/utils": "2.45.0",
|
|
177
|
+
"@modern-js/runtime-utils": "2.45.0"
|
|
178
178
|
},
|
|
179
179
|
"peerDependencies": {
|
|
180
180
|
"react": ">=17",
|
|
@@ -195,11 +195,11 @@
|
|
|
195
195
|
"ts-jest": "^29.1.0",
|
|
196
196
|
"typescript": "^5",
|
|
197
197
|
"webpack": "^5.89.0",
|
|
198
|
-
"@modern-js/app-tools": "2.
|
|
199
|
-
"@modern-js/core": "2.
|
|
200
|
-
"@modern-js/server-core": "2.
|
|
201
|
-
"@scripts/build": "2.
|
|
202
|
-
"@scripts/jest-config": "2.
|
|
198
|
+
"@modern-js/app-tools": "2.45.0",
|
|
199
|
+
"@modern-js/core": "2.45.0",
|
|
200
|
+
"@modern-js/server-core": "2.45.0",
|
|
201
|
+
"@scripts/build": "2.45.0",
|
|
202
|
+
"@scripts/jest-config": "2.45.0"
|
|
203
203
|
},
|
|
204
204
|
"sideEffects": false,
|
|
205
205
|
"publishConfig": {
|