@eggjs/koa 2.18.3 → 2.18.5
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 +6 -4
- package/dist/commonjs/application.d.ts +11 -8
- package/dist/commonjs/application.js +19 -7
- package/dist/commonjs/context.d.ts +0 -2
- package/dist/commonjs/request.d.ts +3 -7
- package/dist/commonjs/response.d.ts +0 -5
- package/dist/esm/application.d.ts +11 -8
- package/dist/esm/application.js +19 -7
- package/dist/esm/context.d.ts +0 -2
- package/dist/esm/request.d.ts +3 -7
- package/dist/esm/response.d.ts +0 -5
- package/package.json +7 -5
- package/src/application.ts +20 -6
package/Readme.md
CHANGED
|
@@ -170,10 +170,6 @@ npm test
|
|
|
170
170
|
|
|
171
171
|
To report a security vulnerability, please do not open an issue, as this notifies attackers of the vulnerability. Instead, please email [fengmk2](mailto:fengmk2+eggjs@gmail.com) to disclose.
|
|
172
172
|
|
|
173
|
-
## Authors
|
|
174
|
-
|
|
175
|
-
See [AUTHORS](AUTHORS).
|
|
176
|
-
|
|
177
173
|
## Community
|
|
178
174
|
|
|
179
175
|
- [Examples](https://github.com/koajs/examples)
|
|
@@ -184,3 +180,9 @@ See [AUTHORS](AUTHORS).
|
|
|
184
180
|
## License
|
|
185
181
|
|
|
186
182
|
[MIT](LICENSE)
|
|
183
|
+
|
|
184
|
+
## Contributors
|
|
185
|
+
|
|
186
|
+
[](https://github.com/eggjs/koa/graphs/contributors)
|
|
187
|
+
|
|
188
|
+
Made with [contributors-img](https://contrib.rocks).
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/// <reference types="http-errors" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
/// <reference types="node" />
|
|
5
|
-
/// <reference types="node" />
|
|
6
1
|
import Emitter from 'node:events';
|
|
7
2
|
import util from 'node:util';
|
|
8
3
|
import http from 'node:http';
|
|
@@ -23,17 +18,16 @@ export type MiddlewareFunc = _MiddlewareFunc & {
|
|
|
23
18
|
* Inherits from `Emitter.prototype`.
|
|
24
19
|
*/
|
|
25
20
|
export declare class Application extends Emitter {
|
|
26
|
-
#private;
|
|
27
21
|
/**
|
|
28
22
|
* Make HttpError available to consumers of the library so that consumers don't
|
|
29
23
|
* have a direct dependency upon `http-errors`
|
|
30
24
|
*/
|
|
31
25
|
static HttpError: import("http-errors").HttpErrorConstructor<number>;
|
|
32
|
-
|
|
26
|
+
protected _proxy: boolean;
|
|
27
|
+
protected _env: string;
|
|
33
28
|
subdomainOffset: number;
|
|
34
29
|
proxyIpHeader: string;
|
|
35
30
|
maxIpsCount: number;
|
|
36
|
-
env: string;
|
|
37
31
|
keys?: string[];
|
|
38
32
|
middleware: MiddlewareFunc[];
|
|
39
33
|
ctxStorage: AsyncLocalStorage<ContextDelegation>;
|
|
@@ -63,6 +57,10 @@ export declare class Application extends Emitter {
|
|
|
63
57
|
env?: string;
|
|
64
58
|
keys?: string[];
|
|
65
59
|
});
|
|
60
|
+
get env(): string;
|
|
61
|
+
set env(value: string);
|
|
62
|
+
get proxy(): boolean;
|
|
63
|
+
set proxy(value: boolean);
|
|
66
64
|
/**
|
|
67
65
|
* Shorthand for:
|
|
68
66
|
*
|
|
@@ -104,6 +102,11 @@ export declare class Application extends Emitter {
|
|
|
104
102
|
* return current context from async local storage
|
|
105
103
|
*/
|
|
106
104
|
get currentContext(): ContextDelegation | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Handle request in callback.
|
|
107
|
+
* @private
|
|
108
|
+
*/
|
|
109
|
+
protected handleRequest(ctx: ContextDelegation, fnMiddleware: (ctx: ContextDelegation) => Promise<void>): Promise<void | http.ServerResponse<http.IncomingMessage>>;
|
|
107
110
|
/**
|
|
108
111
|
* Initialize a new context.
|
|
109
112
|
* @private
|
|
@@ -29,11 +29,11 @@ class Application extends node_events_1.default {
|
|
|
29
29
|
* have a direct dependency upon `http-errors`
|
|
30
30
|
*/
|
|
31
31
|
static HttpError = http_errors_1.HttpError;
|
|
32
|
-
|
|
32
|
+
_proxy;
|
|
33
|
+
_env;
|
|
33
34
|
subdomainOffset;
|
|
34
35
|
proxyIpHeader;
|
|
35
36
|
maxIpsCount;
|
|
36
|
-
env;
|
|
37
37
|
keys;
|
|
38
38
|
middleware;
|
|
39
39
|
ctxStorage;
|
|
@@ -58,11 +58,11 @@ class Application extends node_events_1.default {
|
|
|
58
58
|
constructor(options) {
|
|
59
59
|
super();
|
|
60
60
|
options = options || {};
|
|
61
|
-
this.
|
|
61
|
+
this._proxy = options.proxy || false;
|
|
62
62
|
this.subdomainOffset = options.subdomainOffset || 2;
|
|
63
63
|
this.proxyIpHeader = options.proxyIpHeader || 'X-Forwarded-For';
|
|
64
64
|
this.maxIpsCount = options.maxIpsCount || 0;
|
|
65
|
-
this.
|
|
65
|
+
this._env = options.env || process.env.NODE_ENV || 'development';
|
|
66
66
|
if (options.keys)
|
|
67
67
|
this.keys = options.keys;
|
|
68
68
|
this.middleware = [];
|
|
@@ -78,6 +78,18 @@ class Application extends node_events_1.default {
|
|
|
78
78
|
};
|
|
79
79
|
this.response = this.ResponseClass.prototype;
|
|
80
80
|
}
|
|
81
|
+
get env() {
|
|
82
|
+
return this._env;
|
|
83
|
+
}
|
|
84
|
+
set env(value) {
|
|
85
|
+
this._env = value;
|
|
86
|
+
}
|
|
87
|
+
get proxy() {
|
|
88
|
+
return this._proxy;
|
|
89
|
+
}
|
|
90
|
+
set proxy(value) {
|
|
91
|
+
this._proxy = value;
|
|
92
|
+
}
|
|
81
93
|
/**
|
|
82
94
|
* Shorthand for:
|
|
83
95
|
*
|
|
@@ -136,7 +148,7 @@ class Application extends node_events_1.default {
|
|
|
136
148
|
const handleRequest = (req, res) => {
|
|
137
149
|
const ctx = this.createContext(req, res);
|
|
138
150
|
return this.ctxStorage.run(ctx, async () => {
|
|
139
|
-
return await this
|
|
151
|
+
return await this.handleRequest(ctx, fn);
|
|
140
152
|
});
|
|
141
153
|
};
|
|
142
154
|
return handleRequest;
|
|
@@ -151,7 +163,7 @@ class Application extends node_events_1.default {
|
|
|
151
163
|
* Handle request in callback.
|
|
152
164
|
* @private
|
|
153
165
|
*/
|
|
154
|
-
async
|
|
166
|
+
async handleRequest(ctx, fnMiddleware) {
|
|
155
167
|
const res = ctx.res;
|
|
156
168
|
res.statusCode = 404;
|
|
157
169
|
const onerror = (err) => ctx.onerror(err);
|
|
@@ -253,4 +265,4 @@ class Application extends node_events_1.default {
|
|
|
253
265
|
}
|
|
254
266
|
exports.Application = Application;
|
|
255
267
|
exports.default = Application;
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUNBQXFDO0FBQ3JDLDhEQUFrQztBQUNsQywwREFBNkI7QUFDN0IsOERBQWlDO0FBQ2pDLDBEQUE2QjtBQUc3QiwrQkFBNEM7QUFDNUMsMkNBQWlEO0FBQ2pELDhEQUFxQztBQUNyQyx3REFBZ0M7QUFDaEMsOERBQWtDO0FBQ2xDLDZDQUF3QztBQUN4Qyw2Q0FBdUM7QUFDdkMsNkNBQXVDO0FBQ3ZDLCtDQUF5QztBQUl6QyxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsd0JBQXdCLENBQUMsQ0FBQztBQU9qRDs7O0dBR0c7QUFDSCxNQUFhLFdBQVksU0FBUSxxQkFBTztJQUN0Qzs7O09BR0c7SUFDSCxNQUFNLENBQUMsU0FBUyxHQUFHLHVCQUFTLENBQUM7SUFFbkIsTUFBTSxDQUFVO0lBQ2hCLElBQUksQ0FBUztJQUN2QixlQUFlLENBQVM7SUFDeEIsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBUztJQUNwQixJQUFJLENBQVk7SUFDaEIsVUFBVSxDQUFtQjtJQUM3QixVQUFVLENBQXVDO0lBQ2pELE1BQU0sQ0FBVTtJQUNoQixZQUFZLENBQW9DO0lBQ2hELE9BQU8sQ0FBVztJQUNsQixZQUFZLENBQTBCO0lBQ3RDLE9BQU8sQ0FBVztJQUNsQixhQUFhLENBQTJCO0lBQ3hDLFFBQVEsQ0FBVztJQUVuQjs7Ozs7Ozs7OztRQVVJO0lBRUosWUFBWSxPQU9YO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFB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
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
/// <reference types="node" />
|
|
5
|
-
import net from 'node:net';
|
|
1
|
+
import type { Socket } from 'node:net';
|
|
6
2
|
import qs from 'node:querystring';
|
|
7
3
|
import util from 'node:util';
|
|
8
4
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
@@ -129,9 +125,9 @@ export declare class Request {
|
|
|
129
125
|
/**
|
|
130
126
|
* Return the request socket.
|
|
131
127
|
*/
|
|
132
|
-
get socket():
|
|
128
|
+
get socket(): (Socket & {
|
|
133
129
|
encrypted: boolean;
|
|
134
|
-
};
|
|
130
|
+
});
|
|
135
131
|
/**
|
|
136
132
|
* Get the charset when present or undefined.
|
|
137
133
|
*/
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
/// <reference types="node" />
|
|
5
|
-
/// <reference types="node" />
|
|
6
1
|
import util from 'node:util';
|
|
7
2
|
import Stream from 'node:stream';
|
|
8
3
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/// <reference types="http-errors" />
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
4
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
5
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
6
1
|
import Emitter from 'node:events';
|
|
7
2
|
import util from 'node:util';
|
|
8
3
|
import http from 'node:http';
|
|
@@ -23,17 +18,16 @@ export type MiddlewareFunc = _MiddlewareFunc & {
|
|
|
23
18
|
* Inherits from `Emitter.prototype`.
|
|
24
19
|
*/
|
|
25
20
|
export declare class Application extends Emitter {
|
|
26
|
-
#private;
|
|
27
21
|
/**
|
|
28
22
|
* Make HttpError available to consumers of the library so that consumers don't
|
|
29
23
|
* have a direct dependency upon `http-errors`
|
|
30
24
|
*/
|
|
31
25
|
static HttpError: import("http-errors").HttpErrorConstructor<number>;
|
|
32
|
-
|
|
26
|
+
protected _proxy: boolean;
|
|
27
|
+
protected _env: string;
|
|
33
28
|
subdomainOffset: number;
|
|
34
29
|
proxyIpHeader: string;
|
|
35
30
|
maxIpsCount: number;
|
|
36
|
-
env: string;
|
|
37
31
|
keys?: string[];
|
|
38
32
|
middleware: MiddlewareFunc[];
|
|
39
33
|
ctxStorage: AsyncLocalStorage<ContextDelegation>;
|
|
@@ -63,6 +57,10 @@ export declare class Application extends Emitter {
|
|
|
63
57
|
env?: string;
|
|
64
58
|
keys?: string[];
|
|
65
59
|
});
|
|
60
|
+
get env(): string;
|
|
61
|
+
set env(value: string);
|
|
62
|
+
get proxy(): boolean;
|
|
63
|
+
set proxy(value: boolean);
|
|
66
64
|
/**
|
|
67
65
|
* Shorthand for:
|
|
68
66
|
*
|
|
@@ -104,6 +102,11 @@ export declare class Application extends Emitter {
|
|
|
104
102
|
* return current context from async local storage
|
|
105
103
|
*/
|
|
106
104
|
get currentContext(): ContextDelegation | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Handle request in callback.
|
|
107
|
+
* @private
|
|
108
|
+
*/
|
|
109
|
+
protected handleRequest(ctx: ContextDelegation, fnMiddleware: (ctx: ContextDelegation) => Promise<void>): Promise<void | http.ServerResponse<http.IncomingMessage>>;
|
|
107
110
|
/**
|
|
108
111
|
* Initialize a new context.
|
|
109
112
|
* @private
|
package/dist/esm/application.js
CHANGED
|
@@ -23,11 +23,11 @@ export class Application extends Emitter {
|
|
|
23
23
|
* have a direct dependency upon `http-errors`
|
|
24
24
|
*/
|
|
25
25
|
static HttpError = HttpError;
|
|
26
|
-
|
|
26
|
+
_proxy;
|
|
27
|
+
_env;
|
|
27
28
|
subdomainOffset;
|
|
28
29
|
proxyIpHeader;
|
|
29
30
|
maxIpsCount;
|
|
30
|
-
env;
|
|
31
31
|
keys;
|
|
32
32
|
middleware;
|
|
33
33
|
ctxStorage;
|
|
@@ -52,11 +52,11 @@ export class Application extends Emitter {
|
|
|
52
52
|
constructor(options) {
|
|
53
53
|
super();
|
|
54
54
|
options = options || {};
|
|
55
|
-
this.
|
|
55
|
+
this._proxy = options.proxy || false;
|
|
56
56
|
this.subdomainOffset = options.subdomainOffset || 2;
|
|
57
57
|
this.proxyIpHeader = options.proxyIpHeader || 'X-Forwarded-For';
|
|
58
58
|
this.maxIpsCount = options.maxIpsCount || 0;
|
|
59
|
-
this.
|
|
59
|
+
this._env = options.env || process.env.NODE_ENV || 'development';
|
|
60
60
|
if (options.keys)
|
|
61
61
|
this.keys = options.keys;
|
|
62
62
|
this.middleware = [];
|
|
@@ -72,6 +72,18 @@ export class Application extends Emitter {
|
|
|
72
72
|
};
|
|
73
73
|
this.response = this.ResponseClass.prototype;
|
|
74
74
|
}
|
|
75
|
+
get env() {
|
|
76
|
+
return this._env;
|
|
77
|
+
}
|
|
78
|
+
set env(value) {
|
|
79
|
+
this._env = value;
|
|
80
|
+
}
|
|
81
|
+
get proxy() {
|
|
82
|
+
return this._proxy;
|
|
83
|
+
}
|
|
84
|
+
set proxy(value) {
|
|
85
|
+
this._proxy = value;
|
|
86
|
+
}
|
|
75
87
|
/**
|
|
76
88
|
* Shorthand for:
|
|
77
89
|
*
|
|
@@ -130,7 +142,7 @@ export class Application extends Emitter {
|
|
|
130
142
|
const handleRequest = (req, res) => {
|
|
131
143
|
const ctx = this.createContext(req, res);
|
|
132
144
|
return this.ctxStorage.run(ctx, async () => {
|
|
133
|
-
return await this
|
|
145
|
+
return await this.handleRequest(ctx, fn);
|
|
134
146
|
});
|
|
135
147
|
};
|
|
136
148
|
return handleRequest;
|
|
@@ -145,7 +157,7 @@ export class Application extends Emitter {
|
|
|
145
157
|
* Handle request in callback.
|
|
146
158
|
* @private
|
|
147
159
|
*/
|
|
148
|
-
async
|
|
160
|
+
async handleRequest(ctx, fnMiddleware) {
|
|
149
161
|
const res = ctx.res;
|
|
150
162
|
res.statusCode = 404;
|
|
151
163
|
const onerror = (err) => ctx.onerror(err);
|
|
@@ -246,4 +258,4 @@ export class Application extends Emitter {
|
|
|
246
258
|
}
|
|
247
259
|
}
|
|
248
260
|
export default Application;
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLE9BQU8sTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFHN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sT0FBTyxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBT2pEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsT0FBTztJQUN0Qzs7O09BR0c7SUFDSCxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUVuQixNQUFNLENBQVU7SUFDaEIsSUFBSSxDQUFTO0lBQ3ZCLGVBQWUsQ0FBUztJQUN4QixhQUFhLENBQVM7SUFDdEIsV0FBVyxDQUFTO0lBQ3BCLElBQUksQ0FBWTtJQUNoQixVQUFVLENBQW1CO0lBQzdCLFVBQVUsQ0FBdUM7SUFDakQsTUFB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
|
package/dist/esm/context.d.ts
CHANGED
package/dist/esm/request.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
4
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
5
|
-
import net from 'node:net';
|
|
1
|
+
import type { Socket } from 'node:net';
|
|
6
2
|
import qs from 'node:querystring';
|
|
7
3
|
import util from 'node:util';
|
|
8
4
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
@@ -129,9 +125,9 @@ export declare class Request {
|
|
|
129
125
|
/**
|
|
130
126
|
* Return the request socket.
|
|
131
127
|
*/
|
|
132
|
-
get socket():
|
|
128
|
+
get socket(): (Socket & {
|
|
133
129
|
encrypted: boolean;
|
|
134
|
-
};
|
|
130
|
+
});
|
|
135
131
|
/**
|
|
136
132
|
* Get the charset when present or undefined.
|
|
137
133
|
*/
|
package/dist/esm/response.d.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
4
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
5
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
6
1
|
import util from 'node:util';
|
|
7
2
|
import Stream from 'node:stream';
|
|
8
3
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/koa",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.5",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">= 18.19.0"
|
|
6
6
|
},
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"description": "Koa web app framework for https://eggjs.org",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"test": "npm run lint -- --fix && egg-bin test",
|
|
13
|
-
"ci": "npm run lint && egg-bin cov && npm run prepublishOnly",
|
|
14
|
-
"lint": "eslint src test",
|
|
13
|
+
"ci": "npm run lint && egg-bin cov && npm run prepublishOnly && attw --pack",
|
|
14
|
+
"lint": "eslint src test --cache",
|
|
15
15
|
"authors": "git log --format='%aN <%aE>' | sort -u > AUTHORS",
|
|
16
16
|
"prepublishOnly": "tshy && tshy-after"
|
|
17
17
|
},
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"vary": "^1.1.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
+
"@arethetypeswrong/cli": "^0.15.3",
|
|
55
56
|
"@eggjs/tsconfig": "^1.3.3",
|
|
56
57
|
"@types/content-type": "^1.1.8",
|
|
57
58
|
"@types/delegates": "^1.0.3",
|
|
@@ -71,7 +72,7 @@
|
|
|
71
72
|
"@types/vary": "^1.1.3",
|
|
72
73
|
"egg-bin": "^6.4.0",
|
|
73
74
|
"eslint": "^8.41.0",
|
|
74
|
-
"eslint-config-egg": "
|
|
75
|
+
"eslint-config-egg": "14",
|
|
75
76
|
"mm": "^3.3.0",
|
|
76
77
|
"supertest": "^3.1.0",
|
|
77
78
|
"tsd": "^0.31.0",
|
|
@@ -106,5 +107,6 @@
|
|
|
106
107
|
"src"
|
|
107
108
|
],
|
|
108
109
|
"main": "./dist/commonjs/index.js",
|
|
109
|
-
"types": "./dist/commonjs/index.d.ts"
|
|
110
|
+
"types": "./dist/commonjs/index.d.ts",
|
|
111
|
+
"module": "./dist/esm/index.js"
|
|
110
112
|
}
|
package/src/application.ts
CHANGED
|
@@ -35,11 +35,11 @@ export class Application extends Emitter {
|
|
|
35
35
|
*/
|
|
36
36
|
static HttpError = HttpError;
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
protected _proxy: boolean;
|
|
39
|
+
protected _env: string;
|
|
39
40
|
subdomainOffset: number;
|
|
40
41
|
proxyIpHeader: string;
|
|
41
42
|
maxIpsCount: number;
|
|
42
|
-
env: string;
|
|
43
43
|
keys?: string[];
|
|
44
44
|
middleware: MiddlewareFunc[];
|
|
45
45
|
ctxStorage: AsyncLocalStorage<ContextDelegation>;
|
|
@@ -73,11 +73,11 @@ export class Application extends Emitter {
|
|
|
73
73
|
}) {
|
|
74
74
|
super();
|
|
75
75
|
options = options || {};
|
|
76
|
-
this.
|
|
76
|
+
this._proxy = options.proxy || false;
|
|
77
77
|
this.subdomainOffset = options.subdomainOffset || 2;
|
|
78
78
|
this.proxyIpHeader = options.proxyIpHeader || 'X-Forwarded-For';
|
|
79
79
|
this.maxIpsCount = options.maxIpsCount || 0;
|
|
80
|
-
this.
|
|
80
|
+
this._env = options.env || process.env.NODE_ENV || 'development';
|
|
81
81
|
if (options.keys) this.keys = options.keys;
|
|
82
82
|
this.middleware = [];
|
|
83
83
|
this.ctxStorage = getAsyncLocalStorage();
|
|
@@ -90,6 +90,20 @@ export class Application extends Emitter {
|
|
|
90
90
|
this.response = this.ResponseClass.prototype;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
get env() {
|
|
94
|
+
return this._env;
|
|
95
|
+
}
|
|
96
|
+
set env(value: string) {
|
|
97
|
+
this._env = value;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
get proxy() {
|
|
101
|
+
return this._proxy;
|
|
102
|
+
}
|
|
103
|
+
set proxy(value: boolean) {
|
|
104
|
+
this._proxy = value;
|
|
105
|
+
}
|
|
106
|
+
|
|
93
107
|
/**
|
|
94
108
|
* Shorthand for:
|
|
95
109
|
*
|
|
@@ -154,7 +168,7 @@ export class Application extends Emitter {
|
|
|
154
168
|
const handleRequest = (req: IncomingMessage, res: ServerResponse) => {
|
|
155
169
|
const ctx = this.createContext(req, res);
|
|
156
170
|
return this.ctxStorage.run(ctx, async () => {
|
|
157
|
-
return await this
|
|
171
|
+
return await this.handleRequest(ctx, fn);
|
|
158
172
|
});
|
|
159
173
|
};
|
|
160
174
|
|
|
@@ -172,7 +186,7 @@ export class Application extends Emitter {
|
|
|
172
186
|
* Handle request in callback.
|
|
173
187
|
* @private
|
|
174
188
|
*/
|
|
175
|
-
async
|
|
189
|
+
protected async handleRequest(ctx: ContextDelegation, fnMiddleware: (ctx: ContextDelegation) => Promise<void>) {
|
|
176
190
|
const res = ctx.res;
|
|
177
191
|
res.statusCode = 404;
|
|
178
192
|
const onerror = (err: any) => ctx.onerror(err);
|