@modern-js/server-core 2.55.0 → 2.56.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/cjs/adapters/node/plugins/resource.js +1 -1
  2. package/dist/cjs/constants.js +12 -9
  3. package/dist/cjs/plugins/customServer/index.js +35 -8
  4. package/dist/cjs/plugins/index.js +7 -3
  5. package/dist/cjs/plugins/log.js +3 -3
  6. package/dist/cjs/plugins/monitors.js +183 -0
  7. package/dist/cjs/plugins/render/index.js +5 -3
  8. package/dist/cjs/plugins/render/render.js +4 -11
  9. package/dist/cjs/utils/error.js +3 -3
  10. package/dist/esm/adapters/node/plugins/resource.js +1 -1
  11. package/dist/esm/constants.js +10 -8
  12. package/dist/esm/plugins/customServer/index.js +86 -36
  13. package/dist/esm/plugins/index.js +4 -2
  14. package/dist/esm/plugins/log.js +4 -4
  15. package/dist/esm/plugins/monitors.js +261 -0
  16. package/dist/esm/plugins/render/index.js +5 -3
  17. package/dist/esm/plugins/render/render.js +5 -12
  18. package/dist/esm/utils/error.js +3 -3
  19. package/dist/esm-node/adapters/node/plugins/resource.js +1 -1
  20. package/dist/esm-node/constants.js +10 -8
  21. package/dist/esm-node/plugins/customServer/index.js +26 -9
  22. package/dist/esm-node/plugins/index.js +4 -2
  23. package/dist/esm-node/plugins/log.js +3 -3
  24. package/dist/esm-node/plugins/monitors.js +156 -0
  25. package/dist/esm-node/plugins/render/index.js +4 -2
  26. package/dist/esm-node/plugins/render/render.js +4 -11
  27. package/dist/esm-node/utils/error.js +3 -3
  28. package/dist/types/constants.d.ts +2 -1
  29. package/dist/types/plugins/index.d.ts +1 -1
  30. package/dist/types/plugins/monitors.d.ts +6 -0
  31. package/dist/types/types/render.d.ts +7 -4
  32. package/dist/types/types/requestHandler.d.ts +0 -2
  33. package/dist/types/types/server.d.ts +6 -2
  34. package/dist/types/utils/error.d.ts +2 -2
  35. package/package.json +7 -7
  36. package/dist/cjs/plugins/monitor.js +0 -87
  37. package/dist/cjs/plugins/render/serverTiming.js +0 -42
  38. package/dist/esm/plugins/monitor.js +0 -120
  39. package/dist/esm/plugins/render/serverTiming.js +0 -29
  40. package/dist/esm-node/plugins/monitor.js +0 -62
  41. package/dist/esm-node/plugins/render/serverTiming.js +0 -18
  42. package/dist/types/plugins/monitor.d.ts +0 -9
  43. package/dist/types/plugins/render/serverTiming.d.ts +0 -8
@@ -3,7 +3,7 @@ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
3
3
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
4
  import { time } from "@modern-js/runtime-utils/time";
5
5
  import { transformResponse } from "../../utils";
6
- import { ServerReportTimings } from "../../constants";
6
+ import { ServerTimings } from "../../constants";
7
7
  import { getLoaderCtx } from "./loader";
8
8
  import { getAfterMatchCtx, getAfterRenderCtx, createCustomMiddlewaresCtx, createAfterStreamingRenderContext } from "./context";
9
9
  import { createBaseHookContext } from "./base";
@@ -37,14 +37,14 @@ var CustomServer = /* @__PURE__ */ function() {
37
37
  var _this = this;
38
38
  return function() {
39
39
  var _ref = _async_to_generator(function(c, next) {
40
- var routeInfo, reporter, baseHookCtx, afterMatchCtx, getCost, cost, _afterMatchCtx_router, url, status, current, rewriteRoute, afterStreamingRenderContext, afterRenderCtx, getCost1, cost1, newBody;
40
+ var routeInfo, monitors, baseHookCtx, afterMatchCtx, getCost, cost, _afterMatchCtx_router, url, status, current, rewriteRoute, afterStreamingRenderContext, afterRenderCtx, getCost1, cost1, newBody;
41
41
  return _ts_generator(this, function(_state) {
42
42
  switch (_state.label) {
43
43
  case 0:
44
44
  routeInfo = routes.find(function(route) {
45
45
  return route.entryName === entryName;
46
46
  });
47
- reporter = c.get("reporter");
47
+ monitors = c.get("monitors");
48
48
  baseHookCtx = createBaseHookContext(c);
49
49
  afterMatchCtx = getAfterMatchCtx(entryName, baseHookCtx);
50
50
  getCost = time();
@@ -57,7 +57,7 @@ var CustomServer = /* @__PURE__ */ function() {
57
57
  case 1:
58
58
  _state.sent();
59
59
  cost = getCost();
60
- cost && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(ServerReportTimings.SERVER_HOOK_AFTER_MATCH, cost));
60
+ cost && (monitors === null || monitors === void 0 ? void 0 : monitors.timing(ServerTimings.SERVER_HOOK_AFTER_MATCH, cost));
61
61
  _afterMatchCtx_router = afterMatchCtx.router, url = _afterMatchCtx_router.url, status = _afterMatchCtx_router.status;
62
62
  if (url) {
63
63
  return [
@@ -137,7 +137,7 @@ var CustomServer = /* @__PURE__ */ function() {
137
137
  case 5:
138
138
  _state.sent();
139
139
  cost1 = getCost1();
140
- cost1 && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(ServerReportTimings.SERVER_HOOK_AFTER_RENDER, cost1));
140
+ cost1 && (monitors === null || monitors === void 0 ? void 0 : monitors.timing(ServerTimings.SERVER_HOOK_AFTER_RENDER, cost1));
141
141
  if (afterRenderCtx.response.private_overrided) {
142
142
  return [
143
143
  2,
@@ -187,11 +187,11 @@ var CustomServer = /* @__PURE__ */ function() {
187
187
  2,
188
188
  function() {
189
189
  var _ref = _async_to_generator(function(c, next) {
190
- var _c_env_node_res, _c_env_node, _c_env, reporter, locals, resArgs, customMiddlewareCtx, getCost, cost;
190
+ var _c_env_node_res, _c_env_node, _c_env, monitors, locals, resArgs, customMiddlewareCtx, getCost, cost;
191
191
  return _ts_generator(this, function(_state2) {
192
192
  switch (_state2.label) {
193
193
  case 0:
194
- reporter = c.get("reporter");
194
+ monitors = c.get("monitors");
195
195
  locals = {};
196
196
  resArgs = {
197
197
  headers: new Headers()
@@ -205,7 +205,7 @@ var CustomServer = /* @__PURE__ */ function() {
205
205
  case 1:
206
206
  _state2.sent();
207
207
  cost = getCost();
208
- cost && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(ServerReportTimings.SERVER_MIDDLEWARE, cost));
208
+ cost && (monitors === null || monitors === void 0 ? void 0 : monitors.timing(ServerTimings.SERVER_MIDDLEWARE, cost));
209
209
  c.set("locals", locals);
210
210
  if (isRedirect(resArgs.headers, resArgs.status)) {
211
211
  return [
@@ -248,11 +248,19 @@ function getServerMidFromUnstableMid(serverMiddleware) {
248
248
  var _ref = _async_to_generator(function(c, next) {
249
249
  var context;
250
250
  return _ts_generator(this, function(_state) {
251
- context = createMiddlewareContextFromHono(c);
252
- return [
253
- 2,
254
- middleware(context, next)
255
- ];
251
+ switch (_state.label) {
252
+ case 0:
253
+ return [
254
+ 4,
255
+ createMiddlewareContextFromHono(c)
256
+ ];
257
+ case 1:
258
+ context = _state.sent();
259
+ return [
260
+ 2,
261
+ middleware(context, next)
262
+ ];
263
+ }
256
264
  });
257
265
  });
258
266
  return function(c, next) {
@@ -270,29 +278,71 @@ function isRedirect(headers, code) {
270
278
  ].includes(code || 0) || headers.get("Location");
271
279
  }
272
280
  function createMiddlewareContextFromHono(c) {
273
- var loaderContext = getLoaderCtx(c);
274
- return {
275
- get request() {
276
- return c.req.raw;
277
- },
278
- get response() {
279
- return c.res;
280
- },
281
- set response(newRes) {
282
- c.res = newRes;
283
- },
284
- get: function get(key) {
285
- return loaderContext.get(key);
286
- },
287
- set: function set(key, value) {
288
- return loaderContext.set(key, value);
289
- },
290
- status: c.status.bind(c),
291
- header: c.header.bind(c),
292
- body: c.body.bind(c),
293
- html: c.html.bind(c),
294
- redirect: c.redirect.bind(c)
295
- };
281
+ return _createMiddlewareContextFromHono.apply(this, arguments);
282
+ }
283
+ function _createMiddlewareContextFromHono() {
284
+ _createMiddlewareContextFromHono = _async_to_generator(function(c) {
285
+ var loaderContext, rawRequest, method, streamPath, createReadableStreamFromReadable, init;
286
+ return _ts_generator(this, function(_state) {
287
+ switch (_state.label) {
288
+ case 0:
289
+ loaderContext = getLoaderCtx(c);
290
+ rawRequest = c.req.raw;
291
+ method = rawRequest.method.toUpperCase();
292
+ if (!(![
293
+ "GET",
294
+ "HEAD"
295
+ ].includes(method) && !rawRequest.body && c.env.node.req))
296
+ return [
297
+ 3,
298
+ 2
299
+ ];
300
+ streamPath = "../../adapters/node/polyfills/stream";
301
+ return [
302
+ 4,
303
+ import(streamPath)
304
+ ];
305
+ case 1:
306
+ createReadableStreamFromReadable = _state.sent().createReadableStreamFromReadable;
307
+ init = {
308
+ body: createReadableStreamFromReadable(c.env.node.req),
309
+ headers: rawRequest.headers,
310
+ signal: rawRequest.signal,
311
+ method: rawRequest.method
312
+ };
313
+ init.duplex = "half";
314
+ rawRequest = new Request(rawRequest.url, init);
315
+ _state.label = 2;
316
+ case 2:
317
+ return [
318
+ 2,
319
+ {
320
+ get request() {
321
+ return rawRequest;
322
+ },
323
+ get response() {
324
+ return c.res;
325
+ },
326
+ set response(newRes) {
327
+ c.res = newRes;
328
+ },
329
+ get: function get(key) {
330
+ return loaderContext.get(key);
331
+ },
332
+ set: function set(key, value) {
333
+ return loaderContext.set(key, value);
334
+ },
335
+ status: c.status.bind(c),
336
+ header: c.header.bind(c),
337
+ body: c.body.bind(c),
338
+ html: c.html.bind(c),
339
+ redirect: c.redirect.bind(c)
340
+ }
341
+ ];
342
+ }
343
+ });
344
+ });
345
+ return _createMiddlewareContextFromHono.apply(this, arguments);
296
346
  }
297
347
  export {
298
348
  CustomServer,
@@ -3,13 +3,15 @@ import { faviconPlugin } from "./favicon";
3
3
  import { processedByPlugin } from "./processedBy";
4
4
  import { getLoaderCtx } from "./customServer";
5
5
  import { logPlugin } from "./log";
6
- import { monitorPlugin } from "./monitor";
6
+ import { initMonitorsPlugin, injectServerTiming, injectloggerPluigin } from "./monitors";
7
7
  export {
8
8
  faviconPlugin,
9
9
  getLoaderCtx,
10
10
  getRenderHandler,
11
+ initMonitorsPlugin,
12
+ injectServerTiming,
13
+ injectloggerPluigin,
11
14
  logPlugin,
12
- monitorPlugin,
13
15
  processedByPlugin,
14
16
  renderPlugin
15
17
  };
@@ -41,13 +41,13 @@ function log(fn, prefix, method, path) {
41
41
  function logHandler() {
42
42
  return function() {
43
43
  var _logger = _async_to_generator(function(c, next) {
44
- var method, _$logger, path, logFn, start;
44
+ var method, monitors, path, logFn, start;
45
45
  return _ts_generator(this, function(_state) {
46
46
  switch (_state.label) {
47
47
  case 0:
48
48
  method = c.req.method;
49
- _$logger = c.get("logger");
50
- if (!!_$logger)
49
+ monitors = c.get("monitors");
50
+ if (!!monitors)
51
51
  return [
52
52
  3,
53
53
  2
@@ -63,7 +63,7 @@ function logHandler() {
63
63
  ];
64
64
  case 2:
65
65
  path = getPathname(c.req.raw);
66
- logFn = _$logger.debug;
66
+ logFn = monitors.debug;
67
67
  log(logFn, "<--", method, path);
68
68
  start = Date.now();
69
69
  return [
@@ -0,0 +1,261 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
3
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
+ import { time } from "@modern-js/runtime-utils/time";
5
+ import { SERVER_TIMING, ServerTimings } from "../constants";
6
+ function createMonitors() {
7
+ var coreMonitors = [];
8
+ var log = function(level, message, args) {
9
+ var event = {
10
+ type: "log",
11
+ payload: {
12
+ level,
13
+ message,
14
+ args
15
+ }
16
+ };
17
+ coreMonitors.forEach(function(monitor) {
18
+ return monitor(event);
19
+ });
20
+ };
21
+ var mointors = {
22
+ push: function push(monitor) {
23
+ coreMonitors.push(monitor);
24
+ },
25
+ error: function error(message) {
26
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
27
+ args[_key - 1] = arguments[_key];
28
+ }
29
+ log("error", message, args);
30
+ },
31
+ warn: function warn(message) {
32
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
33
+ args[_key - 1] = arguments[_key];
34
+ }
35
+ log("warn", message, args);
36
+ },
37
+ debug: function debug(message) {
38
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
39
+ args[_key - 1] = arguments[_key];
40
+ }
41
+ log("debug", message, args);
42
+ },
43
+ info: function info(message) {
44
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
45
+ args[_key - 1] = arguments[_key];
46
+ }
47
+ log("info", message, args);
48
+ },
49
+ timing: function timing(name, dur, desc) {
50
+ var event = {
51
+ type: "timing",
52
+ payload: {
53
+ name,
54
+ dur,
55
+ desc
56
+ }
57
+ };
58
+ coreMonitors.forEach(function(monitor) {
59
+ return monitor(event);
60
+ });
61
+ }
62
+ };
63
+ return mointors;
64
+ }
65
+ var initMonitorsPlugin = function() {
66
+ return {
67
+ name: "@modern-js/init-mointor",
68
+ setup: function setup(api) {
69
+ return {
70
+ prepare: function prepare() {
71
+ var middlewares = api.useAppContext().middlewares;
72
+ middlewares.push({
73
+ name: "init-monitor",
74
+ handler: function() {
75
+ var _ref = _async_to_generator(function(c, next) {
76
+ var monitors;
77
+ return _ts_generator(this, function(_state) {
78
+ if (!c.get("monitors")) {
79
+ monitors = createMonitors();
80
+ c.set("monitors", monitors);
81
+ }
82
+ return [
83
+ 2,
84
+ next()
85
+ ];
86
+ });
87
+ });
88
+ return function(c, next) {
89
+ return _ref.apply(this, arguments);
90
+ };
91
+ }(),
92
+ order: "pre"
93
+ });
94
+ }
95
+ };
96
+ }
97
+ };
98
+ };
99
+ var injectloggerPluigin = function(logger) {
100
+ return {
101
+ name: "@modern-js/inject-logger",
102
+ setup: function setup(api) {
103
+ return {
104
+ prepare: function prepare() {
105
+ var middlewares = api.useAppContext().middlewares;
106
+ middlewares.push({
107
+ name: "inject-logger",
108
+ handler: function() {
109
+ var _ref = _async_to_generator(function(c, next) {
110
+ var pathname, loggerMonitor, monitors;
111
+ return _ts_generator(this, function(_state) {
112
+ if (!c.get("logger")) {
113
+ c.set("logger", logger);
114
+ }
115
+ pathname = c.req.path;
116
+ loggerMonitor = function(event) {
117
+ if (event.type === "log") {
118
+ var _logger;
119
+ var _event_payload = event.payload, level = _event_payload.level, message = _event_payload.message, args = _event_payload.args;
120
+ (_logger = logger)[level].apply(_logger, [
121
+ message
122
+ ].concat(_to_consumable_array(args || [])));
123
+ }
124
+ if (event.type === "timing") {
125
+ var _event_payload1 = event.payload, name = _event_payload1.name, dur = _event_payload1.dur, desc = _event_payload1.desc;
126
+ if (desc) {
127
+ logger.debug("%s Debug - ".concat(name, ", cost: %s, req.url = %s "), desc, dur, pathname);
128
+ } else {
129
+ logger.debug("Debug - ".concat(name, ", cost: %s, req.url = %s"), dur, pathname);
130
+ }
131
+ }
132
+ };
133
+ monitors = c.get("monitors");
134
+ monitors === null || monitors === void 0 ? void 0 : monitors.push(loggerMonitor);
135
+ return [
136
+ 2,
137
+ next()
138
+ ];
139
+ });
140
+ });
141
+ return function(c, next) {
142
+ return _ref.apply(this, arguments);
143
+ };
144
+ }()
145
+ });
146
+ }
147
+ };
148
+ }
149
+ };
150
+ };
151
+ var injectServerTiming = function() {
152
+ var metaName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "modern-js";
153
+ return {
154
+ name: "@modern-js/inject-server-timing",
155
+ setup: function setup(api) {
156
+ return {
157
+ prepare: function prepare() {
158
+ var middlewares = api.useAppContext().middlewares;
159
+ middlewares.push({
160
+ name: "inject-server-timing",
161
+ handler: function() {
162
+ var _ref = _async_to_generator(function(c, next) {
163
+ var serverTimings, timingMonitor, monitors;
164
+ return _ts_generator(this, function(_state) {
165
+ switch (_state.label) {
166
+ case 0:
167
+ serverTimings = [];
168
+ timingMonitor = function(event) {
169
+ if (event.type === "timing") {
170
+ serverTimings.push(event.payload);
171
+ }
172
+ };
173
+ monitors = c.get("monitors");
174
+ monitors === null || monitors === void 0 ? void 0 : monitors.push(timingMonitor);
175
+ return [
176
+ 4,
177
+ next()
178
+ ];
179
+ case 1:
180
+ _state.sent();
181
+ serverTimings.forEach(function(serverTiming) {
182
+ var name = serverTiming.name, desc = serverTiming.desc, dur = serverTiming.dur;
183
+ var _name = "bd-".concat(metaName, "-").concat(name);
184
+ var value = "".concat(_name, ";").concat(desc ? 'decs="'.concat(desc, '";') : "", " dur=").concat(dur);
185
+ c.header(SERVER_TIMING, value, {
186
+ append: true
187
+ });
188
+ });
189
+ return [
190
+ 2
191
+ ];
192
+ }
193
+ });
194
+ });
195
+ return function(c, next) {
196
+ return _ref.apply(this, arguments);
197
+ };
198
+ }()
199
+ });
200
+ }
201
+ };
202
+ }
203
+ };
204
+ };
205
+ function initReporter(entryName) {
206
+ return function() {
207
+ var _ref = _async_to_generator(function(c, next) {
208
+ var reporter, getCost, cost;
209
+ return _ts_generator(this, function(_state) {
210
+ switch (_state.label) {
211
+ case 0:
212
+ reporter = c.get("reporter");
213
+ if (!!reporter)
214
+ return [
215
+ 3,
216
+ 2
217
+ ];
218
+ return [
219
+ 4,
220
+ next()
221
+ ];
222
+ case 1:
223
+ _state.sent();
224
+ return [
225
+ 2
226
+ ];
227
+ case 2:
228
+ return [
229
+ 4,
230
+ reporter.init({
231
+ entryName
232
+ })
233
+ ];
234
+ case 3:
235
+ _state.sent();
236
+ getCost = time();
237
+ return [
238
+ 4,
239
+ next()
240
+ ];
241
+ case 4:
242
+ _state.sent();
243
+ cost = getCost();
244
+ reporter.reportTiming(ServerTimings.SERVER_HANDLE_REQUEST, cost);
245
+ return [
246
+ 2
247
+ ];
248
+ }
249
+ });
250
+ });
251
+ return function(c, next) {
252
+ return _ref.apply(this, arguments);
253
+ };
254
+ }();
255
+ }
256
+ export {
257
+ initMonitorsPlugin,
258
+ initReporter,
259
+ injectServerTiming,
260
+ injectloggerPluigin
261
+ };
@@ -1,7 +1,7 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
3
  import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
4
- import { initReporter } from "../monitor";
4
+ import { initReporter } from "../monitors";
5
5
  import { sortRoutes } from "../../utils";
6
6
  import { getLoaderCtx, CustomServer, getServerMidFromUnstableMid } from "../customServer";
7
7
  import { createRender } from "./render";
@@ -150,12 +150,13 @@ function getPageRoutes(routes) {
150
150
  function createRenderHandler(render) {
151
151
  return function() {
152
152
  var _ref = _async_to_generator(function(c, _) {
153
- var _c_env_node, logger, reporter, templates, serverManifest, locals, metrics, loaderContext, request, nodeReq, res, body, status, headers, headersData;
153
+ var _c_env_node, logger, reporter, monitors, templates, serverManifest, locals, metrics, loaderContext, request, nodeReq, res, body, status, headers, headersData;
154
154
  return _ts_generator(this, function(_state) {
155
155
  switch (_state.label) {
156
156
  case 0:
157
157
  logger = c.get("logger");
158
158
  reporter = c.get("reporter");
159
+ monitors = c.get("monitors");
159
160
  templates = c.get("templates") || {};
160
161
  serverManifest = c.get("serverManifest") || {};
161
162
  locals = c.get("locals");
@@ -166,8 +167,9 @@ function createRenderHandler(render) {
166
167
  return [
167
168
  4,
168
169
  render(request, {
169
- logger,
170
170
  nodeReq,
171
+ monitors,
172
+ logger,
171
173
  reporter,
172
174
  templates,
173
175
  metrics,
@@ -12,7 +12,6 @@ import { parseQuery, getPathname, createErrorHtml, sortRoutes, transformResponse
12
12
  import { REPLACE_REG, X_MODERNJS_RENDER } from "../../constants";
13
13
  import { dataHandler } from "./dataHandler";
14
14
  import { ssrRender } from "./ssrRender";
15
- import { ServerTiming } from "./serverTiming";
16
15
  var DYNAMIC_ROUTE_REG = /\/:./;
17
16
  function getRouter(routes) {
18
17
  var dynamicRoutes = [];
@@ -63,7 +62,6 @@ function getHeadersWithoutCookie(headers) {
63
62
  delete _headers.cookie;
64
63
  return _headers;
65
64
  }
66
- var SERVER_TIMING = "Server-Timing";
67
65
  function createRender(_) {
68
66
  return _createRender.apply(this, arguments);
69
67
  }
@@ -77,11 +75,11 @@ function _createRender() {
77
75
  2,
78
76
  function() {
79
77
  var _ref = _async_to_generator(function(req, param2) {
80
- var logger, nodeReq, reporter, templates, serverManifest, locals, metrics, loaderContext, _matchRoute, routeInfo, params, onFallback, html, renderMode, pathname, headerData, serverTimingInstance, onError, onTiming, onBoundError, renderOptions, response, _tmp;
78
+ var logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, locals, loaderContext, _matchRoute, routeInfo, params, onFallback, html, renderMode, pathname, headerData, onError, onTiming, onBoundError, renderOptions, response, _tmp;
81
79
  return _ts_generator(this, function(_state2) {
82
80
  switch (_state2.label) {
83
81
  case 0:
84
- logger = param2.logger, nodeReq = param2.nodeReq, reporter = param2.reporter, templates = param2.templates, serverManifest = param2.serverManifest, locals = param2.locals, metrics = param2.metrics, loaderContext = param2.loaderContext;
82
+ logger = param2.logger, reporter = param2.reporter, metrics = param2.metrics, monitors = param2.monitors, nodeReq = param2.nodeReq, templates = param2.templates, serverManifest = param2.serverManifest, locals = param2.locals, loaderContext = param2.loaderContext;
85
83
  _matchRoute = _sliced_to_array(matchRoute(router, req), 2), routeInfo = _matchRoute[0], params = _matchRoute[1];
86
84
  onFallback = function() {
87
85
  var _ref2 = _async_to_generator(function(reason, error) {
@@ -131,20 +129,18 @@ function _createRender() {
131
129
  renderMode = _state2.sent();
132
130
  pathname = getPathname(req);
133
131
  headerData = parseHeaders(req);
134
- serverTimingInstance = new ServerTiming(metaName || "modern");
135
132
  onError = function(e) {
136
- logger.error("SSR Error - ".concat(_instanceof(e, Error) ? e.name : e, ", error = %s, req.url = %s, req.headers = %o"), _instanceof(e, Error) ? e.stack || e.message : e, pathname, getHeadersWithoutCookie(headerData));
133
+ monitors === null || monitors === void 0 ? void 0 : monitors.error("SSR Error - ".concat(_instanceof(e, Error) ? e.name : e, ", error = %s, req.url = %s, req.headers = %o"), _instanceof(e, Error) ? e.stack || e.message : e, pathname, getHeadersWithoutCookie(headerData));
137
134
  };
138
135
  onTiming = function(name, dur) {
139
- logger.debug("SSR Debug - ".concat(name, ", cost = %s, req.url = %s"), dur, pathname);
140
- serverTimingInstance.addServeTiming(name, dur);
136
+ monitors === null || monitors === void 0 ? void 0 : monitors.timing(name, dur, "SSR");
141
137
  };
142
138
  onBoundError = function() {
143
139
  var _ref2 = _async_to_generator(function(e) {
144
140
  return _ts_generator(this, function(_state3) {
145
141
  switch (_state3.label) {
146
142
  case 0:
147
- onErrorFn(ErrorDigest.ERENDER, e, logger, req);
143
+ onErrorFn(ErrorDigest.ERENDER, e, monitors, req);
148
144
  return [
149
145
  4,
150
146
  onFallback === null || onFallback === void 0 ? void 0 : onFallback("error", e)
@@ -240,9 +236,6 @@ function _createRender() {
240
236
  case 8:
241
237
  throw new Error("Unknown render mode: ".concat(renderMode));
242
238
  case 9:
243
- serverTimingInstance.headers.forEach(function(value) {
244
- response.headers.append(SERVER_TIMING, value);
245
- });
246
239
  return [
247
240
  2,
248
241
  response
@@ -15,11 +15,11 @@ var ErrorDigest;
15
15
  ErrorDigest2["EINTER"] = "Internal server error";
16
16
  ErrorDigest2["ERENDER"] = "SSR render failed";
17
17
  })(ErrorDigest || (ErrorDigest = {}));
18
- function onError(digest, error, logger, req) {
18
+ function onError(digest, error, monitors, req) {
19
19
  var headerData = req && parseHeaders(req);
20
20
  headerData && delete headerData.cookie;
21
- if (logger) {
22
- logger.error(req ? "Server Error - ".concat(digest, ", error = %s, req.url = %s, req.headers = %o") : "Server Error - ".concat(digest, ", error = %s"), _instanceof(error, Error) ? error.stack || error.message : error, req === null || req === void 0 ? void 0 : req.url, headerData);
21
+ if (monitors) {
22
+ monitors.error(req ? "Server Error - ".concat(digest, ", error = %s, req.url = %s, req.headers = %o") : "Server Error - ".concat(digest, ", error = %s"), _instanceof(error, Error) ? error.stack || error.message : error, req === null || req === void 0 ? void 0 : req.url, headerData);
23
23
  } else if (req) {
24
24
  console.error("Server Error - ".concat(digest, ", error = ").concat(_instanceof(error, Error) ? error.stack || error.message : error, ", req.url = ").concat(req.url, ", req.headers = ").concat(JSON.stringify(headerData)));
25
25
  } else {
@@ -40,7 +40,7 @@ const loadBundle = async (filepath, logger) => {
40
40
  return void 0;
41
41
  }
42
42
  return dynamicImport(filepath).catch((e) => {
43
- logger.error(`Load ${filepath} bundle failed, error = %s`, e instanceof Error ? e.stack || e.message : e);
43
+ logger === null || logger === void 0 ? void 0 : logger.error(`Load ${filepath} bundle failed, error = %s`, e instanceof Error ? e.stack || e.message : e);
44
44
  return void 0;
45
45
  });
46
46
  };
@@ -15,19 +15,21 @@ const REPLACE_REG = {
15
15
  body: "</body>"
16
16
  }
17
17
  };
18
- var ServerReportTimings;
19
- (function(ServerReportTimings2) {
20
- ServerReportTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
21
- ServerReportTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
22
- ServerReportTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
23
- ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
24
- })(ServerReportTimings || (ServerReportTimings = {}));
18
+ var ServerTimings;
19
+ (function(ServerTimings2) {
20
+ ServerTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
21
+ ServerTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
22
+ ServerTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
23
+ ServerTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
24
+ })(ServerTimings || (ServerTimings = {}));
25
+ const SERVER_TIMING = "Server-Timing";
25
26
  const X_RENDER_CACHE = "x-render-cache";
26
27
  const X_MODERNJS_RENDER = "x-modernjs-render";
27
28
  export {
28
29
  AGGRED_DIR,
29
30
  REPLACE_REG,
30
- ServerReportTimings,
31
+ SERVER_TIMING,
32
+ ServerTimings,
31
33
  X_MODERNJS_RENDER,
32
34
  X_RENDER_CACHE
33
35
  };