@modern-js/prod-server 2.48.0 → 2.48.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 (47) hide show
  1. package/dist/cjs/libs/context/context.js +4 -8
  2. package/dist/cjs/libs/hook-api/base.js +0 -11
  3. package/dist/cjs/libs/hook-api/index.worker.js +0 -3
  4. package/dist/cjs/libs/hook-api/route.js +0 -4
  5. package/dist/cjs/libs/hook-api/template.js +0 -2
  6. package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -5
  7. package/dist/cjs/libs/render/ssrCache/manager.js +2 -3
  8. package/dist/cjs/libs/route/index.js +1 -3
  9. package/dist/cjs/libs/route/matcher.js +1 -5
  10. package/dist/cjs/libs/route/route.js +1 -10
  11. package/dist/cjs/libs/serverTiming.js +0 -3
  12. package/dist/cjs/renderHtml.js +0 -7
  13. package/dist/cjs/server/index.js +1 -7
  14. package/dist/cjs/server/modernServer.js +4 -20
  15. package/dist/cjs/workerServer.js +4 -8
  16. package/dist/esm/libs/context/context.js +66 -98
  17. package/dist/esm/libs/hook-api/base.js +36 -71
  18. package/dist/esm/libs/hook-api/index.worker.js +15 -29
  19. package/dist/esm/libs/hook-api/route.js +12 -27
  20. package/dist/esm/libs/hook-api/template.js +33 -61
  21. package/dist/esm/libs/render/ssrCache/cacheMod.js +10 -18
  22. package/dist/esm/libs/render/ssrCache/manager.js +145 -157
  23. package/dist/esm/libs/route/index.js +62 -96
  24. package/dist/esm/libs/route/matcher.js +58 -94
  25. package/dist/esm/libs/route/route.js +1 -10
  26. package/dist/esm/libs/serverTiming.js +8 -16
  27. package/dist/esm/renderHtml.js +22 -39
  28. package/dist/esm/server/index.js +307 -383
  29. package/dist/esm/server/modernServer.js +802 -942
  30. package/dist/esm/server/modernServerSplit.js +61 -86
  31. package/dist/esm/workerServer.js +87 -82
  32. package/dist/esm-node/libs/context/context.js +4 -8
  33. package/dist/esm-node/libs/hook-api/base.js +0 -11
  34. package/dist/esm-node/libs/hook-api/index.worker.js +0 -3
  35. package/dist/esm-node/libs/hook-api/route.js +0 -4
  36. package/dist/esm-node/libs/hook-api/template.js +0 -2
  37. package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -5
  38. package/dist/esm-node/libs/render/ssrCache/manager.js +2 -3
  39. package/dist/esm-node/libs/route/index.js +1 -3
  40. package/dist/esm-node/libs/route/matcher.js +1 -5
  41. package/dist/esm-node/libs/route/route.js +1 -10
  42. package/dist/esm-node/libs/serverTiming.js +0 -3
  43. package/dist/esm-node/renderHtml.js +0 -7
  44. package/dist/esm-node/server/index.js +1 -7
  45. package/dist/esm-node/server/modernServer.js +4 -20
  46. package/dist/esm-node/workerServer.js +4 -8
  47. package/package.json +8 -8
@@ -34,7 +34,6 @@ module.exports = __toCommonJS(context_exports);
34
34
  var import_class_private_field_get = require("@swc/helpers/_/_class_private_field_get");
35
35
  var import_class_private_field_init = require("@swc/helpers/_/_class_private_field_init");
36
36
  var import_class_private_field_set = require("@swc/helpers/_/_class_private_field_set");
37
- var import_define_property = require("@swc/helpers/_/_define_property");
38
37
  var import_url = require("url");
39
38
  var import_querystring = __toESM(require("querystring"));
40
39
  var import_buffer = require("buffer");
@@ -209,13 +208,6 @@ class ModernServerContext {
209
208
  this.logger.error(`Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, this.path, (0, import_utils2.headersWithoutCookie)(this.headers));
210
209
  }
211
210
  constructor(req, res, options) {
212
- (0, import_define_property._)(this, "req", void 0);
213
- (0, import_define_property._)(this, "res", void 0);
214
- (0, import_define_property._)(this, "params", {});
215
- (0, import_define_property._)(this, "reporter", import_reporter.defaultReporter);
216
- (0, import_define_property._)(this, "serverTiming", void 0);
217
- (0, import_define_property._)(this, "serverData", {});
218
- (0, import_define_property._)(this, "options", {});
219
211
  (0, import_class_private_field_init._)(this, _urls, {
220
212
  writable: true,
221
213
  value: void 0
@@ -224,6 +216,10 @@ class ModernServerContext {
224
216
  writable: true,
225
217
  value: void 0
226
218
  });
219
+ this.params = {};
220
+ this.reporter = import_reporter.defaultReporter;
221
+ this.serverData = {};
222
+ this.options = {};
227
223
  this.req = req;
228
224
  this.res = res;
229
225
  this.options = options || {};
@@ -32,7 +32,6 @@ __export(base_exports, {
32
32
  BaseResponse: () => BaseResponse
33
33
  });
34
34
  module.exports = __toCommonJS(base_exports);
35
- var import_define_property = require("@swc/helpers/_/_define_property");
36
35
  var import_cookie = __toESM(require("cookie"));
37
36
  class BaseResponse {
38
37
  get(key) {
@@ -66,8 +65,6 @@ class BaseResponse {
66
65
  this.res.end(body);
67
66
  }
68
67
  constructor(res) {
69
- (0, import_define_property._)(this, "cookies", void 0);
70
- (0, import_define_property._)(this, "res", void 0);
71
68
  this.res = res;
72
69
  this.cookies = {
73
70
  set: this.setCookie.bind(this),
@@ -80,14 +77,6 @@ class BaseRequest {
80
77
  return this._cookie[key];
81
78
  }
82
79
  constructor(request) {
83
- (0, import_define_property._)(this, "url", void 0);
84
- (0, import_define_property._)(this, "host", void 0);
85
- (0, import_define_property._)(this, "pathname", void 0);
86
- (0, import_define_property._)(this, "query", void 0);
87
- (0, import_define_property._)(this, "headers", void 0);
88
- (0, import_define_property._)(this, "cookie", void 0);
89
- (0, import_define_property._)(this, "cookies", void 0);
90
- (0, import_define_property._)(this, "_cookie", void 0);
91
80
  this.url = request.url;
92
81
  this.host = request.host;
93
82
  this.pathname = request.path;
@@ -24,7 +24,6 @@ __export(index_worker_exports, {
24
24
  createMiddlewareContext: () => createMiddlewareContext
25
25
  });
26
26
  module.exports = __toCommonJS(index_worker_exports);
27
- var import_define_property = require("@swc/helpers/_/_define_property");
28
27
  var import_base = require("./base");
29
28
  var import_route = require("./route");
30
29
  var import_template = require("./template");
@@ -50,8 +49,6 @@ class ServerResponse {
50
49
  this.res.isSent = true;
51
50
  }
52
51
  constructor(res) {
53
- (0, import_define_property._)(this, "locals", void 0);
54
- (0, import_define_property._)(this, "res", void 0);
55
52
  this.res = res;
56
53
  this.locals = res.locals;
57
54
  }
@@ -21,7 +21,6 @@ __export(route_exports, {
21
21
  RouteAPI: () => RouteAPI
22
22
  });
23
23
  module.exports = __toCommonJS(route_exports);
24
- var import_define_property = require("@swc/helpers/_/_define_property");
25
24
  class RouteAPI {
26
25
  redirect(url, status = 302) {
27
26
  this.url = url;
@@ -34,9 +33,6 @@ class RouteAPI {
34
33
  this.rewrite(entryName);
35
34
  }
36
35
  constructor(entryName) {
37
- (0, import_define_property._)(this, "current", void 0);
38
- (0, import_define_property._)(this, "status", void 0);
39
- (0, import_define_property._)(this, "url", void 0);
40
36
  this.current = entryName;
41
37
  this.status = 200;
42
38
  this.url = "";
@@ -22,7 +22,6 @@ __export(template_exports, {
22
22
  TemplateAPI: () => TemplateAPI
23
23
  });
24
24
  module.exports = __toCommonJS(template_exports);
25
- var import_define_property = require("@swc/helpers/_/_define_property");
26
25
  const RegList = {
27
26
  before: {
28
27
  head: "<head[^>]*>",
@@ -63,7 +62,6 @@ class TemplateAPI {
63
62
  this.content = this.content.replace(reg, text);
64
63
  }
65
64
  constructor(content) {
66
- (0, import_define_property._)(this, "content", void 0);
67
65
  this.content = content;
68
66
  }
69
67
  }
@@ -31,7 +31,6 @@ __export(cacheMod_exports, {
31
31
  cacheMod: () => cacheMod
32
32
  });
33
33
  module.exports = __toCommonJS(cacheMod_exports);
34
- var import_define_property = require("@swc/helpers/_/_define_property");
35
34
  var import_path = __toESM(require("path"));
36
35
  var import_utils = require("@modern-js/utils");
37
36
  const CACHE_FILENAME = "cache";
@@ -44,10 +43,6 @@ class ServerCacheMod {
44
43
  this.customContainer = mod === null || mod === void 0 ? void 0 : mod.customContainer;
45
44
  this.cacheOption = mod === null || mod === void 0 ? void 0 : mod.cacheOption;
46
45
  }
47
- constructor() {
48
- (0, import_define_property._)(this, "customContainer", void 0);
49
- (0, import_define_property._)(this, "cacheOption", void 0);
50
- }
51
46
  }
52
47
  const cacheMod = new ServerCacheMod();
53
48
  // Annotate the CommonJS export names for ESM import in node:
@@ -21,8 +21,8 @@ __export(manager_exports, {
21
21
  CacheManager: () => CacheManager
22
22
  });
23
23
  module.exports = __toCommonJS(manager_exports);
24
- var import_define_property = require("@swc/helpers/_/_define_property");
25
24
  var import_stream = require("stream");
25
+ var import_url = require("@modern-js/runtime-utils/url");
26
26
  class CacheManager {
27
27
  async getCacheResult(req, cacheControl, render, ssrContext) {
28
28
  const key = this.computedKey(req, cacheControl);
@@ -99,7 +99,7 @@ class CacheManager {
99
99
  const { url } = req;
100
100
  const [pathname] = url.split("?");
101
101
  const { customKey } = cacheControl;
102
- const defaultKey = pathname.replace(/.+\/+$/, "");
102
+ const defaultKey = (0, import_url.normalizePathname)(pathname);
103
103
  if (customKey) {
104
104
  if (typeof customKey === "string") {
105
105
  return customKey;
@@ -111,7 +111,6 @@ class CacheManager {
111
111
  }
112
112
  }
113
113
  constructor(container) {
114
- (0, import_define_property._)(this, "container", void 0);
115
114
  this.container = container;
116
115
  }
117
116
  }
@@ -22,7 +22,6 @@ __export(route_exports, {
22
22
  RouteMatcher: () => import_matcher.RouteMatcher
23
23
  });
24
24
  module.exports = __toCommonJS(route_exports);
25
- var import_define_property = require("@swc/helpers/_/_define_property");
26
25
  var import_matcher = require("./matcher");
27
26
  class RouteMatchManager {
28
27
  // get all routes matches pathname
@@ -73,8 +72,7 @@ class RouteMatchManager {
73
72
  return bundles;
74
73
  }
75
74
  constructor() {
76
- (0, import_define_property._)(this, "matchers", void 0);
77
- (0, import_define_property._)(this, "specs", []);
75
+ this.specs = [];
78
76
  this.matchers = [];
79
77
  }
80
78
  }
@@ -21,7 +21,6 @@ __export(matcher_exports, {
21
21
  RouteMatcher: () => RouteMatcher
22
22
  });
23
23
  module.exports = __toCommonJS(matcher_exports);
24
- var import_define_property = require("@swc/helpers/_/_define_property");
25
24
  var import_path_to_regexp = require("path-to-regexp");
26
25
  var import_route = require("./route");
27
26
  const removeTailSlash = (s) => s.replace(/\/+$/, "");
@@ -103,10 +102,7 @@ class RouteMatcher {
103
102
  }
104
103
  }
105
104
  constructor(spec) {
106
- (0, import_define_property._)(this, "spec", void 0);
107
- (0, import_define_property._)(this, "urlPath", "");
108
- (0, import_define_property._)(this, "urlMatcher", void 0);
109
- (0, import_define_property._)(this, "urlReg", void 0);
105
+ this.urlPath = "";
110
106
  this.spec = spec;
111
107
  this.setupUrlPath();
112
108
  }
@@ -21,18 +21,9 @@ __export(route_exports, {
21
21
  ModernRoute: () => ModernRoute
22
22
  });
23
23
  module.exports = __toCommonJS(route_exports);
24
- var import_define_property = require("@swc/helpers/_/_define_property");
25
24
  class ModernRoute {
26
25
  constructor(routeSpec) {
27
- (0, import_define_property._)(this, "entryName", void 0);
28
- (0, import_define_property._)(this, "urlPath", void 0);
29
- (0, import_define_property._)(this, "entryPath", void 0);
30
- (0, import_define_property._)(this, "bundle", void 0);
31
- (0, import_define_property._)(this, "isApi", void 0);
32
- (0, import_define_property._)(this, "isSSR", void 0);
33
- (0, import_define_property._)(this, "isSPA", void 0);
34
- (0, import_define_property._)(this, "params", {});
35
- (0, import_define_property._)(this, "responseHeaders", void 0);
26
+ this.params = {};
36
27
  this.entryName = routeSpec.entryName || "";
37
28
  this.urlPath = routeSpec.urlPath;
38
29
  this.entryPath = routeSpec.entryPath || "";
@@ -21,7 +21,6 @@ __export(serverTiming_exports, {
21
21
  ServerTiming: () => ServerTiming
22
22
  });
23
23
  module.exports = __toCommonJS(serverTiming_exports);
24
- var import_define_property = require("@swc/helpers/_/_define_property");
25
24
  const SERVER_TIMING = "Server-Timing";
26
25
  class ServerTiming {
27
26
  addServeTiming(name, dur, desc) {
@@ -32,8 +31,6 @@ class ServerTiming {
32
31
  return this;
33
32
  }
34
33
  constructor(res, meta) {
35
- (0, import_define_property._)(this, "meta", void 0);
36
- (0, import_define_property._)(this, "res", void 0);
37
34
  this.meta = meta;
38
35
  this.res = res;
39
36
  }
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var import_define_property = require("@swc/helpers/_/_define_property");
3
2
  var import_http = require("http");
4
3
  var import_stream = require("stream");
5
4
  var import_net = require("net");
@@ -8,10 +7,6 @@ var import_utils = require("./utils");
8
7
  class IncomingMessageLike extends import_stream.Readable {
9
8
  constructor({ method, url, headers }) {
10
9
  super();
11
- (0, import_define_property._)(this, "headers", void 0);
12
- (0, import_define_property._)(this, "method", void 0);
13
- (0, import_define_property._)(this, "url", void 0);
14
- (0, import_define_property._)(this, "socket", void 0);
15
10
  this.socket = new import_net.Socket();
16
11
  this.headers = headers || {};
17
12
  this.headers.host = "localhost:8080";
@@ -28,8 +23,6 @@ class ServerResponseLike extends import_http.OutgoingMessage {
28
23
  }
29
24
  constructor() {
30
25
  super();
31
- (0, import_define_property._)(this, "statusCode", void 0);
32
- (0, import_define_property._)(this, "data", void 0);
33
26
  this.statusCode = 200;
34
27
  this.data = [];
35
28
  }
@@ -31,7 +31,6 @@ __export(server_exports, {
31
31
  Server: () => Server
32
32
  });
33
33
  module.exports = __toCommonJS(server_exports);
34
- var import_define_property = require("@swc/helpers/_/_define_property");
35
34
  var import_path = __toESM(require("path"));
36
35
  var import_utils = require("@modern-js/utils");
37
36
  var import_server_core = require("@modern-js/server-core");
@@ -209,12 +208,7 @@ class Server {
209
208
  }
210
209
  }
211
210
  constructor(options) {
212
- (0, import_define_property._)(this, "options", void 0);
213
- (0, import_define_property._)(this, "serverImpl", import_modernServerSplit.createProdServer);
214
- (0, import_define_property._)(this, "server", void 0);
215
- (0, import_define_property._)(this, "app", void 0);
216
- (0, import_define_property._)(this, "runner", void 0);
217
- (0, import_define_property._)(this, "serverConfig", void 0);
211
+ this.serverImpl = import_modernServerSplit.createProdServer;
218
212
  options.logger = options.logger || (0, import_utils.createLogger)({
219
213
  level: "warn"
220
214
  });
@@ -31,7 +31,6 @@ __export(modernServer_exports, {
31
31
  ModernServer: () => ModernServer
32
32
  });
33
33
  module.exports = __toCommonJS(modernServer_exports);
34
- var import_define_property = require("@swc/helpers/_/_define_property");
35
34
  var import_http = require("http");
36
35
  var import_path = __toESM(require("path"));
37
36
  var import_utils = require("@modern-js/utils");
@@ -497,25 +496,10 @@ class ModernServer {
497
496
  context.res.end((0, import_utils2.createErrorDocument)(status, text));
498
497
  }
499
498
  constructor({ pwd, config, routes, staticGenerate, logger, metrics, runMode, proxyTarget, appContext }) {
500
- (0, import_define_property._)(this, "pwd", void 0);
501
- (0, import_define_property._)(this, "distDir", void 0);
502
- (0, import_define_property._)(this, "workDir", void 0);
503
- (0, import_define_property._)(this, "router", void 0);
504
- (0, import_define_property._)(this, "conf", void 0);
505
- (0, import_define_property._)(this, "handlers", []);
506
- (0, import_define_property._)(this, "presetRoutes", void 0);
507
- (0, import_define_property._)(this, "runner", void 0);
508
- (0, import_define_property._)(this, "logger", void 0);
509
- (0, import_define_property._)(this, "metrics", void 0);
510
- (0, import_define_property._)(this, "runMode", void 0);
511
- (0, import_define_property._)(this, "proxyTarget", void 0);
512
- (0, import_define_property._)(this, "routeRenderHandler", void 0);
513
- (0, import_define_property._)(this, "staticGenerate", void 0);
514
- (0, import_define_property._)(this, "metaName", void 0);
515
- (0, import_define_property._)(this, "loaderHandler", null);
516
- (0, import_define_property._)(this, "frameWebHandler", null);
517
- (0, import_define_property._)(this, "frameAPIHandler", null);
518
- (0, import_define_property._)(this, "_handler", void 0);
499
+ this.handlers = [];
500
+ this.loaderHandler = null;
501
+ this.frameWebHandler = null;
502
+ this.frameAPIHandler = null;
519
503
  require("ignore-styles");
520
504
  this.pwd = pwd;
521
505
  this.distDir = import_path.default.resolve(pwd, config.output.path || "dist");
@@ -22,7 +22,6 @@ __export(workerServer_exports, {
22
22
  createHandler: () => createHandler
23
23
  });
24
24
  module.exports = __toCommonJS(workerServer_exports);
25
- var import_define_property = require("@swc/helpers/_/_define_property");
26
25
  var import_plugin = require("@modern-js/plugin");
27
26
  var import_hook_api = require("./libs/hook-api/index.worker");
28
27
  var import_route = require("./libs/route");
@@ -75,9 +74,6 @@ class ReturnResponse {
75
74
  return this;
76
75
  }
77
76
  constructor(body, status, headers = {}) {
78
- (0, import_define_property._)(this, "body", void 0);
79
- (0, import_define_property._)(this, "status", void 0);
80
- (0, import_define_property._)(this, "headers", void 0);
81
77
  this.body = body;
82
78
  this.status = status;
83
79
  this.headers = new Headers(headers);
@@ -127,7 +123,7 @@ const createHandler = (manifest) => {
127
123
  const route = pageMatch.generate(url.pathname);
128
124
  const hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
129
125
  const afterMatchHookContext = (0, import_hook_api.createAfterMatchContext)(hookContext, entryName);
130
- page === null || page === void 0 ? void 0 : (_page_serverHooks = page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0);
126
+ await (page === null || page === void 0 ? void 0 : (_page_serverHooks = page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0));
131
127
  if (checkIsSent(hookContext)) {
132
128
  return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
133
129
  }
@@ -176,7 +172,7 @@ const createHandler = (manifest) => {
176
172
  };
177
173
  const body = await page.serverRender(serverRenderContext);
178
174
  const afterRenderHookContext = (0, import_hook_api.createAfterRenderContext)(hookContext, route, body);
179
- (_page_serverHooks2 = page.serverHooks) === null || _page_serverHooks2 === void 0 ? void 0 : (_page_serverHooks_afterRender = _page_serverHooks2.afterRender) === null || _page_serverHooks_afterRender === void 0 ? void 0 : _page_serverHooks_afterRender.call(_page_serverHooks2, afterRenderHookContext, () => void 0);
175
+ await ((_page_serverHooks2 = page.serverHooks) === null || _page_serverHooks2 === void 0 ? void 0 : (_page_serverHooks_afterRender = _page_serverHooks2.afterRender) === null || _page_serverHooks_afterRender === void 0 ? void 0 : _page_serverHooks_afterRender.call(_page_serverHooks2, afterRenderHookContext, () => void 0));
180
176
  if (checkIsSent(hookContext)) {
181
177
  return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
182
178
  }
@@ -235,7 +231,7 @@ function createWorkerHookContext(url, logger, metrics, reporter) {
235
231
  };
236
232
  }
237
233
  let appliedMiddlewares = false;
238
- function applyMiddlewares(ctx, middleware) {
234
+ async function applyMiddlewares(ctx, middleware) {
239
235
  if (middleware) {
240
236
  const middlewares = (() => {
241
237
  if (Array.isArray(middleware)) {
@@ -252,7 +248,7 @@ function applyMiddlewares(ctx, middleware) {
252
248
  });
253
249
  appliedMiddlewares = true;
254
250
  }
255
- middlewarePipeline.run(ctx, {
251
+ await middlewarePipeline.run(ctx, {
256
252
  onLast: () => void 0
257
253
  });
258
254
  }
@@ -3,7 +3,6 @@ import { _ as _class_private_field_get } from "@swc/helpers/_/_class_private_fie
3
3
  import { _ as _class_private_field_init } from "@swc/helpers/_/_class_private_field_init";
4
4
  import { _ as _class_private_field_set } from "@swc/helpers/_/_class_private_field_set";
5
5
  import { _ as _create_class } from "@swc/helpers/_/_create_class";
6
- import { _ as _define_property } from "@swc/helpers/_/_define_property";
7
6
  import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
8
7
  import { URL } from "url";
9
8
  import qs from "querystring";
@@ -20,13 +19,6 @@ var ModernServerContext = /* @__PURE__ */ function() {
20
19
  "use strict";
21
20
  function ModernServerContext2(req, res, options) {
22
21
  _class_call_check(this, ModernServerContext2);
23
- _define_property(this, "req", void 0);
24
- _define_property(this, "res", void 0);
25
- _define_property(this, "params", {});
26
- _define_property(this, "reporter", defaultReporter);
27
- _define_property(this, "serverTiming", void 0);
28
- _define_property(this, "serverData", {});
29
- _define_property(this, "options", {});
30
22
  _class_private_field_init(this, _urls, {
31
23
  writable: true,
32
24
  value: void 0
@@ -35,6 +27,10 @@ var ModernServerContext = /* @__PURE__ */ function() {
35
27
  writable: true,
36
28
  value: void 0
37
29
  });
30
+ this.params = {};
31
+ this.reporter = defaultReporter;
32
+ this.serverData = {};
33
+ this.options = {};
38
34
  this.req = req;
39
35
  this.res = res;
40
36
  this.options = options || {};
@@ -44,6 +40,68 @@ var ModernServerContext = /* @__PURE__ */ function() {
44
40
  this.serverTiming = new ServerTiming(this.res, cutNameByHyphen((options === null || options === void 0 ? void 0 : options.metaName) || "modern-js"));
45
41
  req.reporter && (this.reporter = req.reporter);
46
42
  }
43
+ var _proto = ModernServerContext2.prototype;
44
+ _proto.bind = function bind() {
45
+ var _this = this;
46
+ var _this1 = this, req = _this1.req, res = _this1.res;
47
+ req.get = function(key) {
48
+ return _this.getReqHeader(key);
49
+ };
50
+ res.set = function(key, value) {
51
+ if (!res.headersSent) {
52
+ res.setHeader(key, value);
53
+ }
54
+ return res;
55
+ };
56
+ res.send = function(body) {
57
+ _this.send(body);
58
+ };
59
+ };
60
+ _proto.send = function send(body) {
61
+ try {
62
+ var generateETag = !this.res.getHeader("ETag") && this.options.etag;
63
+ if (body !== void 0 && generateETag) {
64
+ var encoding = typeof body === "string" ? "utf-8" : void 0;
65
+ var buf = !Buffer.isBuffer(body) ? Buffer.from(body, encoding) : body;
66
+ var etag = createEtag(buf, {
67
+ weak: true
68
+ });
69
+ if (etag) {
70
+ this.res.setHeader("ETag", etag);
71
+ }
72
+ }
73
+ if (this.fresh) {
74
+ this.status = 304;
75
+ }
76
+ } catch (e) {
77
+ this.logger.error(e.message);
78
+ }
79
+ this.res.end(body);
80
+ };
81
+ _proto.setParams = function setParams(params) {
82
+ this.params = params;
83
+ };
84
+ _proto.setServerData = function setServerData(key, value) {
85
+ this.serverData[key] = value;
86
+ };
87
+ _proto.getReqHeader = function getReqHeader(key) {
88
+ var req = this.req;
89
+ var field = key.toLowerCase();
90
+ switch (field) {
91
+ case "referer":
92
+ case "referrer":
93
+ return req.headers.referrer || req.headers.referer || "";
94
+ default:
95
+ return req.headers[field] || "";
96
+ }
97
+ };
98
+ _proto.resHasHandled = function resHasHandled() {
99
+ return this.res.writableEnded;
100
+ };
101
+ _proto.error = function error(dig) {
102
+ var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
103
+ this.logger.error("Web Server Error - ".concat(dig, ", error = %s, req.url = %s, req.headers = %o"), _instanceof(e, Error) ? e.stack || e.message : e, this.path, headersWithoutCookie(this.headers));
104
+ };
47
105
  _create_class(ModernServerContext2, [
48
106
  {
49
107
  key: "logger",
@@ -73,78 +131,6 @@ var ModernServerContext = /* @__PURE__ */ function() {
73
131
  }
74
132
  }
75
133
  },
76
- {
77
- key: "bind",
78
- value: function bind() {
79
- var _this = this;
80
- var _this1 = this, req = _this1.req, res = _this1.res;
81
- req.get = function(key) {
82
- return _this.getReqHeader(key);
83
- };
84
- res.set = function(key, value) {
85
- if (!res.headersSent) {
86
- res.setHeader(key, value);
87
- }
88
- return res;
89
- };
90
- res.send = function(body) {
91
- _this.send(body);
92
- };
93
- }
94
- },
95
- {
96
- key: "send",
97
- value: (
98
- // compat express res.send, only support etag now
99
- function send(body) {
100
- try {
101
- var generateETag = !this.res.getHeader("ETag") && this.options.etag;
102
- if (body !== void 0 && generateETag) {
103
- var encoding = typeof body === "string" ? "utf-8" : void 0;
104
- var buf = !Buffer.isBuffer(body) ? Buffer.from(body, encoding) : body;
105
- var etag = createEtag(buf, {
106
- weak: true
107
- });
108
- if (etag) {
109
- this.res.setHeader("ETag", etag);
110
- }
111
- }
112
- if (this.fresh) {
113
- this.status = 304;
114
- }
115
- } catch (e) {
116
- this.logger.error(e.message);
117
- }
118
- this.res.end(body);
119
- }
120
- )
121
- },
122
- {
123
- key: "setParams",
124
- value: function setParams(params) {
125
- this.params = params;
126
- }
127
- },
128
- {
129
- key: "setServerData",
130
- value: function setServerData(key, value) {
131
- this.serverData[key] = value;
132
- }
133
- },
134
- {
135
- key: "getReqHeader",
136
- value: function getReqHeader(key) {
137
- var req = this.req;
138
- var field = key.toLowerCase();
139
- switch (field) {
140
- case "referer":
141
- case "referrer":
142
- return req.headers.referrer || req.headers.referer || "";
143
- default:
144
- return req.headers[field] || "";
145
- }
146
- }
147
- },
148
134
  {
149
135
  key: "fresh",
150
136
  get: function get() {
@@ -265,24 +251,6 @@ var ModernServerContext = /* @__PURE__ */ function() {
265
251
  set: function set(statusCode) {
266
252
  this.res.statusCode = statusCode;
267
253
  }
268
- },
269
- {
270
- key: "resHasHandled",
271
- value: (
272
- /**
273
- * 判断链接是否已经关闭
274
- */
275
- function resHasHandled() {
276
- return this.res.writableEnded;
277
- }
278
- )
279
- },
280
- {
281
- key: "error",
282
- value: function error(dig) {
283
- var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
284
- this.logger.error("Web Server Error - ".concat(dig, ", error = %s, req.url = %s, req.headers = %o"), _instanceof(e, Error) ? e.stack || e.message : e, this.path, headersWithoutCookie(this.headers));
285
- }
286
254
  }
287
255
  ]);
288
256
  return ModernServerContext2;