@eggjs/koa 2.21.0 → 2.22.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.
- package/Readme.md +8 -8
- package/dist/commonjs/application.d.ts +12 -12
- package/dist/commonjs/application.js +60 -22
- package/dist/commonjs/context.d.ts +6 -10
- package/dist/commonjs/context.js +21 -10
- package/dist/commonjs/index.d.ts +1 -1
- package/dist/commonjs/index.js +1 -2
- package/dist/commonjs/request.d.ts +3 -2
- package/dist/commonjs/request.js +35 -64
- package/dist/commonjs/response.d.ts +3 -2
- package/dist/commonjs/response.js +27 -20
- package/dist/commonjs/types.d.ts +3 -2
- package/dist/esm/application.d.ts +12 -12
- package/dist/esm/application.js +25 -20
- package/dist/esm/context.d.ts +6 -10
- package/dist/esm/context.js +21 -10
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/request.d.ts +3 -2
- package/dist/esm/request.js +35 -64
- package/dist/esm/response.d.ts +3 -2
- package/dist/esm/response.js +27 -20
- package/dist/esm/types.d.ts +3 -2
- package/dist/package.json +1 -1
- package/package.json +18 -8
- package/src/application.ts +48 -30
- package/src/context.ts +73 -29
- package/src/index.ts +1 -1
- package/src/request.ts +73 -54
- package/src/response.ts +54 -28
- package/src/types.ts +4 -2
package/dist/esm/response.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import util from 'node:util';
|
|
2
2
|
import Stream from 'node:stream';
|
|
3
3
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
4
|
+
import { type Options as ContentDispositionOptions } from 'content-disposition';
|
|
4
5
|
import type { Application } from './application.js';
|
|
5
6
|
import type { Context } from './context.js';
|
|
6
7
|
import type { Request } from './request.js';
|
|
@@ -87,7 +88,7 @@ export declare class Response {
|
|
|
87
88
|
/**
|
|
88
89
|
* Set Content-Disposition header to "attachment" with optional `filename`.
|
|
89
90
|
*/
|
|
90
|
-
attachment(filename?: string, options?:
|
|
91
|
+
attachment(filename?: string, options?: ContentDispositionOptions): void;
|
|
91
92
|
/**
|
|
92
93
|
* Set Content-Type response header with `type` through `mime.lookup()`
|
|
93
94
|
* when it does not contain a charset.
|
|
@@ -173,7 +174,7 @@ export declare class Response {
|
|
|
173
174
|
* this.set('Accept', 'application/json');
|
|
174
175
|
* this.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' });
|
|
175
176
|
*/
|
|
176
|
-
set(field: string | Record<string, string>, val?: string | number |
|
|
177
|
+
set(field: string | Record<string, string>, val?: string | number | unknown[]): void;
|
|
177
178
|
/**
|
|
178
179
|
* Append additional header `field` with value `val`.
|
|
179
180
|
*
|
package/dist/esm/response.js
CHANGED
|
@@ -58,17 +58,18 @@ export class Response {
|
|
|
58
58
|
assert(code >= 100 && code <= 999, `invalid status code: ${code}`);
|
|
59
59
|
this._explicitStatus = true;
|
|
60
60
|
this.res.statusCode = code;
|
|
61
|
-
if (this.req.httpVersionMajor < 2) {
|
|
61
|
+
if (this.req.httpVersionMajor < 2 && statuses.message[code]) {
|
|
62
62
|
this.res.statusMessage = statuses.message[code];
|
|
63
63
|
}
|
|
64
|
-
if (this.body && statuses.empty[code])
|
|
64
|
+
if (this.body && statuses.empty[code]) {
|
|
65
65
|
this.body = null;
|
|
66
|
+
}
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
69
|
* Get response status message
|
|
69
70
|
*/
|
|
70
71
|
get message() {
|
|
71
|
-
return this.res.statusMessage
|
|
72
|
+
return this.res.statusMessage ?? statuses.message[this.status];
|
|
72
73
|
}
|
|
73
74
|
/**
|
|
74
75
|
* Set response status message
|
|
@@ -76,6 +77,7 @@ export class Response {
|
|
|
76
77
|
set message(msg) {
|
|
77
78
|
this.res.statusMessage = msg;
|
|
78
79
|
}
|
|
80
|
+
// oxlint-disable-next-line typescript/no-explicit-any
|
|
79
81
|
_body;
|
|
80
82
|
_explicitNullBody;
|
|
81
83
|
/**
|
|
@@ -91,11 +93,13 @@ export class Response {
|
|
|
91
93
|
const original = this._body;
|
|
92
94
|
this._body = val;
|
|
93
95
|
// no content
|
|
94
|
-
if (val
|
|
95
|
-
if (!statuses.empty[this.status])
|
|
96
|
+
if (val === null || val === undefined) {
|
|
97
|
+
if (!statuses.empty[this.status]) {
|
|
96
98
|
this.status = 204;
|
|
97
|
-
|
|
99
|
+
}
|
|
100
|
+
if (val === null) {
|
|
98
101
|
this._explicitNullBody = true;
|
|
102
|
+
}
|
|
99
103
|
this.remove('Content-Type');
|
|
100
104
|
this.remove('Content-Length');
|
|
101
105
|
this.remove('Transfer-Encoding');
|
|
@@ -123,15 +127,17 @@ export class Response {
|
|
|
123
127
|
// stream
|
|
124
128
|
if (val instanceof Stream) {
|
|
125
129
|
onFinish(this.res, destroy.bind(null, val));
|
|
126
|
-
//
|
|
130
|
+
// oxlint-disable-next-line eqeqeq
|
|
127
131
|
if (original != val) {
|
|
128
132
|
val.once('error', err => this.ctx.onerror(err));
|
|
129
133
|
// overwriting
|
|
130
|
-
if (original
|
|
134
|
+
if (original !== null && original !== undefined) {
|
|
131
135
|
this.remove('Content-Length');
|
|
136
|
+
}
|
|
132
137
|
}
|
|
133
|
-
if (setType)
|
|
138
|
+
if (setType) {
|
|
134
139
|
this.type = 'bin';
|
|
140
|
+
}
|
|
135
141
|
return;
|
|
136
142
|
}
|
|
137
143
|
// json
|
|
@@ -155,7 +161,7 @@ export class Response {
|
|
|
155
161
|
*/
|
|
156
162
|
get length() {
|
|
157
163
|
if (this.has('Content-Length')) {
|
|
158
|
-
return parseInt(this.get('Content-Length')
|
|
164
|
+
return Number.parseInt(this.get('Content-Length')) || 0;
|
|
159
165
|
}
|
|
160
166
|
const { body } = this;
|
|
161
167
|
if (!body || body instanceof Stream) {
|
|
@@ -213,7 +219,7 @@ export class Response {
|
|
|
213
219
|
if (this.ctx.accepts('html')) {
|
|
214
220
|
url = escape(url);
|
|
215
221
|
this.type = 'text/html; charset=utf-8';
|
|
216
|
-
this.body = `Redirecting to
|
|
222
|
+
this.body = `Redirecting to ${url}.`;
|
|
217
223
|
return;
|
|
218
224
|
}
|
|
219
225
|
// text
|
|
@@ -268,8 +274,10 @@ export class Response {
|
|
|
268
274
|
* this.response.is('html', 'json')
|
|
269
275
|
*/
|
|
270
276
|
is(type, ...types) {
|
|
271
|
-
|
|
272
|
-
|
|
277
|
+
let testTypes = [];
|
|
278
|
+
if (type) {
|
|
279
|
+
testTypes = Array.isArray(type) ? type : [type];
|
|
280
|
+
}
|
|
273
281
|
return typeis(this.type, [...testTypes, ...types]);
|
|
274
282
|
}
|
|
275
283
|
/**
|
|
@@ -355,15 +363,16 @@ export class Response {
|
|
|
355
363
|
if (this.headerSent)
|
|
356
364
|
return;
|
|
357
365
|
if (typeof field === 'string') {
|
|
366
|
+
let value = val;
|
|
358
367
|
if (Array.isArray(val)) {
|
|
359
|
-
|
|
368
|
+
value = val.map(v => {
|
|
360
369
|
return typeof v === 'string' ? v : String(v);
|
|
361
370
|
});
|
|
362
371
|
}
|
|
363
372
|
else if (typeof val !== 'string') {
|
|
364
|
-
|
|
373
|
+
value = String(val);
|
|
365
374
|
}
|
|
366
|
-
this.res.setHeader(field,
|
|
375
|
+
this.res.setHeader(field, value);
|
|
367
376
|
}
|
|
368
377
|
else {
|
|
369
378
|
for (const key in field) {
|
|
@@ -385,9 +394,7 @@ export class Response {
|
|
|
385
394
|
const prev = this.get(field);
|
|
386
395
|
let value = val;
|
|
387
396
|
if (prev) {
|
|
388
|
-
value = Array.isArray(prev)
|
|
389
|
-
? prev.concat(value)
|
|
390
|
-
: [prev].concat(val);
|
|
397
|
+
value = Array.isArray(prev) ? prev.concat(value) : [prev].concat(val);
|
|
391
398
|
}
|
|
392
399
|
return this.set(field, value);
|
|
393
400
|
}
|
|
@@ -449,4 +456,4 @@ export class Response {
|
|
|
449
456
|
this.res.flushHeaders();
|
|
450
457
|
}
|
|
451
458
|
}
|
|
452
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUVqQyxPQUFPLGtCQUFrQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLFFBQVEsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUtsQyxNQUFNLE9BQU8sUUFBUTtJQUVuQixHQUFHLENBQWM7SUFDakIsR0FBRyxDQUFrQjtJQUNyQixHQUFHLENBQWlCO0lBQ3BCLEdBQUcsQ0FBVTtJQUNiLE9BQU8sQ0FBVTtJQUVqQixZQUFZLEdBQWdCLEVBQUUsR0FBWSxFQUFFLEdBQW9CLEVBQUUsR0FBbUI7UUFDbkYsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJ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
|
|
459
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUdqQyxPQUFPLGtCQUVOLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sUUFBUSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDO0FBTWxDLE1BQU0sT0FBTyxRQUFRO0lBRW5CLEdBQUcsQ0FBYztJQUNqQixHQUFHLENBQWtCO0lBQ3JCLEdBQUcsQ0FBaUI7SUFDcEIsR0FBRyxDQUFVO0lBQ2IsT0FBTyxDQUFVO0lBRWpCLFlBQ0UsR0FBZ0IsRUFDaEIsR0FBWSxFQUNaLEdBQW9CLEVBQ3BCLEdBQW1CO1FBRW5CLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWUsQ0FBVTtJQUV6Qjs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNLENBQUMsSUFBWTtRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsd0JBQXdCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPLENBQUMsR0FBVztRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDL0IsQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxLQUFLLENBQU07SUFDWCxpQkFBaUIsQ0FBVTtJQUUzQjs7T0FFRztJQUNILElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLElBQUksQ0FDTixHQUFtRTtRQUVuRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBRWpCLGFBQWE7UUFDYixJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQztRQUVELGlCQUFpQjtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUU3QywyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFDLFNBQVM7UUFDVCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLElBQUksT0FBTztnQkFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzlELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxPQUFPO1FBQ1QsQ0FBQztRQUVELFNBQVM7UUFDVCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLE9BQU87Z0JBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQsU0FBUztRQUNULElBQUksR0FBRyxZQUFZLE1BQU0sRUFBRSxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUMsa0NBQWtDO1lBQ2xDLElBQUksUUFBUSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELGNBQWM7Z0JBQ2QsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE1BQU0sQ0FBQyxDQUE4QjtRQUN2QyxJQUFJLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE1BQU07UUFDUixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDcEMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQUMsS0FBYTtRQUNoQixJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILFFBQVEsQ0FBQyxHQUFXLEVBQUUsR0FBWTtRQUNoQyxXQUFXO1FBQ1gsSUFBSSxHQUFHLEtBQUssTUFBTTtZQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBUyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDO1FBQ3pFLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDNUQsOENBQThDO1lBQzlDLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFckMsU0FBUztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUV2RCxPQUFPO1FBQ1AsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzdCLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRywwQkFBMEIsQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztZQUNyQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU87UUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLDJCQUEyQixDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxRQUFpQixFQUFFLE9BQW1DO1FBQy9ELElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsSUFBSSxJQUFJLENBQUMsSUFBK0I7UUFDdEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLElBQUk7UUFDTixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFTLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsRUFBRSxDQUFDLElBQXdCLEVBQUUsR0FBRyxLQUFlO1FBQzdDLElBQUksU0FBUyxHQUFhLEVBQUUsQ0FBQztRQUM3QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLFlBQVksQ0FBQyxHQUE4QjtRQUM3QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFlBQVk7UUFDZCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFTLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUFJLElBQUksQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILEdBQUcsQ0FBaUMsS0FBYTtRQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQU0sQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxHQUFHLENBQUMsS0FBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILEdBQUcsQ0FDRCxLQUFzQyxFQUN0QyxHQUFpQztRQUVqQyxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUM1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksS0FBSyxHQUFHLEdBQXdCLENBQUM7WUFDckMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNsQixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNuQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsS0FBYSxFQUFFLEdBQXNCO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQW9CLEtBQUssQ0FBQyxDQUFDO1FBRWhELElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsK0NBQStDO1FBQy9DLHdEQUF3RDtRQUN4RCwrREFBK0Q7UUFDL0Qsc0VBQXNFO1FBQ3RFLHlGQUF5RjtRQUN6RixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTlELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQy9CLDZEQUE2RDtRQUM3RCxzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFDdEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0YifQ==
|
package/dist/esm/types.d.ts
CHANGED
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/koa",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.22.1",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">= 18.19.0"
|
|
6
6
|
},
|
|
@@ -14,9 +14,17 @@
|
|
|
14
14
|
"preci": "npm run lint",
|
|
15
15
|
"ci": "egg-bin cov",
|
|
16
16
|
"postci": "npm run prepublishOnly && attw --pack",
|
|
17
|
-
"lint": "
|
|
17
|
+
"lint": "oxlint",
|
|
18
18
|
"authors": "git log --format='%aN <%aE>' | sort -u > AUTHORS",
|
|
19
|
-
"prepublishOnly": "tshy && tshy-after"
|
|
19
|
+
"prepublishOnly": "tshy && tshy-after",
|
|
20
|
+
"prepare": "husky"
|
|
21
|
+
},
|
|
22
|
+
"lint-staged": {
|
|
23
|
+
"*": "prettier --write --ignore-unknown --cache",
|
|
24
|
+
"*.{ts,js,json,md,yml}": [
|
|
25
|
+
"prettier --ignore-unknown --write",
|
|
26
|
+
"oxlint --fix"
|
|
27
|
+
]
|
|
20
28
|
},
|
|
21
29
|
"repository": {
|
|
22
30
|
"type": "git",
|
|
@@ -33,6 +41,7 @@
|
|
|
33
41
|
],
|
|
34
42
|
"license": "MIT",
|
|
35
43
|
"dependencies": {
|
|
44
|
+
"@types/content-disposition": "^0.5.8",
|
|
36
45
|
"accepts": "^1.3.8",
|
|
37
46
|
"cache-content-type": "^2.0.0",
|
|
38
47
|
"content-disposition": "~0.5.4",
|
|
@@ -53,11 +62,10 @@
|
|
|
53
62
|
"vary": "^1.1.2"
|
|
54
63
|
},
|
|
55
64
|
"devDependencies": {
|
|
56
|
-
"@arethetypeswrong/cli": "^0.17.
|
|
65
|
+
"@arethetypeswrong/cli": "^0.17.4",
|
|
57
66
|
"@eggjs/bin": "^7.0.1",
|
|
58
|
-
"@eggjs/tsconfig": "
|
|
67
|
+
"@eggjs/tsconfig": "2",
|
|
59
68
|
"@types/accepts": "^1.3.7",
|
|
60
|
-
"@types/content-disposition": "^0.5.8",
|
|
61
69
|
"@types/content-type": "^1.1.8",
|
|
62
70
|
"@types/cookies": "^0.9.0",
|
|
63
71
|
"@types/destroy": "^1.0.3",
|
|
@@ -74,8 +82,10 @@
|
|
|
74
82
|
"@types/supertest": "^6.0.2",
|
|
75
83
|
"@types/type-is": "^1.6.6",
|
|
76
84
|
"@types/vary": "^1.1.3",
|
|
77
|
-
"
|
|
78
|
-
"
|
|
85
|
+
"husky": "9",
|
|
86
|
+
"lint-staged": "15",
|
|
87
|
+
"oxlint": "^0.16.2",
|
|
88
|
+
"prettier": "3",
|
|
79
89
|
"mm": "^4.0.1",
|
|
80
90
|
"supertest": "^3.1.0",
|
|
81
91
|
"tsd": "^0.31.0",
|
package/src/application.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
1
|
+
import util, { debuglog } from 'node:util';
|
|
2
2
|
import Emitter from 'node:events';
|
|
3
|
-
import util from 'node:util';
|
|
4
3
|
import Stream from 'node:stream';
|
|
5
4
|
import http from 'node:http';
|
|
6
5
|
import type { AsyncLocalStorage } from 'node:async_hooks';
|
|
7
6
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
7
|
+
|
|
8
8
|
import { getAsyncLocalStorage } from 'gals';
|
|
9
9
|
import { isGeneratorFunction } from 'is-type-of';
|
|
10
10
|
import onFinished from 'on-finished';
|
|
11
11
|
import statuses from 'statuses';
|
|
12
12
|
import compose from 'koa-compose';
|
|
13
|
+
|
|
13
14
|
import { HttpError } from 'http-errors';
|
|
14
15
|
import { Context } from './context.js';
|
|
15
16
|
import { Request } from './request.js';
|
|
@@ -18,10 +19,13 @@ import type { CustomError, AnyProto } from './types.js';
|
|
|
18
19
|
|
|
19
20
|
const debug = debuglog('@eggjs/koa/application');
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
// oxlint-disable-next-line typescript/no-explicit-any
|
|
23
|
+
export type ProtoImplClass<T = object> = new (...args: any[]) => T;
|
|
22
24
|
export type Next = () => Promise<void>;
|
|
23
25
|
type _MiddlewareFunc<T> = (ctx: T, next: Next) => Promise<void> | void;
|
|
24
|
-
export type MiddlewareFunc<T = Context> = _MiddlewareFunc<T> & {
|
|
26
|
+
export type MiddlewareFunc<T extends Context = Context> = _MiddlewareFunc<T> & {
|
|
27
|
+
_name?: string;
|
|
28
|
+
};
|
|
25
29
|
|
|
26
30
|
/**
|
|
27
31
|
* Expose `Application` class.
|
|
@@ -53,15 +57,15 @@ export class Application extends Emitter {
|
|
|
53
57
|
|
|
54
58
|
/**
|
|
55
59
|
* Initialize a new `Application`.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
*
|
|
61
|
+
* @param {object} [options] Application options
|
|
62
|
+
* @param {string} [options.env] Environment, default is `development`
|
|
63
|
+
* @param {string[]} [options.keys] Signed cookie keys
|
|
64
|
+
* @param {boolean} [options.proxy] Trust proxy headers
|
|
65
|
+
* @param {number} [options.subdomainOffset] Subdomain offset
|
|
66
|
+
* @param {string} [options.proxyIpHeader] Proxy IP header, defaults to X-Forwarded-For
|
|
67
|
+
* @param {number} [options.maxIpsCount] Max IPs read from proxy IP header, default to 0 (means infinity)
|
|
68
|
+
*/
|
|
65
69
|
|
|
66
70
|
constructor(options?: {
|
|
67
71
|
proxy?: boolean;
|
|
@@ -84,11 +88,14 @@ export class Application extends Emitter {
|
|
|
84
88
|
this.middleware = [];
|
|
85
89
|
this.ctxStorage = getAsyncLocalStorage();
|
|
86
90
|
this.silent = false;
|
|
87
|
-
this.ContextClass =
|
|
91
|
+
this.ContextClass =
|
|
92
|
+
class ApplicationContext extends Context {} as ProtoImplClass<Context>;
|
|
88
93
|
this.context = this.ContextClass.prototype;
|
|
89
|
-
this.RequestClass =
|
|
94
|
+
this.RequestClass =
|
|
95
|
+
class ApplicationRequest extends Request {} as ProtoImplClass<Request>;
|
|
90
96
|
this.request = this.RequestClass.prototype;
|
|
91
|
-
this.ResponseClass =
|
|
97
|
+
this.ResponseClass =
|
|
98
|
+
class ApplicationResponse extends Response {} as ProtoImplClass<Response>;
|
|
92
99
|
this.response = this.ResponseClass.prototype;
|
|
93
100
|
}
|
|
94
101
|
|
|
@@ -119,6 +126,7 @@ export class Application extends Emitter {
|
|
|
119
126
|
*
|
|
120
127
|
* http.createServer(app.callback()).listen(...)
|
|
121
128
|
*/
|
|
129
|
+
// oxlint-disable-next-line typescript/no-explicit-any
|
|
122
130
|
listen(...args: any[]) {
|
|
123
131
|
debug('listen with args: %o', args);
|
|
124
132
|
const server = http.createServer(this.callback());
|
|
@@ -151,16 +159,19 @@ export class Application extends Emitter {
|
|
|
151
159
|
/**
|
|
152
160
|
* Use the given middleware `fn`.
|
|
153
161
|
*/
|
|
154
|
-
use(fn: MiddlewareFunc) {
|
|
155
|
-
if (typeof fn !== 'function')
|
|
162
|
+
use<T extends Context = Context>(fn: MiddlewareFunc<T>) {
|
|
163
|
+
if (typeof fn !== 'function')
|
|
164
|
+
throw new TypeError('middleware must be a function!');
|
|
156
165
|
const name = fn._name || fn.name || '-';
|
|
157
166
|
if (isGeneratorFunction(fn)) {
|
|
158
|
-
throw new TypeError(
|
|
159
|
-
|
|
160
|
-
|
|
167
|
+
throw new TypeError(
|
|
168
|
+
`Support for generators was removed, middleware: ${name}. ` +
|
|
169
|
+
'See the documentation for examples of how to convert old middleware ' +
|
|
170
|
+
'https://github.com/koajs/koa/blob/master/docs/migration.md'
|
|
171
|
+
);
|
|
161
172
|
}
|
|
162
173
|
debug('use %o #%d', name, this.middleware.length);
|
|
163
|
-
this.middleware.push(fn);
|
|
174
|
+
this.middleware.push(fn as MiddlewareFunc<Context>);
|
|
164
175
|
return this;
|
|
165
176
|
}
|
|
166
177
|
|
|
@@ -196,12 +207,16 @@ export class Application extends Emitter {
|
|
|
196
207
|
* Handle request in callback.
|
|
197
208
|
* @private
|
|
198
209
|
*/
|
|
199
|
-
protected async handleRequest(
|
|
210
|
+
protected async handleRequest(
|
|
211
|
+
ctx: Context,
|
|
212
|
+
fnMiddleware: (ctx: Context) => Promise<void>
|
|
213
|
+
) {
|
|
200
214
|
this.emit('request', ctx);
|
|
201
215
|
const res = ctx.res;
|
|
202
216
|
res.statusCode = 404;
|
|
203
|
-
const onerror = (err:
|
|
204
|
-
|
|
217
|
+
const onerror = (err: CustomError) => ctx.onerror(err);
|
|
218
|
+
// oxlint-disable-next-line promise/prefer-await-to-callbacks
|
|
219
|
+
onFinished(res, (err: CustomError | null) => {
|
|
205
220
|
if (err) {
|
|
206
221
|
onerror(err);
|
|
207
222
|
}
|
|
@@ -211,7 +226,7 @@ export class Application extends Emitter {
|
|
|
211
226
|
await fnMiddleware(ctx);
|
|
212
227
|
return this._respond(ctx);
|
|
213
228
|
} catch (err) {
|
|
214
|
-
return onerror(err);
|
|
229
|
+
return onerror(err as CustomError);
|
|
215
230
|
}
|
|
216
231
|
}
|
|
217
232
|
|
|
@@ -232,15 +247,18 @@ export class Application extends Emitter {
|
|
|
232
247
|
// When dealing with cross-globals a normal `instanceof` check doesn't work properly.
|
|
233
248
|
// See https://github.com/koajs/koa/issues/1466
|
|
234
249
|
// We can probably remove it once jest fixes https://github.com/facebook/jest/issues/2549.
|
|
235
|
-
const isNativeError =
|
|
250
|
+
const isNativeError =
|
|
251
|
+
err instanceof Error ||
|
|
236
252
|
Object.prototype.toString.call(err) === '[object Error]';
|
|
237
|
-
if (!isNativeError)
|
|
253
|
+
if (!isNativeError)
|
|
254
|
+
throw new TypeError(util.format('non-error thrown: %j', err));
|
|
238
255
|
|
|
239
256
|
if (err.status === 404 || err.expose) return;
|
|
240
257
|
if (this.silent) return;
|
|
241
258
|
|
|
242
259
|
const msg = err.stack || err.toString();
|
|
243
|
-
console
|
|
260
|
+
// oxlint-disable-next-line no-console
|
|
261
|
+
console.error(`\n${msg.replaceAll(/^/gm, ' ')}\n`);
|
|
244
262
|
}
|
|
245
263
|
|
|
246
264
|
/**
|
|
@@ -272,7 +290,7 @@ export class Application extends Emitter {
|
|
|
272
290
|
}
|
|
273
291
|
|
|
274
292
|
// status body
|
|
275
|
-
if (body
|
|
293
|
+
if (body === null || body === undefined) {
|
|
276
294
|
if (ctx.response._explicitNullBody) {
|
|
277
295
|
ctx.response.remove('Content-Type');
|
|
278
296
|
ctx.response.remove('Transfer-Encoding');
|