dx-server 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +245 -250
  2. package/cjs/body.d.ts +7 -7
  3. package/cjs/body.js +8 -8
  4. package/cjs/bodyHelpers.js +6 -6
  5. package/cjs/connect.d.ts +2 -2
  6. package/cjs/connect.js +5 -5
  7. package/cjs/dx.d.ts +1 -1
  8. package/cjs/dx.js +22 -13
  9. package/cjs/dxHelpers.d.ts +2 -2
  10. package/cjs/dxHelpers.js +12 -7
  11. package/cjs/express.d.ts +1 -1
  12. package/cjs/express.js +16 -14
  13. package/cjs/helpers.d.ts +2 -2
  14. package/cjs/helpers.js +10 -10
  15. package/cjs/index.d.ts +6 -6
  16. package/cjs/index.js +28 -28
  17. package/cjs/polyfillWithResolvers.js +2 -3
  18. package/cjs/router.js +7 -6
  19. package/cjs/static.d.ts +5 -0
  20. package/cjs/static.js +12 -12
  21. package/cjs/staticHelpers.d.ts +16 -4
  22. package/cjs/staticHelpers.js +191 -9
  23. package/cjs/stream.d.ts +1 -1
  24. package/cjs/stream.js +3 -3
  25. package/{esm → cjs/vendors}/contentType.js +7 -3
  26. package/{esm → cjs/vendors}/etag.d.ts +3 -1
  27. package/cjs/{etag.js → vendors/etag.js} +1 -1
  28. package/cjs/vendors/fresh.d.ts +23 -0
  29. package/cjs/vendors/fresh.js +102 -0
  30. package/cjs/vendors/mime.d.ts +1 -0
  31. package/cjs/vendors/mime.js +42 -0
  32. package/cjs/vendors/mimeDb.d.ts +9413 -0
  33. package/cjs/vendors/mimeDb.js +9417 -0
  34. package/cjs/vendors/mimeScore.d.ts +5 -0
  35. package/cjs/vendors/mimeScore.js +50 -0
  36. package/cjs/vendors/onFinished.d.ts +14 -0
  37. package/cjs/vendors/onFinished.js +245 -0
  38. package/cjs/vendors/rangeParser.d.ts +10 -0
  39. package/cjs/vendors/rangeParser.js +125 -0
  40. package/esm/body.d.ts +7 -7
  41. package/esm/body.js +2 -2
  42. package/esm/bodyHelpers.js +3 -3
  43. package/esm/connect.d.ts +2 -2
  44. package/esm/connect.js +3 -3
  45. package/esm/dx.d.ts +1 -1
  46. package/esm/dx.js +21 -12
  47. package/esm/dxHelpers.d.ts +2 -2
  48. package/esm/dxHelpers.js +10 -5
  49. package/esm/express.d.ts +1 -1
  50. package/esm/express.js +16 -14
  51. package/esm/helpers.d.ts +2 -2
  52. package/esm/helpers.js +2 -2
  53. package/esm/index.d.ts +6 -6
  54. package/esm/index.js +6 -6
  55. package/esm/polyfillWithResolvers.js +2 -3
  56. package/esm/router.js +6 -5
  57. package/esm/static.d.ts +5 -0
  58. package/esm/static.js +10 -10
  59. package/esm/staticHelpers.d.ts +16 -4
  60. package/esm/staticHelpers.js +191 -9
  61. package/esm/stream.d.ts +1 -1
  62. package/esm/stream.js +3 -3
  63. package/{cjs → esm/vendors}/contentType.js +3 -7
  64. package/{cjs → esm/vendors}/etag.d.ts +3 -1
  65. package/esm/vendors/etag.js +90 -0
  66. package/esm/vendors/fresh.d.ts +23 -0
  67. package/esm/vendors/fresh.js +96 -0
  68. package/esm/vendors/mime.d.ts +1 -0
  69. package/esm/vendors/mime.js +35 -0
  70. package/esm/vendors/mimeDb.d.ts +9413 -0
  71. package/esm/vendors/mimeDb.js +9415 -0
  72. package/esm/vendors/mimeScore.d.ts +5 -0
  73. package/esm/vendors/mimeScore.js +46 -0
  74. package/esm/vendors/onFinished.d.ts +14 -0
  75. package/esm/vendors/onFinished.js +241 -0
  76. package/esm/vendors/rangeParser.d.ts +10 -0
  77. package/esm/vendors/rangeParser.js +121 -0
  78. package/package.json +1 -5
  79. package/cjs/file.d.ts +0 -3
  80. package/cjs/file.js +0 -12
  81. package/esm/etag.js +0 -90
  82. package/esm/file.d.ts +0 -3
  83. package/esm/file.js +0 -8
  84. /package/cjs/{contentType.d.ts → vendors/contentType.d.ts} +0 -0
  85. /package/esm/{contentType.d.ts → vendors/contentType.d.ts} +0 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Get each component of the score for a mime type. The sum of these is the
3
+ * total score. The higher the score, the more "official" the type.
4
+ */
5
+ export declare function mimeScore(mimeType: any, source?: string): any;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // 'mime-score' back-ported to CommonJS
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.mimeScore = void 0;
5
+ // Score RFC facets (see https://tools.ietf.org/html/rfc6838#section-3)
6
+ const FACET_SCORES = {
7
+ 'prs.': 100,
8
+ 'x-': 200,
9
+ 'x.': 300,
10
+ 'vnd.': 400,
11
+ default: 900
12
+ };
13
+ // Score mime source (Logic originally from `jshttp/mime-types` module)
14
+ const SOURCE_SCORES = {
15
+ nginx: 10,
16
+ apache: 20,
17
+ iana: 40,
18
+ default: 30 // definitions added by `jshttp/mime-db` project?
19
+ };
20
+ const TYPE_SCORES = {
21
+ // prefer application/xml over text/xml
22
+ // prefer application/rtf over text/rtf
23
+ application: 1,
24
+ // prefer font/woff over application/font-woff
25
+ font: 2,
26
+ // prefer video/mp4 over audio/mp4 over application/mp4
27
+ // See https://www.rfc-editor.org/rfc/rfc4337.html#section-2
28
+ audio: 2,
29
+ video: 3,
30
+ default: 0
31
+ };
32
+ /**
33
+ * Get each component of the score for a mime type. The sum of these is the
34
+ * total score. The higher the score, the more "official" the type.
35
+ */
36
+ function mimeScore(mimeType, source = 'default') {
37
+ if (mimeType === 'application/octet-stream') {
38
+ return 0;
39
+ }
40
+ const [type, subtype] = mimeType.split('/');
41
+ const facet = subtype.replace(/(\.|x-).*/, '$1');
42
+ const facetScore = FACET_SCORES[facet] || FACET_SCORES.default;
43
+ const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default;
44
+ const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default;
45
+ // All else being equal prefer shorter types
46
+ const lengthScore = 1 - mimeType.length / 100;
47
+ return facetScore + sourceScore + typeScore + lengthScore;
48
+ }
49
+ exports.mimeScore = mimeScore;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWltZVNjb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZlbmRvcnMvbWltZVNjb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1Q0FBdUM7OztBQUV2Qyx1RUFBdUU7QUFDdkUsTUFBTSxZQUFZLEdBQUc7SUFDcEIsTUFBTSxFQUFFLEdBQUc7SUFDWCxJQUFJLEVBQUUsR0FBRztJQUNULElBQUksRUFBRSxHQUFHO0lBQ1QsTUFBTSxFQUFFLEdBQUc7SUFDWCxPQUFPLEVBQUUsR0FBRztDQUNaLENBQUE7QUFFRCx1RUFBdUU7QUFDdkUsTUFBTSxhQUFhLEdBQUc7SUFDckIsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtJQUNWLElBQUksRUFBRSxFQUFFO0lBQ1IsT0FBTyxFQUFFLEVBQUUsQ0FBQyxpREFBaUQ7Q0FDN0QsQ0FBQTtBQUVELE1BQU0sV0FBVyxHQUFHO0lBQ25CLHVDQUF1QztJQUN2Qyx1Q0FBdUM7SUFDdkMsV0FBVyxFQUFFLENBQUM7SUFFZCw4Q0FBOEM7SUFDOUMsSUFBSSxFQUFFLENBQUM7SUFFUCx1REFBdUQ7SUFDdkQsNERBQTREO0lBQzVELEtBQUssRUFBRSxDQUFDO0lBQ1IsS0FBSyxFQUFFLENBQUM7SUFFUixPQUFPLEVBQUUsQ0FBQztDQUNWLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxTQUFTO0lBQ3JELElBQUksUUFBUSxLQUFLLDBCQUEwQixFQUFFLENBQUM7UUFDN0MsT0FBTyxDQUFDLENBQUE7SUFDVCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTNDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRWhELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFBO0lBQzlELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFBO0lBQ2xFLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFBO0lBRTFELDRDQUE0QztJQUM1QyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUE7SUFFN0MsT0FBTyxVQUFVLEdBQUcsV0FBVyxHQUFHLFNBQVMsR0FBRyxXQUFXLENBQUE7QUFDMUQsQ0FBQztBQWpCRCw4QkFpQkMifQ==
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Variables.
3
+ * @private
4
+ */
5
+ /**
6
+ * Invoke callback when the response has finished, useful for
7
+ * cleaning up resources afterwards.
8
+ *
9
+ * @param {object} msg
10
+ * @param {function} listener
11
+ * @return {object}
12
+ * @public
13
+ */
14
+ export declare function onFinished(msg: any, listener: any): any;
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ /**
3
+ * Variables.
4
+ * @private
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.onFinished = void 0;
8
+ /* istanbul ignore next */
9
+ const node_async_hooks_1 = require("node:async_hooks");
10
+ const defer = typeof setImmediate === 'function'
11
+ ? setImmediate
12
+ : function (fn) {
13
+ process.nextTick(fn.bind.apply(fn, arguments));
14
+ };
15
+ /**
16
+ * Invoke callback when the response has finished, useful for
17
+ * cleaning up resources afterwards.
18
+ *
19
+ * @param {object} msg
20
+ * @param {function} listener
21
+ * @return {object}
22
+ * @public
23
+ */
24
+ function onFinished(msg, listener) {
25
+ if (isFinished(msg) !== false) {
26
+ defer(listener, null, msg);
27
+ return msg;
28
+ }
29
+ // attach the listener to the message
30
+ attachListener(msg, wrap(listener));
31
+ return msg;
32
+ }
33
+ exports.onFinished = onFinished;
34
+ /**
35
+ * Determine if message is already finished.
36
+ *
37
+ * @param {object} msg
38
+ * @return {boolean}
39
+ * @public
40
+ */
41
+ function isFinished(msg) {
42
+ const socket = msg.socket;
43
+ if (typeof msg.finished === 'boolean') {
44
+ // OutgoingMessage
45
+ return Boolean(msg.finished || (socket && !socket.writable));
46
+ }
47
+ if (typeof msg.complete === 'boolean') {
48
+ // IncomingMessage
49
+ return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable));
50
+ }
51
+ // don't know
52
+ return undefined;
53
+ }
54
+ /**
55
+ * Attach a finished listener to the message.
56
+ *
57
+ * @param {object} msg
58
+ * @param {function} callback
59
+ * @private
60
+ */
61
+ function attachFinishedListener(msg, callback) {
62
+ let eeMsg;
63
+ let eeSocket;
64
+ let finished = false;
65
+ function onFinish(error) {
66
+ eeMsg.cancel();
67
+ eeSocket.cancel();
68
+ finished = true;
69
+ callback(error);
70
+ }
71
+ // finished on first message event
72
+ eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish);
73
+ function onSocket(socket) {
74
+ // remove listener
75
+ msg.removeListener('socket', onSocket);
76
+ if (finished)
77
+ return;
78
+ if (eeMsg !== eeSocket)
79
+ return;
80
+ // finished on first socket event
81
+ eeSocket = first([[socket, 'error', 'close']], onFinish);
82
+ }
83
+ if (msg.socket) {
84
+ // socket already assigned
85
+ onSocket(msg.socket);
86
+ return;
87
+ }
88
+ // wait for socket to be assigned
89
+ msg.on('socket', onSocket);
90
+ if (msg.socket === undefined) {
91
+ // istanbul ignore next: node.js 0.8 patch
92
+ patchAssignSocket(msg, onSocket);
93
+ }
94
+ }
95
+ /**
96
+ * Attach the listener to the message.
97
+ *
98
+ * @param {object} msg
99
+ * @return {function}
100
+ * @private
101
+ */
102
+ function attachListener(msg, listener) {
103
+ let attached = msg.__onFinished;
104
+ // create a private single listener with queue
105
+ if (!attached || !attached.queue) {
106
+ attached = msg.__onFinished = createListener(msg);
107
+ attachFinishedListener(msg, attached);
108
+ }
109
+ attached.queue.push(listener);
110
+ }
111
+ /**
112
+ * Create listener on message.
113
+ *
114
+ * @param {object} msg
115
+ * @return {function}
116
+ * @private
117
+ */
118
+ function createListener(msg) {
119
+ function listener(err) {
120
+ if (msg.__onFinished === listener)
121
+ msg.__onFinished = null;
122
+ if (!listener.queue)
123
+ return;
124
+ const queue = listener.queue;
125
+ listener.queue = null;
126
+ for (let i = 0; i < queue.length; i++) {
127
+ queue[i](err, msg);
128
+ }
129
+ }
130
+ listener.queue = [];
131
+ return listener;
132
+ }
133
+ /**
134
+ * Patch ServerResponse.prototype.assignSocket for node.js 0.8.
135
+ *
136
+ * @param {ServerResponse} res
137
+ * @param {function} callback
138
+ * @private
139
+ */
140
+ // istanbul ignore next: node.js 0.8 patch
141
+ function patchAssignSocket(res, callback) {
142
+ const assignSocket = res.assignSocket;
143
+ if (typeof assignSocket !== 'function')
144
+ return;
145
+ // res.on('socket', callback) is broken in 0.8
146
+ res.assignSocket = function _assignSocket(socket) {
147
+ assignSocket.call(this, socket);
148
+ callback(socket);
149
+ };
150
+ }
151
+ /**
152
+ * Try to require async_hooks
153
+ * @private
154
+ */
155
+ function tryRequireAsyncHooks() {
156
+ try {
157
+ return require('async_hooks');
158
+ }
159
+ catch (e) {
160
+ return {};
161
+ }
162
+ }
163
+ /**
164
+ * Wrap function with async resource, if possible.
165
+ * AsyncResource.bind static method backported.
166
+ * @private
167
+ */
168
+ function wrap(fn) {
169
+ let res;
170
+ // create anonymous resource
171
+ res = new node_async_hooks_1.AsyncResource(fn.name || 'bound-anonymous-fn');
172
+ // incompatible node.js
173
+ if (!res || !res.runInAsyncScope) {
174
+ return fn;
175
+ }
176
+ // return bound function
177
+ return res.runInAsyncScope.bind(res, fn, null);
178
+ }
179
+ /**
180
+ * Get the first event in a set of event emitters and event pairs.
181
+ *
182
+ * @param {array} stuff
183
+ * @param {function} done
184
+ * @public
185
+ */
186
+ function first(stuff, done) {
187
+ if (!Array.isArray(stuff)) {
188
+ throw new TypeError('arg must be an array of [ee, events...] arrays');
189
+ }
190
+ const cleanups = [];
191
+ for (let i = 0; i < stuff.length; i++) {
192
+ const arr = stuff[i];
193
+ if (!Array.isArray(arr) || arr.length < 2) {
194
+ throw new TypeError('each array member must be [ee, events...]');
195
+ }
196
+ const ee = arr[0];
197
+ for (let j = 1; j < arr.length; j++) {
198
+ const event = arr[j];
199
+ const fn = listener(event, callback);
200
+ // listen to the event
201
+ ee.on(event, fn);
202
+ // push this listener to the list of cleanups
203
+ cleanups.push({
204
+ ee: ee,
205
+ event: event,
206
+ fn: fn
207
+ });
208
+ }
209
+ }
210
+ function callback() {
211
+ cleanup();
212
+ done.apply(null, arguments);
213
+ }
214
+ function cleanup() {
215
+ let x;
216
+ for (let i = 0; i < cleanups.length; i++) {
217
+ x = cleanups[i];
218
+ x.ee.removeListener(x.event, x.fn);
219
+ }
220
+ }
221
+ function thunk(fn) {
222
+ done = fn;
223
+ }
224
+ thunk.cancel = cleanup;
225
+ return thunk;
226
+ }
227
+ /**
228
+ * Create the event listener.
229
+ * @private
230
+ */
231
+ function listener(event, done) {
232
+ return function onevent(arg1) {
233
+ const args = new Array(arguments.length);
234
+ const ee = this;
235
+ const err = event === 'error'
236
+ ? arg1
237
+ : null;
238
+ // copy args to prevent arguments escaping scope
239
+ for (let i = 0; i < args.length; i++) {
240
+ args[i] = arguments[i];
241
+ }
242
+ done(err, ee, event, args);
243
+ };
244
+ }
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25GaW5pc2hlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZW5kb3JzL29uRmluaXNoZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUgsMEJBQTBCO0FBQzFCLHVEQUE4QztBQUU5QyxNQUFNLEtBQUssR0FBRyxPQUFPLFlBQVksS0FBSyxVQUFVO0lBQy9DLENBQUMsQ0FBQyxZQUFZO0lBQ2QsQ0FBQyxDQUFDLFVBQVUsRUFBRTtRQUNiLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQyxDQUFBO0FBRUY7Ozs7Ozs7O0dBUUc7QUFFSCxTQUFnQixVQUFVLENBQUUsR0FBRyxFQUFFLFFBQVE7SUFDeEMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDMUIsT0FBTyxHQUFHLENBQUE7SUFDWCxDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFFbkMsT0FBTyxHQUFHLENBQUE7QUFDWCxDQUFDO0FBVkQsZ0NBVUM7QUFFRDs7Ozs7O0dBTUc7QUFFSCxTQUFTLFVBQVUsQ0FBRSxHQUFHO0lBQ3ZCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkMsa0JBQWtCO1FBQ2xCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsSUFB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
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Parse "Range" header `str` relative to the given file `size`.
3
+ *
4
+ * @param {Number} size
5
+ * @param {String} str
6
+ * @param {Object} [options]
7
+ * @return {Array}
8
+ * @public
9
+ */
10
+ export declare function parseRange(size: any, str: any, options: any): any;
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ /**
3
+ * Parse "Range" header `str` relative to the given file `size`.
4
+ *
5
+ * @param {Number} size
6
+ * @param {String} str
7
+ * @param {Object} [options]
8
+ * @return {Array}
9
+ * @public
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.parseRange = void 0;
13
+ function parseRange(size, str, options) {
14
+ if (typeof str !== 'string') {
15
+ throw new TypeError('argument str must be a string');
16
+ }
17
+ const index = str.indexOf('=');
18
+ if (index === -1) {
19
+ return -2;
20
+ }
21
+ // split the range string
22
+ const arr = str.slice(index + 1).split(',');
23
+ const ranges = [];
24
+ // add ranges type
25
+ ranges.type = str.slice(0, index);
26
+ // parse all ranges
27
+ for (let i = 0; i < arr.length; i++) {
28
+ const range = arr[i].split('-');
29
+ let start = parseInt(range[0], 10);
30
+ let end = parseInt(range[1], 10);
31
+ // -nnn
32
+ if (isNaN(start)) {
33
+ start = size - end;
34
+ end = size - 1;
35
+ // nnn-
36
+ }
37
+ else if (isNaN(end)) {
38
+ end = size - 1;
39
+ }
40
+ // limit last-byte-pos to current length
41
+ if (end > size - 1) {
42
+ end = size - 1;
43
+ }
44
+ // invalid or unsatisifiable
45
+ if (isNaN(start) || isNaN(end) || start > end || start < 0) {
46
+ continue;
47
+ }
48
+ // add range
49
+ ranges.push({
50
+ start: start,
51
+ end: end
52
+ });
53
+ }
54
+ if (ranges.length < 1) {
55
+ // unsatisifiable
56
+ return -1;
57
+ }
58
+ return options && options.combine
59
+ ? combineRanges(ranges)
60
+ : ranges;
61
+ }
62
+ exports.parseRange = parseRange;
63
+ /**
64
+ * Combine overlapping & adjacent ranges.
65
+ * @private
66
+ */
67
+ function combineRanges(ranges) {
68
+ const ordered = ranges.map(mapWithIndex).sort(sortByRangeStart);
69
+ for (let j = 0, i = 1; i < ordered.length; i++) {
70
+ const range = ordered[i];
71
+ const current = ordered[j];
72
+ if (range.start > current.end + 1) {
73
+ // next range
74
+ ordered[++j] = range;
75
+ }
76
+ else if (range.end > current.end) {
77
+ // extend range
78
+ current.end = range.end;
79
+ current.index = Math.min(current.index, range.index);
80
+ }
81
+ }
82
+ // trim ordered array
83
+ ordered.length = j + 1;
84
+ // generate combined range
85
+ const combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex);
86
+ // copy ranges type
87
+ combined.type = ranges.type;
88
+ return combined;
89
+ }
90
+ /**
91
+ * Map function to add index value to ranges.
92
+ * @private
93
+ */
94
+ function mapWithIndex(range, index) {
95
+ return {
96
+ start: range.start,
97
+ end: range.end,
98
+ index: index
99
+ };
100
+ }
101
+ /**
102
+ * Map function to remove index value from ranges.
103
+ * @private
104
+ */
105
+ function mapWithoutIndex(range) {
106
+ return {
107
+ start: range.start,
108
+ end: range.end
109
+ };
110
+ }
111
+ /**
112
+ * Sort function to sort ranges by index.
113
+ * @private
114
+ */
115
+ function sortByRangeIndex(a, b) {
116
+ return a.index - b.index;
117
+ }
118
+ /**
119
+ * Sort function to sort ranges by start position.
120
+ * @private
121
+ */
122
+ function sortByRangeStart(a, b) {
123
+ return a.start - b.start;
124
+ }
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2VQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVuZG9ycy9yYW5nZVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUVILFNBQWdCLFVBQVUsQ0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU87SUFDN0MsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksU0FBUyxDQUFDLCtCQUErQixDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFOUIsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0MsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO0lBRWpCLGtCQUFrQjtJQUNsQixNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBRWpDLG1CQUFtQjtJQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNsQyxJQUFJLEdBQUcsR0FBRyxRQUFR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Q2xDLE9BQU87UUFDTixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1FBQ2QsS0FBSyxFQUFFLEtBQUs7S0FDWixDQUFBO0FBQ0YsQ0FBQztBQUVEOzs7R0FHRztBQUVILFNBQVMsZUFBZSxDQUFFLEtBQUs7SUFDOUIsT0FBTztRQUNOLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7S0FDZCxDQUFBO0FBQ0YsQ0FBQztBQUVEOzs7R0FHRztBQUVILFNBQVMsZ0JBQWdCLENBQUUsQ0FBQyxFQUFFLENBQUM7SUFDOUIsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDekIsQ0FBQztBQUVEOzs7R0FHRztBQUVILFNBQVMsZ0JBQWdCLENBQUUsQ0FBQyxFQUFFLENBQUM7SUFDOUIsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDekIsQ0FBQyJ9
package/esm/body.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { BufferBodyOptions } from './bodyHelpers.js';
3
- export declare const getBuffer: import("./dx.js").Context<Buffer | undefined, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
4
- export declare const getJson: import("./dx.js").Context<any, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
5
- export declare const getRaw: import("./dx.js").Context<Buffer | undefined, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
6
- export declare const getText: import("./dx.js").Context<string | undefined, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
7
- export declare const getUrlEncoded: import("./dx.js").Context<any, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
8
- export declare const getQuery: import("./dx.js").Context<any, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
2
+ import { type BufferBodyOptions } from './bodyHelpers.ts';
3
+ export declare const getBuffer: import("./dx.ts").Context<Buffer | undefined, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
4
+ export declare const getJson: import("./dx.ts").Context<any, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
5
+ export declare const getRaw: import("./dx.ts").Context<Buffer | undefined, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
6
+ export declare const getText: import("./dx.ts").Context<string | undefined, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
7
+ export declare const getUrlEncoded: import("./dx.ts").Context<any, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
8
+ export declare const getQuery: import("./dx.ts").Context<any, [options?: Partial<BufferBodyOptions> | undefined], any, (...np: any[]) => any>;
package/esm/body.js CHANGED
@@ -1,5 +1,5 @@
1
- import { getReq, makeDxContext } from './dx.js';
2
- import { bufferFromReq, jsonFromReq, queryFromReq, rawFromReq, textFromReq, urlEncodedFromReq } from './bodyHelpers.js';
1
+ import { getReq, makeDxContext } from './dx.ts';
2
+ import { bufferFromReq, jsonFromReq, queryFromReq, rawFromReq, textFromReq, urlEncodedFromReq } from './bodyHelpers.ts';
3
3
  export const getBuffer = makeDxContext((options) => bufferFromReq(getReq(), options));
4
4
  export const getJson = makeDxContext((options) => jsonFromReq(getReq(), options));
5
5
  export const getRaw = makeDxContext((options) => rawFromReq(getReq(), options));
@@ -1,5 +1,5 @@
1
- import { getContentStream, readStream } from './stream.js';
2
- import { parseContentType } from './contentType.js';
1
+ import { getContentStream, readStream } from './stream.ts';
2
+ import { parseContentType } from './vendors/contentType.ts';
3
3
  function defaultQueryParser(search) {
4
4
  return Object.fromEntries(new URLSearchParams(search)); // support both leading ? and not
5
5
  }
@@ -87,4 +87,4 @@ export function urlFromReq(req) {
87
87
  export function queryFromReq(req, options) {
88
88
  return (bodyDefaultOptions.queryParser ?? options?.queryParser ?? defaultQueryParser)(urlFromReq(req).searchParams.toString());
89
89
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keUhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm9keUhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQTtBQVFqRCxTQUFTLGtCQUFrQixDQUFDLE1BQWM7SUFDekMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQyxpQ0FBaUM7QUFDekYsQ0FBQztBQUVELElBQUksa0JBQWtCLEdBQXNCLEVBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUMsQ0FBQSxDQUFDLFFBQVE7QUFDM0UsTUFBTSxVQUFVLDJCQUEyQixDQUFDLE9BQW1DO0lBQzlFLGtCQUFrQixHQUFHLEVBQUMsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLE9BQU8sRUFBQyxDQUFBO0FBQ3pELENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFvQixFQUFFLE9BQW9DO0lBQzdGLE1BQU0sRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxPQUFPLEVBQUMsQ0FBQTtJQUN2RDs7Ozs7T0FLRztJQUNGLCtGQUErRjtJQUNoRyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzdFLElBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLFNBQVM7V0FDM0MsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1FBQzVCLE9BQU07SUFDUixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMs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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keUhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm9keUhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQTtBQVF6RCxTQUFTLGtCQUFrQixDQUFDLE1BQWM7SUFDekMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQyxpQ0FBaUM7QUFDekYsQ0FBQztBQUVELElBQUksa0JBQWtCLEdBQXNCLEVBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUMsQ0FBQSxDQUFDLFFBQVE7QUFDM0UsTUFBTSxVQUFVLDJCQUEyQixDQUFDLE9BQW1DO0lBQzlFLGtCQUFrQixHQUFHLEVBQUMsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLE9BQU8sRUFBQyxDQUFBO0FBQ3pELENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFvQixFQUFFLE9BQW9DO0lBQzdGLE1BQU0sRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxPQUFPLEVBQUMsQ0FBQTtJQUN2RDs7Ozs7T0FLRztJQUNGLCtGQUErRjtJQUNoRyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzdFLElBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLFNBQVM7V0FDM0MsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1FBQzVCLE9BQU07SUFDUixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMs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
package/esm/connect.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import type { IncomingMessage, ServerResponse } from 'node:http';
3
- import { Chainable } from './dx.js';
4
- import './polyfillWithResolvers.js';
3
+ import { type Chainable } from './dx.ts';
4
+ import './polyfillWithResolvers.ts';
5
5
  export declare function connectMiddlewares(...middlewares: Array<(req: IncomingMessage, res: ServerResponse, next: () => any) => any>): Chainable;
package/esm/connect.js CHANGED
@@ -1,5 +1,5 @@
1
- import { getReq, getRes } from './dx.js';
2
- import './polyfillWithResolvers.js';
1
+ import { getReq, getRes } from './dx.ts';
2
+ import './polyfillWithResolvers.ts';
3
3
  // support async middleware
4
4
  // do not support error middleware (the one with 4 arguments)
5
5
  export function connectMiddlewares(...middlewares) {
@@ -37,4 +37,4 @@ export function connectMiddlewares(...middlewares) {
37
37
  // await run()
38
38
  };
39
39
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25uZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sU0FBUyxDQUFBO0FBQ2pELE9BQU8sNEJBQTRCLENBQUE7QUFFbkMsMkJBQTJCO0FBQzNCLDZEQUE2RDtBQUM3RCxNQUFNLFVBQVUsa0JBQWtCLENBQ2pDLEdBQUcsV0FBdUY7SUFFMUYsT0FBTyxJQUFJLENBQUMsRUFBRTtRQUNiLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFBO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFBO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNyQyxtRUFBbUU7UUFDbkUsdUZBQXVGO1FBQ3ZGLFdBQVcsQ0FBQyxXQUFXLENBQ3RCLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQVcsRUFBRSxFQUFFO1lBQ2xELHlDQUF5QztZQUN6QyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3JFLElBQUksQ0FBQztnQkFBQSxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFBQSxDQUFDO1lBQ3BELE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQUEsQ0FBQztRQUN2QyxDQUFDLEVBQ0QsS0FBSyxJQUFJLEVBQUU7WUFDVix3R0FBd0c7WUFDeEcsSUFBSSxDQUFDO2dCQUNKLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUE7WUFDbkMsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3pCLENBQUM7UUFDRixDQUFDLENBQ0QsRUFBRSxDQUFBLENBQUMsc0VBQXNFO1FBQzFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUNwQixZQUFZO1FBQ1osNEJBQTRCO1FBQzVCLCtDQUErQztRQUMvQyx5Q0FBeUM7UUFDekMsSUFBSTtRQUNKLGNBQWM7SUFDZixDQUFDLENBQUE7QUFDRixDQUFDIn0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25uZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBaUIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLFNBQVMsQ0FBQTtBQUN0RCxPQUFPLDRCQUE0QixDQUFBO0FBRW5DLDJCQUEyQjtBQUMzQiw2REFBNkQ7QUFDN0QsTUFBTSxVQUFVLGtCQUFrQixDQUNqQyxHQUFHLFdBQXVGO0lBRTFGLE9BQU8sSUFBSSxDQUFDLEVBQUU7UUFDYixNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQTtRQUNwQixNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQTtRQUNwQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDckMsbUVBQW1FO1FBQ25FLHVGQUF1RjtRQUN2RixXQUFXLENBQUMsV0FBVyxDQUN0QixDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFXLEVBQUUsRUFBRTtZQUNsRCx5Q0FBeUM7WUFDekMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO2dCQUFFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNyRSxJQUFJLENBQUM7Z0JBQUEsT0FBTyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQUEsQ0FBQztZQUNwRCxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUFBLENBQUM7UUFDdkMsQ0FBQyxFQUNELEtBQUssSUFBSSxFQUFFO1lBQ1Ysd0dBQXdHO1lBQ3hHLElBQUksQ0FBQztnQkFDSixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQ25DLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUN6QixDQUFDO1FBQ0YsQ0FBQyxDQUNELEVBQUUsQ0FBQSxDQUFDLHNFQUFzRTtRQUMxRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUE7UUFDcEIsWUFBWTtRQUNaLDRCQUE0QjtRQUM1QiwrQ0FBK0M7UUFDL0MseUNBQXlDO1FBQ3pDLElBQUk7UUFDSixjQUFjO0lBQ2YsQ0FBQyxDQUFBO0FBQ0YsQ0FBQyJ9
package/esm/dx.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  /// <reference types="node" resolution-mode="require"/>
4
4
  import { Readable } from 'node:stream';
5
5
  import type { IncomingMessage, ServerResponse } from 'node:http';
6
- import { SendOptions } from 'send';
6
+ import type { SendOptions } from './staticHelpers.ts';
7
7
  export interface Chainable<P extends any[] = any[], R = any, Next = (...np: any[]) => any> {
8
8
  (next: Next, ...p: P): R;
9
9
  }
package/esm/dx.js CHANGED
@@ -1,15 +1,24 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
- import { writeRes } from './dxHelpers.js';
2
+ import { writeRes } from './dxHelpers.ts';
3
3
  export function makeDxContext(maker) {
4
- const promiseSymbol = Symbol('promise');
5
- const valueSymbol = Symbol('value');
6
- // wrap in an async function to ensure the maker is called only once
7
- const context = (...params) => getReq()[promiseSymbol] ??= (async () => getReq()[valueSymbol] = await maker(...params))();
4
+ const promiseMap = new WeakMap();
5
+ const valueMap = new WeakMap();
6
+ const context = (...params) => {
7
+ const req = getReq();
8
+ if (!promiseMap.has(req))
9
+ promiseMap.set(req, (async () => {
10
+ const value = await maker(...params);
11
+ valueMap.set(req, value);
12
+ return value;
13
+ })());
14
+ return promiseMap.get(req);
15
+ };
8
16
  Object.defineProperty(context, 'value', {
9
- get() { return getReq()[valueSymbol]; },
17
+ get() { return valueMap.get(getReq()); },
10
18
  set(value) {
11
- getReq()[promiseSymbol] = Promise.resolve(value);
12
- getReq()[valueSymbol] = value;
19
+ const req = getReq();
20
+ promiseMap.set(req, Promise.resolve(value));
21
+ valueMap.set(req, value);
13
22
  }
14
23
  });
15
24
  context.chain = (...params) => async (next) => {
@@ -17,10 +26,10 @@ export function makeDxContext(maker) {
17
26
  return next();
18
27
  };
19
28
  context.set = (req, value) => {
20
- req[promiseSymbol] = Promise.resolve(value);
21
- req[valueSymbol] = value;
29
+ promiseMap.set(req, Promise.resolve(value));
30
+ valueMap.set(req, value);
22
31
  };
23
- context.get = req => req[valueSymbol];
32
+ context.get = req => valueMap.get(req);
24
33
  return context;
25
34
  }
26
35
  const requestStorage = new AsyncLocalStorage();
@@ -116,4 +125,4 @@ export function setRedirect(url, status) {
116
125
  // https://github.com/jshttp/content-disposition/blob/1037e24e4790273da96645ad250061f39e77968c/index.js#L186
117
126
  // because in most applications, users can specify a simple filename which usually doesn't need to be validated.
118
127
  // we leave setDownload() implementation for users, for now.
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxFQUFpQixRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQXVCdkQsTUFBTSxVQUFVLGFBQWEsQ0FLM0IsS0FBNEM7SUFDN0MsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNuQyxvRUFBb0U7SUFDcEUsTUFBTSxPQUFPLEdBQWdDLENBQUMsR0FBRyxNQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUM5SixNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUU7UUFDdkMsR0FBRyxLQUFJLE9BQU8sTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUEsQ0FBQSxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxLQUFLO1lBQ1IsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNoRCxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUE7UUFDOUIsQ0FBQztLQUNELENBQUMsQ0FBQTtJQUNGLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFDLElBQUksRUFBQyxFQUFFO1FBQzNDLE1BQU0sT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUE7UUFDeEIs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
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxFQUFpQixRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQXVCdkQsTUFBTSxVQUFVLGFBQWEsQ0FLM0IsS0FBNEM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUE7SUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQXNCLENBQUE7SUFDbEQsTUFBTSxPQUFPLEdBQWdDLENBQUMsR0FBRyxNQUFjLEVBQUUsRUFBRTtRQUNsRSxNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQTtRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUN6RCxNQUFNLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFBO2dCQUNwQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtnQkFDeEIsT0FBTyxLQUFLLENBQUE7WUFDYixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDTCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFBO0lBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFO1FBQ3ZDLEdBQUcsS0FBSSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUM7UUFDckMsR0FBRyxDQUFDLEtBQUs7WUFDUixNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQTtZQUNwQixVQUFVLENBQUMsR0FBRyxD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