@modern-js/prod-server 2.0.0-beta.3 → 2.0.0-beta.6

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 (130) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/dist/js/modern/constants.js +32 -25
  3. package/dist/js/modern/index.js +11 -6
  4. package/dist/js/modern/libs/context/context.js +52 -84
  5. package/dist/js/modern/libs/context/index.js +5 -2
  6. package/dist/js/modern/libs/hook-api/index.js +44 -35
  7. package/dist/js/modern/libs/hook-api/route.js +6 -7
  8. package/dist/js/modern/libs/hook-api/template.js +20 -34
  9. package/dist/js/modern/libs/loadConfig.js +45 -24
  10. package/dist/js/modern/libs/metrics.js +3 -4
  11. package/dist/js/modern/libs/proxy.js +68 -37
  12. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -67
  13. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -216
  14. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
  15. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
  16. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
  17. package/dist/js/modern/libs/render/cache/index.js +88 -54
  18. package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
  19. package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -6
  20. package/dist/js/modern/libs/render/cache/spr.js +133 -117
  21. package/dist/js/modern/libs/render/cache/type.js +0 -1
  22. package/dist/js/modern/libs/render/cache/util.js +71 -39
  23. package/dist/js/modern/libs/render/index.js +76 -56
  24. package/dist/js/modern/libs/render/measure.js +38 -27
  25. package/dist/js/modern/libs/render/reader.js +65 -62
  26. package/dist/js/modern/libs/render/ssr.js +50 -32
  27. package/dist/js/modern/libs/render/static.js +50 -33
  28. package/dist/js/modern/libs/render/type.js +9 -6
  29. package/dist/js/modern/libs/route/index.js +8 -15
  30. package/dist/js/modern/libs/route/matcher.js +20 -34
  31. package/dist/js/modern/libs/route/route.js +9 -18
  32. package/dist/js/modern/libs/serve-file.js +33 -20
  33. package/dist/js/modern/server/index.js +150 -145
  34. package/dist/js/modern/server/modern-server-split.js +46 -12
  35. package/dist/js/modern/server/modern-server.js +384 -422
  36. package/dist/js/modern/type.js +0 -1
  37. package/dist/js/modern/utils.js +62 -43
  38. package/dist/js/modern/worker-server.js +34 -14
  39. package/dist/js/node/constants.js +53 -30
  40. package/dist/js/node/index.js +37 -57
  41. package/dist/js/node/libs/context/context.js +83 -94
  42. package/dist/js/node/libs/context/index.js +28 -13
  43. package/dist/js/node/libs/hook-api/index.js +76 -48
  44. package/dist/js/node/libs/hook-api/route.js +26 -11
  45. package/dist/js/node/libs/hook-api/template.js +41 -39
  46. package/dist/js/node/libs/loadConfig.js +73 -35
  47. package/dist/js/node/libs/metrics.js +25 -9
  48. package/dist/js/node/libs/proxy.js +89 -44
  49. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +99 -56
  50. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +147 -128
  51. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +65 -55
  52. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +58 -40
  53. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +105 -119
  54. package/dist/js/node/libs/render/cache/index.js +110 -64
  55. package/dist/js/node/libs/render/cache/page-caches/index.js +54 -14
  56. package/dist/js/node/libs/render/cache/page-caches/lru.js +33 -12
  57. package/dist/js/node/libs/render/cache/spr.js +161 -129
  58. package/dist/js/node/libs/render/cache/type.js +15 -5
  59. package/dist/js/node/libs/render/cache/util.js +99 -45
  60. package/dist/js/node/libs/render/index.js +106 -67
  61. package/dist/js/node/libs/render/measure.js +58 -31
  62. package/dist/js/node/libs/render/reader.js +95 -70
  63. package/dist/js/node/libs/render/ssr.js +80 -47
  64. package/dist/js/node/libs/render/static.js +79 -40
  65. package/dist/js/node/libs/render/type.js +31 -12
  66. package/dist/js/node/libs/route/index.js +31 -26
  67. package/dist/js/node/libs/route/matcher.js +40 -41
  68. package/dist/js/node/libs/route/route.js +29 -22
  69. package/dist/js/node/libs/serve-file.js +66 -32
  70. package/dist/js/node/server/index.js +168 -160
  71. package/dist/js/node/server/modern-server-split.js +72 -22
  72. package/dist/js/node/server/modern-server.js +403 -445
  73. package/dist/js/node/type.js +15 -3
  74. package/dist/js/node/utils.js +85 -52
  75. package/dist/js/node/worker-server.js +57 -21
  76. package/dist/js/treeshaking/constants.js +26 -25
  77. package/dist/js/treeshaking/index.js +10 -10
  78. package/dist/js/treeshaking/libs/context/context.js +268 -237
  79. package/dist/js/treeshaking/libs/context/index.js +3 -3
  80. package/dist/js/treeshaking/libs/hook-api/index.js +267 -143
  81. package/dist/js/treeshaking/libs/hook-api/route.js +65 -30
  82. package/dist/js/treeshaking/libs/hook-api/template.js +121 -85
  83. package/dist/js/treeshaking/libs/loadConfig.js +80 -37
  84. package/dist/js/treeshaking/libs/metrics.js +4 -10
  85. package/dist/js/treeshaking/libs/proxy.js +240 -76
  86. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +288 -121
  87. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +772 -455
  88. package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +65 -51
  89. package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -35
  90. package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +144 -118
  91. package/dist/js/treeshaking/libs/render/cache/index.js +337 -175
  92. package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +151 -27
  93. package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +80 -42
  94. package/dist/js/treeshaking/libs/render/cache/spr.js +470 -340
  95. package/dist/js/treeshaking/libs/render/cache/type.js +1 -1
  96. package/dist/js/treeshaking/libs/render/cache/util.js +271 -92
  97. package/dist/js/treeshaking/libs/render/index.js +228 -95
  98. package/dist/js/treeshaking/libs/render/measure.js +142 -57
  99. package/dist/js/treeshaking/libs/render/reader.js +325 -177
  100. package/dist/js/treeshaking/libs/render/ssr.js +220 -95
  101. package/dist/js/treeshaking/libs/render/static.js +210 -78
  102. package/dist/js/treeshaking/libs/render/type.js +7 -6
  103. package/dist/js/treeshaking/libs/route/index.js +125 -89
  104. package/dist/js/treeshaking/libs/route/matcher.js +132 -107
  105. package/dist/js/treeshaking/libs/route/route.js +40 -26
  106. package/dist/js/treeshaking/libs/serve-file.js +177 -68
  107. package/dist/js/treeshaking/server/index.js +493 -327
  108. package/dist/js/treeshaking/server/modern-server-split.js +352 -144
  109. package/dist/js/treeshaking/server/modern-server.js +1048 -909
  110. package/dist/js/treeshaking/type.js +1 -1
  111. package/dist/js/treeshaking/utils.js +138 -81
  112. package/dist/js/treeshaking/worker-server.js +176 -55
  113. package/dist/types/index.d.ts +2 -0
  114. package/dist/types/libs/context/context.d.ts +4 -1
  115. package/dist/types/libs/loadConfig.d.ts +1 -0
  116. package/dist/types/libs/render/cache/index.d.ts +2 -0
  117. package/dist/types/libs/render/cache/spr.d.ts +2 -0
  118. package/dist/types/libs/route/route.d.ts +0 -1
  119. package/dist/types/server/index.d.ts +3 -0
  120. package/dist/types/utils.d.ts +1 -1
  121. package/dist/types/worker-server.d.ts +1 -2
  122. package/package.json +7 -14
  123. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  124. package/dist/js/modern/libs/render/modern/index.js +0 -37
  125. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  126. package/dist/js/node/libs/render/modern/index.js +0 -46
  127. package/dist/js/treeshaking/libs/render/modern/browser-list.js +0 -7
  128. package/dist/js/treeshaking/libs/render/modern/index.js +0 -39
  129. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  130. package/dist/types/libs/render/modern/index.d.ts +0 -3
@@ -1,72 +1,70 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var context_exports = {};
25
+ __export(context_exports, {
26
+ ModernServerContext: () => ModernServerContext
5
27
  });
6
- exports.ModernServerContext = void 0;
7
- var _url = require("url");
8
- var _querystring = _interopRequireDefault(require("querystring"));
9
- var _buffer = require("buffer");
10
- var _etag = _interopRequireDefault(require("etag"));
11
- var _fresh = _interopRequireDefault(require("fresh"));
12
- var _utils = require("../../utils");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
28
+ module.exports = __toCommonJS(context_exports);
29
+ var import_url = require("url");
30
+ var import_querystring = __toESM(require("querystring"));
31
+ var import_buffer = require("buffer");
32
+ var import_etag = __toESM(require("etag"));
33
+ var import_fresh = __toESM(require("fresh"));
34
+ var import_utils = require("../../utils");
15
35
  class ModernServerContext {
16
- /**
17
- * http request
18
- */
19
-
20
- /**
21
- * http response
22
- */
23
-
24
- /**
25
- * url params
26
- */
27
-
28
- get logger() {
29
- return this.req.logger;
30
- }
31
- get metrics() {
32
- return this.req.metrics;
33
- }
34
36
  constructor(req, res, options) {
35
- _defineProperty(this, "req", void 0);
36
- _defineProperty(this, "res", void 0);
37
- _defineProperty(this, "params", {});
38
- _defineProperty(this, "serverData", void 0);
39
- _defineProperty(this, "options", {});
37
+ this.params = {};
38
+ this.options = {};
40
39
  this.req = req;
41
40
  this.res = res;
42
41
  this.options = options || {};
43
42
  this.serverData = {};
44
43
  this.bind();
45
44
  }
45
+ get logger() {
46
+ return this.req.logger;
47
+ }
48
+ get metrics() {
49
+ return this.req.metrics;
50
+ }
46
51
  bind() {
47
- const {
48
- req,
49
- res
50
- } = this;
51
- req.get = key => this.getReqHeader(key);
52
+ const { req, res } = this;
53
+ req.get = (key) => this.getReqHeader(key);
52
54
  res.set = (key, value) => this.res.setHeader(key, value);
53
- res.send = body => {
55
+ res.send = (body) => {
54
56
  this.send(body);
55
57
  };
56
58
  }
57
-
58
- // compat express res.send, only support etag now
59
59
  send(body) {
60
60
  try {
61
- const generateETag = !this.res.getHeader('ETag') && this.options.etag;
62
- if (body !== undefined && generateETag) {
63
- const encoding = typeof body === 'string' ? 'utf-8' : undefined;
64
- const buf = !_buffer.Buffer.isBuffer(body) ? _buffer.Buffer.from(body, encoding) : body;
65
- const etag = (0, _etag.default)(buf, {
66
- weak: true
67
- });
61
+ const generateETag = !this.res.getHeader("ETag") && this.options.etag;
62
+ if (body !== void 0 && generateETag) {
63
+ const encoding = typeof body === "string" ? "utf-8" : void 0;
64
+ const buf = !import_buffer.Buffer.isBuffer(body) ? import_buffer.Buffer.from(body, encoding) : body;
65
+ const etag = (0, import_etag.default)(buf, { weak: true });
68
66
  if (etag) {
69
- this.res.setHeader('ETag', etag);
67
+ this.res.setHeader("ETag", etag);
70
68
  }
71
69
  }
72
70
  if (this.fresh) {
@@ -84,39 +82,29 @@ class ModernServerContext {
84
82
  this.serverData[key] = value;
85
83
  }
86
84
  getReqHeader(key) {
87
- const {
88
- req
89
- } = this;
85
+ const { req } = this;
90
86
  const field = key.toLowerCase();
91
87
  switch (field) {
92
- case 'referer':
93
- case 'referrer':
94
- return req.headers.referrer || req.headers.referer || '';
88
+ case "referer":
89
+ case "referrer":
90
+ return req.headers.referrer || req.headers.referer || "";
95
91
  default:
96
- return req.headers[field] || '';
92
+ return req.headers[field] || "";
97
93
  }
98
94
  }
99
95
  get fresh() {
100
- const {
101
- status,
102
- res,
103
- method
104
- } = this;
105
-
106
- // GET or HEAD for weak freshness validation only
107
- if ('GET' !== method && 'HEAD' !== method) {
96
+ const { status, res, method } = this;
97
+ if ("GET" !== method && "HEAD" !== method) {
108
98
  return false;
109
99
  }
110
100
  if (status >= 200 && status < 300 || 304 === status) {
111
- return (0, _fresh.default)(this.headers, {
112
- etag: res.getHeader('ETag'),
113
- 'last-modified': res.getHeader('Last-Modified')
101
+ return (0, import_fresh.default)(this.headers, {
102
+ etag: res.getHeader("ETag"),
103
+ "last-modified": res.getHeader("Last-Modified")
114
104
  });
115
105
  }
116
106
  return false;
117
107
  }
118
-
119
- /* request property */
120
108
  get headers() {
121
109
  return this.req.headers;
122
110
  }
@@ -124,24 +112,24 @@ class ModernServerContext {
124
112
  return this.req.method;
125
113
  }
126
114
  get url() {
127
- return this.req.url || '';
115
+ return this.req.url || "";
128
116
  }
129
117
  set url(val) {
130
118
  this.req.url = val;
131
119
  }
132
120
  get host() {
133
- let host = this.getReqHeader('X-Forwarded-Host');
121
+ let host = this.getReqHeader("X-Forwarded-Host");
134
122
  if (!host) {
135
- host = this.getReqHeader('Host');
123
+ host = this.getReqHeader("Host");
136
124
  }
137
- return host.split(/\s*,\s*/, 1)[0] || '';
125
+ return host.split(/\s*,\s*/, 1)[0] || "";
138
126
  }
139
127
  get protocol() {
140
128
  if (this.req.socket.encrypted) {
141
- return 'https';
129
+ return "https";
142
130
  }
143
- const proto = this.getReqHeader('X-Forwarded-Proto');
144
- return proto ? proto.split(/\s*,\s*/, 1)[0] : 'http';
131
+ const proto = this.getReqHeader("X-Forwarded-Proto");
132
+ return proto ? proto.split(/\s*,\s*/, 1)[0] : "http";
145
133
  }
146
134
  get origin() {
147
135
  return `${this.protocol}://${this.host}`;
@@ -150,15 +138,14 @@ class ModernServerContext {
150
138
  return this.origin + this.url;
151
139
  }
152
140
  get parsedURL() {
153
- const url = new _url.URL(this.req.url, this.origin);
141
+ const url = new import_url.URL(this.req.url, this.origin);
154
142
  return url;
155
143
  }
156
144
  get path() {
157
145
  return this.parsedURL.pathname;
158
146
  }
159
147
  set path(p) {
160
- const url = new _url.URL(this.req.url, this.origin);
161
- // this should never happened
148
+ const url = new import_url.URL(this.req.url, this.origin);
162
149
  if (!url || !p) {
163
150
  return;
164
151
  }
@@ -170,31 +157,33 @@ class ModernServerContext {
170
157
  }
171
158
  get querystring() {
172
159
  if (!this.req) {
173
- return '';
160
+ return "";
174
161
  }
175
- return this.parsedURL.search.replace(/^\?/, '') || '';
162
+ return this.parsedURL.search.replace(/^\?/, "") || "";
176
163
  }
177
164
  get query() {
178
165
  const str = this.querystring;
179
- return _querystring.default.parse(str);
166
+ return import_querystring.default.parse(str);
180
167
  }
181
-
182
- /* response property */
183
168
  get status() {
184
169
  return this.res.statusCode;
185
170
  }
186
171
  set status(statusCode) {
187
172
  this.res.statusCode = statusCode;
188
173
  }
189
-
190
- /**
191
- * 判断链接是否已经关闭
192
- */
193
174
  resHasHandled() {
194
175
  return this.res.writableEnded;
195
176
  }
196
- error(dig, e = '') {
197
- 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, _utils.headersWithoutCookie)(this.headers));
177
+ error(dig, e = "") {
178
+ this.logger.error(
179
+ `Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`,
180
+ e instanceof Error ? e.stack || e.message : e,
181
+ this.path,
182
+ (0, import_utils.headersWithoutCookie)(this.headers)
183
+ );
198
184
  }
199
185
  }
200
- exports.ModernServerContext = ModernServerContext;
186
+ // Annotate the CommonJS export names for ESM import in node:
187
+ 0 && (module.exports = {
188
+ ModernServerContext
189
+ });
@@ -1,15 +1,30 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "ModernServerContext", {
7
- enumerable: true,
8
- get: function () {
9
- return _context.ModernServerContext;
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
14
  }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var context_exports = {};
19
+ __export(context_exports, {
20
+ ModernServerContext: () => import_context.ModernServerContext,
21
+ createContext: () => createContext
22
+ });
23
+ module.exports = __toCommonJS(context_exports);
24
+ var import_context = require("./context");
25
+ const createContext = (req, res, options) => new import_context.ModernServerContext(req, res, options);
26
+ // Annotate the CommonJS export names for ESM import in node:
27
+ 0 && (module.exports = {
28
+ ModernServerContext,
29
+ createContext
11
30
  });
12
- exports.createContext = void 0;
13
- var _context = require("./context");
14
- const createContext = (req, res, options) => new _context.ModernServerContext(req, res, options);
15
- exports.createContext = createContext;
@@ -1,23 +1,58 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
37
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
+ mod
39
+ ));
40
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
41
+ var hook_api_exports = {};
42
+ __export(hook_api_exports, {
43
+ base: () => base,
44
+ createAfterMatchContext: () => createAfterMatchContext,
45
+ createAfterRenderContext: () => createAfterRenderContext,
46
+ createMiddlewareContext: () => createMiddlewareContext
5
47
  });
6
- exports.createMiddlewareContext = exports.createAfterRenderContext = exports.createAfterMatchContext = exports.base = void 0;
7
- var _cookie = _interopRequireDefault(require("cookie"));
8
- var _route = require("./route");
9
- var _template = require("./template");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
48
+ module.exports = __toCommonJS(hook_api_exports);
49
+ var import_cookie = __toESM(require("cookie"));
50
+ var import_route = require("./route");
51
+ var import_template = require("./template");
14
52
  class Response {
15
53
  constructor(res) {
16
- _defineProperty(this, "cookies", void 0);
17
- _defineProperty(this, "res", void 0);
18
- _defineProperty(this, "_cookie", void 0);
19
54
  this.res = res;
20
- this._cookie = _cookie.default.parse(res.getHeader('set-cookie') || '');
55
+ this._cookie = import_cookie.default.parse(res.getHeader("set-cookie") || "");
21
56
  this.cookies = {
22
57
  get: this.getCookie.bind(this),
23
58
  set: this.setCookie.bind(this),
@@ -51,18 +86,16 @@ class Response {
51
86
  }
52
87
  applyCookie() {
53
88
  const str = Object.entries(this._cookie).map(([key, value]) => {
54
- return _cookie.default.serialize(key, value);
55
- }).join('; ');
89
+ return import_cookie.default.serialize(key, value);
90
+ }).join("; ");
56
91
  if (str) {
57
- this.res.setHeader('set-cookie', str);
92
+ this.res.setHeader("set-cookie", str);
58
93
  } else {
59
- this.res.removeHeader('set-cookie');
94
+ this.res.removeHeader("set-cookie");
60
95
  }
61
96
  }
62
- raw(body, {
63
- status,
64
- headers
65
- }) {
97
+ raw(body, options) {
98
+ const { status, headers = {} } = options || {};
66
99
  Object.entries(headers).forEach(([key, value]) => {
67
100
  this.res.setHeader(key, value);
68
101
  });
@@ -74,19 +107,13 @@ class Response {
74
107
  }
75
108
  class Request {
76
109
  constructor(ctx) {
77
- _defineProperty(this, "host", void 0);
78
- _defineProperty(this, "pathname", void 0);
79
- _defineProperty(this, "query", void 0);
80
- _defineProperty(this, "headers", void 0);
81
- _defineProperty(this, "cookie", void 0);
82
- _defineProperty(this, "cookies", void 0);
83
- _defineProperty(this, "_cookie", void 0);
110
+ this.url = ctx.url;
84
111
  this.host = ctx.host;
85
112
  this.pathname = ctx.path;
86
113
  this.query = ctx.query;
87
114
  this.headers = ctx.headers;
88
- this.cookie = ctx.headers.cookie || '';
89
- this._cookie = _cookie.default.parse(this.cookie);
115
+ this.cookie = ctx.headers.cookie || "";
116
+ this._cookie = import_cookie.default.parse(this.cookie);
90
117
  this.cookies = {
91
118
  get: this.getCookie.bind(this)
92
119
  };
@@ -95,10 +122,8 @@ class Request {
95
122
  return this._cookie[key];
96
123
  }
97
124
  }
98
- const base = context => {
99
- const {
100
- res
101
- } = context;
125
+ const base = (context) => {
126
+ const { res } = context;
102
127
  return {
103
128
  response: new Response(res),
104
129
  request: new Request(context),
@@ -106,25 +131,22 @@ const base = context => {
106
131
  metrics: context.metrics
107
132
  };
108
133
  };
109
- exports.base = base;
110
134
  const createAfterMatchContext = (context, entryName) => {
111
135
  const baseContext = base(context);
112
- return _objectSpread(_objectSpread({}, baseContext), {}, {
113
- router: new _route.RouteAPI(entryName)
136
+ return __spreadProps(__spreadValues({}, baseContext), {
137
+ router: new import_route.RouteAPI(entryName)
114
138
  });
115
139
  };
116
- exports.createAfterMatchContext = createAfterMatchContext;
117
140
  const createAfterRenderContext = (context, content) => {
118
141
  const baseContext = base(context);
119
- return _objectSpread(_objectSpread({}, baseContext), {}, {
120
- template: new _template.TemplateAPI(content)
142
+ return __spreadProps(__spreadValues({}, baseContext), {
143
+ template: new import_template.TemplateAPI(content)
121
144
  });
122
145
  };
123
- exports.createAfterRenderContext = createAfterRenderContext;
124
- const createMiddlewareContext = context => {
146
+ const createMiddlewareContext = (context) => {
125
147
  const baseContext = base(context);
126
- return _objectSpread(_objectSpread({}, baseContext), {}, {
127
- response: _objectSpread(_objectSpread({}, baseContext.response), {}, {
148
+ return __spreadProps(__spreadValues({}, baseContext), {
149
+ response: __spreadProps(__spreadValues({}, baseContext.response), {
128
150
  locals: context.res.locals || {}
129
151
  }),
130
152
  source: {
@@ -133,4 +155,10 @@ const createMiddlewareContext = context => {
133
155
  }
134
156
  });
135
157
  };
136
- exports.createMiddlewareContext = createMiddlewareContext;
158
+ // Annotate the CommonJS export names for ESM import in node:
159
+ 0 && (module.exports = {
160
+ base,
161
+ createAfterMatchContext,
162
+ createAfterRenderContext,
163
+ createMiddlewareContext
164
+ });
@@ -1,18 +1,30 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var route_exports = {};
19
+ __export(route_exports, {
20
+ RouteAPI: () => RouteAPI
5
21
  });
6
- exports.RouteAPI = void 0;
7
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
+ module.exports = __toCommonJS(route_exports);
8
23
  class RouteAPI {
9
24
  constructor(entryName) {
10
- _defineProperty(this, "current", void 0);
11
- _defineProperty(this, "status", void 0);
12
- _defineProperty(this, "url", void 0);
13
25
  this.current = entryName;
14
26
  this.status = 200;
15
- this.url = '';
27
+ this.url = "";
16
28
  }
17
29
  redirect(url, status = 302) {
18
30
  this.url = url;
@@ -25,4 +37,7 @@ class RouteAPI {
25
37
  this.rewrite(entryName);
26
38
  }
27
39
  }
28
- exports.RouteAPI = RouteAPI;
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ RouteAPI
43
+ });
@@ -1,24 +1,39 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var template_exports = {};
19
+ __export(template_exports, {
20
+ TemplateAPI: () => TemplateAPI,
21
+ templateInjectableStream: () => templateInjectableStream
5
22
  });
6
- exports.templateInjectableStream = exports.TemplateAPI = void 0;
7
- var _stream = require("stream");
8
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
+ module.exports = __toCommonJS(template_exports);
24
+ var import_stream = require("stream");
9
25
  const RegList = {
10
26
  before: {
11
- head: '<head>',
12
- body: '<body>'
27
+ head: "<head>",
28
+ body: "<body>"
13
29
  },
14
30
  after: {
15
- head: '</head>',
16
- body: '</body>'
31
+ head: "</head>",
32
+ body: "</body>"
17
33
  }
18
34
  };
19
35
  class TemplateAPI {
20
36
  constructor(content) {
21
- _defineProperty(this, "content", void 0);
22
37
  this.content = content;
23
38
  }
24
39
  get() {
@@ -28,68 +43,55 @@ class TemplateAPI {
28
43
  this.content = content;
29
44
  }
30
45
  prependHead(fragment) {
31
- const {
32
- head
33
- } = RegList.before;
46
+ const { head } = RegList.before;
34
47
  return this.replace(head, `${head}${fragment}`);
35
48
  }
36
49
  appendHead(fragment) {
37
- const {
38
- head
39
- } = RegList.after;
50
+ const { head } = RegList.after;
40
51
  return this.replace(head, `${fragment}${head}`);
41
52
  }
42
53
  prependBody(fragment) {
43
- const {
44
- body
45
- } = RegList.before;
54
+ const { body } = RegList.before;
46
55
  return this.replace(body, `${body}${fragment}`);
47
56
  }
48
57
  appendBody(fragment) {
49
- const {
50
- body
51
- } = RegList.after;
58
+ const { body } = RegList.after;
52
59
  return this.replace(body, `${fragment}${body}`);
53
60
  }
54
61
  replace(reg, text) {
55
62
  this.content = this.content.replace(reg, text);
56
63
  }
57
64
  }
58
- exports.TemplateAPI = TemplateAPI;
59
65
  const templateInjectableStream = ({
60
66
  prependHead,
61
67
  appendHead,
62
68
  prependBody,
63
69
  appendBody
64
- }) => new _stream.Transform({
70
+ }) => new import_stream.Transform({
65
71
  write(chunk, _, callback) {
66
72
  let chunk_str = chunk.toString();
67
73
  if (prependHead) {
68
- const {
69
- head
70
- } = RegList.before;
74
+ const { head } = RegList.before;
71
75
  chunk_str = chunk_str.replace(head, `${head}${prependHead}`);
72
76
  }
73
77
  if (appendHead) {
74
- const {
75
- head
76
- } = RegList.after;
78
+ const { head } = RegList.after;
77
79
  chunk_str = chunk_str.replace(head, `${appendHead}${head}`);
78
80
  }
79
81
  if (prependBody) {
80
- const {
81
- body
82
- } = RegList.before;
82
+ const { body } = RegList.before;
83
83
  chunk_str = chunk_str.replace(body, `${body}${prependBody}`);
84
84
  }
85
85
  if (appendBody) {
86
- const {
87
- body
88
- } = RegList.after;
86
+ const { body } = RegList.after;
89
87
  chunk_str = chunk_str.replace(body, `${appendBody}${body}`);
90
88
  }
91
89
  this.push(chunk_str);
92
90
  callback();
93
91
  }
94
92
  });
95
- exports.templateInjectableStream = templateInjectableStream;
93
+ // Annotate the CommonJS export names for ESM import in node:
94
+ 0 && (module.exports = {
95
+ TemplateAPI,
96
+ templateInjectableStream
97
+ });