egg 4.0.0-beta.0 → 4.0.0-beta.10
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 +1 -0
- package/README.zh-CN.md +1 -0
- package/dist/commonjs/app/extend/context.d.ts +154 -0
- package/dist/commonjs/app/extend/context.js +261 -0
- package/dist/commonjs/app/extend/context.types.d.ts +16 -0
- package/dist/commonjs/app/extend/context.types.js +3 -0
- package/dist/commonjs/app/extend/helper.d.ts +37 -0
- package/dist/commonjs/app/extend/helper.js +49 -0
- package/dist/commonjs/app/extend/request.d.ts +128 -0
- package/dist/commonjs/app/extend/request.js +270 -0
- package/dist/commonjs/app/extend/response.d.ts +25 -0
- package/dist/commonjs/app/extend/response.js +37 -0
- package/dist/commonjs/app/middleware/meta.d.ts +2 -3
- package/dist/commonjs/app/middleware/meta.js +1 -1
- package/dist/commonjs/app/middleware/notfound.d.ts +2 -3
- package/dist/commonjs/app/middleware/notfound.js +1 -1
- package/dist/commonjs/app/middleware/site_file.d.ts +5 -3
- package/dist/commonjs/app/middleware/site_file.js +21 -3
- package/dist/commonjs/config/config.default.js +5 -4
- package/dist/commonjs/config/plugin.js +3 -3
- package/dist/commonjs/index.d.ts +3 -1
- package/dist/commonjs/index.js +8 -6
- package/dist/commonjs/lib/application.d.ts +5 -12
- package/dist/commonjs/lib/application.js +9 -20
- package/dist/commonjs/lib/core/base_context_class.d.ts +2 -2
- package/dist/commonjs/lib/core/base_hook_class.d.ts +1 -1
- package/dist/commonjs/lib/core/context_httpclient.d.ts +3 -3
- package/dist/commonjs/lib/core/context_httpclient.js +1 -1
- package/dist/commonjs/lib/core/httpclient.d.ts +2 -3
- package/dist/commonjs/lib/core/httpclient.js +3 -6
- package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +3 -3
- package/dist/commonjs/lib/core/messenger/index.js +2 -2
- package/dist/commonjs/lib/core/messenger/ipc.d.ts +6 -4
- package/dist/commonjs/lib/core/messenger/ipc.js +31 -20
- package/dist/commonjs/lib/core/messenger/local.d.ts +3 -3
- package/dist/commonjs/lib/core/messenger/local.js +14 -11
- package/dist/commonjs/lib/egg.d.ts +25 -16
- package/dist/commonjs/lib/egg.js +44 -22
- package/dist/commonjs/lib/egg.types.d.ts +6 -0
- package/dist/commonjs/lib/egg.types.js +3 -0
- package/dist/commonjs/lib/type.d.ts +3 -5
- package/dist/commonjs/lib/utils.d.ts +2 -0
- package/dist/commonjs/lib/utils.js +21 -0
- package/dist/esm/app/extend/context.d.ts +154 -0
- package/dist/esm/app/extend/context.js +255 -0
- package/dist/esm/app/extend/context.types.d.ts +16 -0
- package/dist/esm/app/extend/context.types.js +2 -0
- package/dist/esm/app/extend/helper.d.ts +37 -0
- package/dist/esm/app/extend/helper.js +43 -0
- package/dist/esm/app/extend/request.d.ts +128 -0
- package/dist/esm/app/extend/request.js +264 -0
- package/dist/esm/app/extend/response.d.ts +25 -0
- package/dist/esm/app/extend/response.js +34 -0
- package/dist/esm/app/middleware/meta.d.ts +2 -3
- package/dist/esm/app/middleware/meta.js +1 -1
- package/dist/esm/app/middleware/notfound.d.ts +2 -3
- package/dist/esm/app/middleware/notfound.js +1 -1
- package/dist/esm/app/middleware/site_file.d.ts +5 -3
- package/dist/esm/app/middleware/site_file.js +21 -3
- package/dist/esm/config/config.default.js +5 -4
- package/dist/esm/config/plugin.js +3 -3
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/lib/application.d.ts +5 -12
- package/dist/esm/lib/application.js +9 -20
- package/dist/esm/lib/core/base_context_class.d.ts +2 -2
- package/dist/esm/lib/core/base_hook_class.d.ts +1 -1
- package/dist/esm/lib/core/context_httpclient.d.ts +3 -3
- package/dist/esm/lib/core/context_httpclient.js +1 -1
- package/dist/esm/lib/core/httpclient.d.ts +2 -3
- package/dist/esm/lib/core/httpclient.js +2 -2
- package/dist/esm/lib/core/messenger/IMessenger.d.ts +3 -3
- package/dist/esm/lib/core/messenger/index.js +2 -2
- package/dist/esm/lib/core/messenger/ipc.d.ts +6 -4
- package/dist/esm/lib/core/messenger/ipc.js +29 -18
- package/dist/esm/lib/core/messenger/local.d.ts +3 -3
- package/dist/esm/lib/core/messenger/local.js +14 -11
- package/dist/esm/lib/egg.d.ts +25 -16
- package/dist/esm/lib/egg.js +24 -15
- package/dist/esm/lib/egg.types.d.ts +6 -0
- package/dist/esm/lib/egg.types.js +2 -0
- package/dist/esm/lib/type.d.ts +3 -5
- package/dist/esm/lib/utils.d.ts +2 -0
- package/dist/esm/lib/utils.js +14 -0
- package/dist/package.json +1 -1
- package/package.json +32 -28
- package/src/app/extend/context.ts +303 -0
- package/src/app/extend/context.types.ts +24 -0
- package/src/app/extend/{helper.js → helper.ts} +14 -13
- package/src/app/extend/{request.js → request.ts} +81 -79
- package/src/app/extend/response.ts +36 -0
- package/src/app/middleware/meta.ts +2 -3
- package/src/app/middleware/notfound.ts +2 -3
- package/src/app/middleware/site_file.ts +26 -7
- package/src/config/config.default.ts +4 -3
- package/src/config/plugin.ts +2 -2
- package/src/index.ts +5 -3
- package/src/lib/application.ts +14 -21
- package/src/lib/core/base_context_class.ts +2 -2
- package/src/lib/core/base_hook_class.ts +1 -1
- package/src/lib/core/context_httpclient.ts +3 -3
- package/src/lib/core/httpclient.ts +4 -5
- package/src/lib/core/messenger/IMessenger.ts +3 -3
- package/src/lib/core/messenger/index.ts +1 -1
- package/src/lib/core/messenger/ipc.ts +31 -20
- package/src/lib/core/messenger/local.ts +13 -11
- package/src/lib/egg.ts +60 -28
- package/src/lib/egg.types.ts +6 -0
- package/src/lib/type.ts +6 -6
- package/src/lib/utils.ts +16 -0
- package/src/app/extend/context.js +0 -285
- package/src/app/extend/response.js +0 -101
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_querystring_1 = __importDefault(require("node:querystring"));
|
|
7
|
+
const core_1 = require("@eggjs/core");
|
|
8
|
+
const QUERY_CACHE = Symbol('request query cache');
|
|
9
|
+
const QUERIES_CACHE = Symbol('request queries cache');
|
|
10
|
+
const PROTOCOL = Symbol('request protocol');
|
|
11
|
+
const HOST = Symbol('request host');
|
|
12
|
+
const IPS = Symbol('request ips');
|
|
13
|
+
const RE_ARRAY_KEY = /[^\[\]]+\[\]$/;
|
|
14
|
+
class Request extends core_1.Request {
|
|
15
|
+
/**
|
|
16
|
+
* Parse the "Host" header field host
|
|
17
|
+
* and support X-Forwarded-Host when a
|
|
18
|
+
* proxy is enabled.
|
|
19
|
+
* @member {String} Request#host
|
|
20
|
+
* @example
|
|
21
|
+
* ip + port
|
|
22
|
+
* ```js
|
|
23
|
+
* this.request.host
|
|
24
|
+
* => '127.0.0.1:7001'
|
|
25
|
+
* ```
|
|
26
|
+
* or domain
|
|
27
|
+
* ```js
|
|
28
|
+
* this.request.host
|
|
29
|
+
* => 'demo.eggjs.org'
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
get host() {
|
|
33
|
+
let host = this[HOST];
|
|
34
|
+
if (host) {
|
|
35
|
+
return host;
|
|
36
|
+
}
|
|
37
|
+
if (this.app.config.proxy) {
|
|
38
|
+
host = getFromHeaders(this, this.app.config.hostHeaders);
|
|
39
|
+
}
|
|
40
|
+
host = host || this.get('host') || '';
|
|
41
|
+
this[HOST] = host = host.split(',')[0].trim();
|
|
42
|
+
return host;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @member {String} Request#protocol
|
|
46
|
+
* @example
|
|
47
|
+
* ```js
|
|
48
|
+
* this.request.protocol
|
|
49
|
+
* => 'https'
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
get protocol() {
|
|
53
|
+
let protocol = this[PROTOCOL];
|
|
54
|
+
if (protocol) {
|
|
55
|
+
return protocol;
|
|
56
|
+
}
|
|
57
|
+
// detect encrypted socket
|
|
58
|
+
if (this.socket?.encrypted) {
|
|
59
|
+
this[PROTOCOL] = protocol = 'https';
|
|
60
|
+
return protocol;
|
|
61
|
+
}
|
|
62
|
+
// get from headers specified in `app.config.protocolHeaders`
|
|
63
|
+
if (this.app.config.proxy) {
|
|
64
|
+
const proto = getFromHeaders(this, this.app.config.protocolHeaders);
|
|
65
|
+
if (proto) {
|
|
66
|
+
this[PROTOCOL] = protocol = proto.split(/\s*,\s*/)[0];
|
|
67
|
+
return protocol;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// use protocol specified in `app.config.protocol`
|
|
71
|
+
this[PROTOCOL] = protocol = this.app.config.protocol || 'http';
|
|
72
|
+
return protocol;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get all pass through ip addresses from the request.
|
|
76
|
+
* Enable only on `app.config.proxy = true`
|
|
77
|
+
*
|
|
78
|
+
* @member {Array} Request#ips
|
|
79
|
+
* @example
|
|
80
|
+
* ```js
|
|
81
|
+
* this.request.ips
|
|
82
|
+
* => ['100.23.1.2', '201.10.10.2']
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
get ips() {
|
|
86
|
+
let ips = this[IPS];
|
|
87
|
+
if (ips) {
|
|
88
|
+
return ips;
|
|
89
|
+
}
|
|
90
|
+
// return empty array when proxy=false
|
|
91
|
+
if (!this.app.config.proxy) {
|
|
92
|
+
this[IPS] = ips = [];
|
|
93
|
+
return ips;
|
|
94
|
+
}
|
|
95
|
+
const val = getFromHeaders(this, this.app.config.ipHeaders);
|
|
96
|
+
this[IPS] = ips = val ? val.split(/\s*,\s*/) : [];
|
|
97
|
+
let maxIpsCount = this.app.config.maxIpsCount;
|
|
98
|
+
// Compatible with maxProxyCount logic (previous logic is wrong, only for compatibility with legacy logic)
|
|
99
|
+
if (!maxIpsCount && this.app.config.maxProxyCount) {
|
|
100
|
+
maxIpsCount = this.app.config.maxProxyCount + 1;
|
|
101
|
+
}
|
|
102
|
+
if (maxIpsCount > 0) {
|
|
103
|
+
// if maxIpsCount present, only keep `maxIpsCount` ips
|
|
104
|
+
// [ illegalIp, clientRealIp, proxyIp1, proxyIp2 ...]
|
|
105
|
+
this[IPS] = ips = ips.slice(-maxIpsCount);
|
|
106
|
+
}
|
|
107
|
+
return ips;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get the request remote IPv4 address
|
|
111
|
+
* @member {String} Request#ip
|
|
112
|
+
* @return {String} IPv4 address
|
|
113
|
+
* @example
|
|
114
|
+
* ```js
|
|
115
|
+
* this.request.ip
|
|
116
|
+
* => '127.0.0.1'
|
|
117
|
+
* => '111.10.2.1'
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
get ip() {
|
|
121
|
+
if (this._ip) {
|
|
122
|
+
return this._ip;
|
|
123
|
+
}
|
|
124
|
+
const ip = this.ips[0] ?? this.socket.remoteAddress;
|
|
125
|
+
// will be '::ffff:x.x.x.x', should convert to standard IPv4 format
|
|
126
|
+
// https://zh.wikipedia.org/wiki/IPv6
|
|
127
|
+
this._ip = ip && ip.startsWith('::ffff:') ? ip.substring(7) : ip;
|
|
128
|
+
return this._ip;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Set the request remote IPv4 address
|
|
132
|
+
* @member {String} Request#ip
|
|
133
|
+
* @param {String} ip - IPv4 address
|
|
134
|
+
* @example
|
|
135
|
+
* ```js
|
|
136
|
+
* this.request.ip
|
|
137
|
+
* => '127.0.0.1'
|
|
138
|
+
* => '111.10.2.1'
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
set ip(ip) {
|
|
142
|
+
this._ip = ip;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* detect if response should be json
|
|
146
|
+
* 1. url path ends with `.json`
|
|
147
|
+
* 2. response type is set to json
|
|
148
|
+
* 3. detect by request accept header
|
|
149
|
+
*
|
|
150
|
+
* @member {Boolean} Request#acceptJSON
|
|
151
|
+
* @since 1.0.0
|
|
152
|
+
*/
|
|
153
|
+
get acceptJSON() {
|
|
154
|
+
if (this.path.endsWith('.json'))
|
|
155
|
+
return true;
|
|
156
|
+
if (this.response.type && this.response.type.indexOf('json') >= 0)
|
|
157
|
+
return true;
|
|
158
|
+
if (this.accepts('html', 'text', 'json') === 'json')
|
|
159
|
+
return true;
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
// How to read query safely
|
|
163
|
+
// https://github.com/koajs/qs/issues/5
|
|
164
|
+
_customQuery(cacheName, filter) {
|
|
165
|
+
const str = this.querystring || '';
|
|
166
|
+
let c = this[cacheName];
|
|
167
|
+
if (!c) {
|
|
168
|
+
c = this[cacheName] = {};
|
|
169
|
+
}
|
|
170
|
+
let cacheQuery = c[str];
|
|
171
|
+
if (!cacheQuery) {
|
|
172
|
+
cacheQuery = c[str] = {};
|
|
173
|
+
const isQueries = cacheName === QUERIES_CACHE;
|
|
174
|
+
// `querystring.parse` CANNOT parse something like `a[foo]=1&a[bar]=2`
|
|
175
|
+
const query = str ? node_querystring_1.default.parse(str) : {};
|
|
176
|
+
for (const key in query) {
|
|
177
|
+
if (!key) {
|
|
178
|
+
// key is '', like `a=b&`
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
const value = filter(query[key]);
|
|
182
|
+
cacheQuery[key] = value;
|
|
183
|
+
if (isQueries && RE_ARRAY_KEY.test(key)) {
|
|
184
|
+
// `this.queries['key'] => this.queries['key[]']` is compatibly supported
|
|
185
|
+
const subKey = key.substring(0, key.length - 2);
|
|
186
|
+
if (!cacheQuery[subKey]) {
|
|
187
|
+
cacheQuery[subKey] = value;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return cacheQuery;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* get params pass by querystring, all values are of string type.
|
|
196
|
+
* @member {Object} Request#query
|
|
197
|
+
* @example
|
|
198
|
+
* ```js
|
|
199
|
+
* GET http://127.0.0.1:7001?name=Foo&age=20&age=21
|
|
200
|
+
* this.query
|
|
201
|
+
* => { 'name': 'Foo', 'age': '20' }
|
|
202
|
+
*
|
|
203
|
+
* GET http://127.0.0.1:7001?a=b&a=c&o[foo]=bar&b[]=1&b[]=2&e=val
|
|
204
|
+
* this.query
|
|
205
|
+
* =>
|
|
206
|
+
* {
|
|
207
|
+
* "a": "b",
|
|
208
|
+
* "o[foo]": "bar",
|
|
209
|
+
* "b[]": "1",
|
|
210
|
+
* "e": "val"
|
|
211
|
+
* }
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
get query() {
|
|
215
|
+
return this._customQuery(QUERY_CACHE, firstValue);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* get params pass by querystring, all value are Array type. {@link Request#query}
|
|
219
|
+
* @member {Array} Request#queries
|
|
220
|
+
* @example
|
|
221
|
+
* ```js
|
|
222
|
+
* GET http://127.0.0.1:7001?a=b&a=c&o[foo]=bar&b[]=1&b[]=2&e=val
|
|
223
|
+
* this.queries
|
|
224
|
+
* =>
|
|
225
|
+
* {
|
|
226
|
+
* "a": ["b", "c"],
|
|
227
|
+
* "o[foo]": ["bar"],
|
|
228
|
+
* "b[]": ["1", "2"],
|
|
229
|
+
* "e": ["val"]
|
|
230
|
+
* }
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
get queries() {
|
|
234
|
+
return this._customQuery(QUERIES_CACHE, arrayValue);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Set query-string as an object.
|
|
238
|
+
*
|
|
239
|
+
* @function Request#query
|
|
240
|
+
* @param {Object} obj set querystring and query object for request.
|
|
241
|
+
*/
|
|
242
|
+
set query(obj) {
|
|
243
|
+
this.querystring = node_querystring_1.default.stringify(obj);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
exports.default = Request;
|
|
247
|
+
function firstValue(value) {
|
|
248
|
+
if (Array.isArray(value)) {
|
|
249
|
+
value = value[0];
|
|
250
|
+
}
|
|
251
|
+
return value;
|
|
252
|
+
}
|
|
253
|
+
function arrayValue(value) {
|
|
254
|
+
if (!Array.isArray(value)) {
|
|
255
|
+
value = [value];
|
|
256
|
+
}
|
|
257
|
+
return value;
|
|
258
|
+
}
|
|
259
|
+
function getFromHeaders(request, names) {
|
|
260
|
+
if (!names)
|
|
261
|
+
return '';
|
|
262
|
+
const fields = names.split(/\s*,\s*/);
|
|
263
|
+
for (const name of fields) {
|
|
264
|
+
const value = request.get(name);
|
|
265
|
+
if (value)
|
|
266
|
+
return value;
|
|
267
|
+
}
|
|
268
|
+
return '';
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZXh0ZW5kL3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBMkM7QUFDM0Msc0NBQXdEO0FBS3hELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNwQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbEMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO0FBRXJDLE1BQXFCLE9BQVEsU0FBUSxjQUFjO0lBS2pEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBdUIsQ0FBQztRQUM1QyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMs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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Response as KoaResponse } from '@eggjs/core';
|
|
2
|
+
export default class Response extends KoaResponse {
|
|
3
|
+
/**
|
|
4
|
+
* Get or set a real status code.
|
|
5
|
+
*
|
|
6
|
+
* e.g.: Using 302 status redirect to the global error page
|
|
7
|
+
* instead of show current 500 status page.
|
|
8
|
+
* And access log should save 500 not 302,
|
|
9
|
+
* then the `realStatus` can help us find out the real status code.
|
|
10
|
+
* @member {Number} Response#realStatus
|
|
11
|
+
* @return {Number} The status code to be set.
|
|
12
|
+
*/
|
|
13
|
+
get realStatus(): number;
|
|
14
|
+
/**
|
|
15
|
+
* Set a real status code.
|
|
16
|
+
*
|
|
17
|
+
* e.g.: Using 302 status redirect to the global error page
|
|
18
|
+
* instead of show current 500 status page.
|
|
19
|
+
* And access log should save 500 not 302,
|
|
20
|
+
* then the `realStatus` can help us find out the real status code.
|
|
21
|
+
* @member {Number} Response#realStatus
|
|
22
|
+
* @param {Number} status The status code to be set.
|
|
23
|
+
*/
|
|
24
|
+
set realStatus(status: number);
|
|
25
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@eggjs/core");
|
|
4
|
+
const REAL_STATUS = Symbol('response realStatus');
|
|
5
|
+
class Response extends core_1.Response {
|
|
6
|
+
/**
|
|
7
|
+
* Get or set a real status code.
|
|
8
|
+
*
|
|
9
|
+
* e.g.: Using 302 status redirect to the global error page
|
|
10
|
+
* instead of show current 500 status page.
|
|
11
|
+
* And access log should save 500 not 302,
|
|
12
|
+
* then the `realStatus` can help us find out the real status code.
|
|
13
|
+
* @member {Number} Response#realStatus
|
|
14
|
+
* @return {Number} The status code to be set.
|
|
15
|
+
*/
|
|
16
|
+
get realStatus() {
|
|
17
|
+
if (this[REAL_STATUS]) {
|
|
18
|
+
return this[REAL_STATUS];
|
|
19
|
+
}
|
|
20
|
+
return this.status;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Set a real status code.
|
|
24
|
+
*
|
|
25
|
+
* e.g.: Using 302 status redirect to the global error page
|
|
26
|
+
* instead of show current 500 status page.
|
|
27
|
+
* And access log should save 500 not 302,
|
|
28
|
+
* then the `realStatus` can help us find out the real status code.
|
|
29
|
+
* @member {Number} Response#realStatus
|
|
30
|
+
* @param {Number} status The status code to be set.
|
|
31
|
+
*/
|
|
32
|
+
set realStatus(status) {
|
|
33
|
+
this[REAL_STATUS] = status;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.default = Response;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUFzRDtBQUV0RCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUVsRCxNQUFxQixRQUFTLFNBQVEsZUFBVztJQUMvQzs7Ozs7Ozs7O09BU0c7SUFDSCxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBVyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILElBQUksVUFBVSxDQUFDLE1BQWM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUEvQkQsMkJBK0JDIn0=
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* meta middleware, should be the first middleware
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
import type { Next } from '../../lib/type.js';
|
|
4
|
+
import type { ContextDelegation, Next } from '../../lib/egg.js';
|
|
6
5
|
export interface MetaMiddlewareOptions {
|
|
7
6
|
enable: boolean;
|
|
8
7
|
logging: boolean;
|
|
9
8
|
}
|
|
10
|
-
declare const _default: (options: MetaMiddlewareOptions) => (ctx:
|
|
9
|
+
declare const _default: (options: MetaMiddlewareOptions) => (ctx: ContextDelegation, next: Next) => Promise<void>;
|
|
11
10
|
export default _default;
|
|
@@ -19,4 +19,4 @@ exports.default = (options) => {
|
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbWlkZGxld2FyZS9tZXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUFFSCxxREFBOEM7QUFROUMsa0JBQWUsQ0FBQyxPQUE4QixFQUFFLEVBQUU7SUFDaEQsT0FBTyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQXNCLEVBQUUsSUFBVTtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrREFBa0QsRUFDcEUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDYiw2QkFBNkI7UUFDN0IsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsNkJBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRyxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Next } from '../../lib/type.js';
|
|
1
|
+
import type { Next, ContextDelegation } from '../../lib/egg.js';
|
|
3
2
|
export interface NotFoundMiddlewareOptions {
|
|
4
3
|
enable: boolean;
|
|
5
4
|
pageUrl: string;
|
|
6
5
|
}
|
|
7
|
-
declare const _default: (options: NotFoundMiddlewareOptions) => (ctx:
|
|
6
|
+
declare const _default: (options: NotFoundMiddlewareOptions) => (ctx: ContextDelegation, next: Next) => Promise<void>;
|
|
8
7
|
export default _default;
|
|
@@ -28,4 +28,4 @@ exports.default = (options) => {
|
|
|
28
28
|
ctx.body = notFoundHtml;
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90Zm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL21pZGRsZXdhcmUvbm90Zm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxrQkFBZSxDQUFDLE9BQWtDLEVBQUUsRUFBRTtJQUNwRCxPQUFPLEtBQUssVUFBVSxRQUFRLENBQUMsR0FBc0IsRUFBRSxJQUFVO1FBQy9ELE1BQU0sSUFBSSxFQUFFLENBQUM7UUFFYixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVELHNEQUFzRDtRQUN0RCxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUVqQixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsSUFBSSxHQUFHO2dCQUNULE9BQU8sRUFBRSxXQUFXO2FBQ3JCLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLHdCQUF3QixDQUFDO1FBRTlDLG9DQUFvQztRQUNwQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLFlBQVkseUNBQXlDLE9BQU8sQ0FBQyxPQUFPLHFDQUFxQyxDQUFDO1lBQ3hILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7WUFDckIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFDRCxHQUFHLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztJQUMxQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export type SiteFileContentFun = (ctx:
|
|
1
|
+
import type { Next, ContextDelegation } from '../../lib/egg.js';
|
|
2
|
+
export type SiteFileContentFun = (ctx: ContextDelegation) => Promise<Buffer | string>;
|
|
3
3
|
export interface SiteFileMiddlewareOptions {
|
|
4
4
|
enable: boolean;
|
|
5
5
|
cacheControl: string;
|
|
6
|
-
[key: string]: string | Buffer | boolean | SiteFileContentFun;
|
|
6
|
+
[key: string]: string | Buffer | boolean | SiteFileContentFun | URL;
|
|
7
7
|
}
|
|
8
|
+
declare const _default: (options: SiteFileMiddlewareOptions) => (ctx: ContextDelegation, next: Next) => Promise<void>;
|
|
9
|
+
export default _default;
|
|
@@ -4,12 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_path_1 = __importDefault(require("node:path"));
|
|
7
|
-
|
|
7
|
+
const node_url_1 = require("node:url");
|
|
8
|
+
const promises_1 = require("node:fs/promises");
|
|
9
|
+
const BUFFER_CACHE = Symbol('siteFile URL buffer cache');
|
|
10
|
+
exports.default = (options) => {
|
|
8
11
|
return async function siteFile(ctx, next) {
|
|
9
12
|
if (ctx.method !== 'HEAD' && ctx.method !== 'GET') {
|
|
10
13
|
return next();
|
|
11
14
|
}
|
|
12
|
-
/* istanbul ignore if */
|
|
13
15
|
if (ctx.path[0] !== '/') {
|
|
14
16
|
return next();
|
|
15
17
|
}
|
|
@@ -26,6 +28,22 @@ module.exports = (options) => {
|
|
|
26
28
|
if (typeof content === 'string') {
|
|
27
29
|
return ctx.redirect(content);
|
|
28
30
|
}
|
|
31
|
+
// URL
|
|
32
|
+
if (content instanceof URL) {
|
|
33
|
+
if (content.protocol !== 'file:') {
|
|
34
|
+
return ctx.redirect(content.href);
|
|
35
|
+
}
|
|
36
|
+
// protocol = file:
|
|
37
|
+
let buffer = Reflect.get(content, BUFFER_CACHE);
|
|
38
|
+
if (!buffer) {
|
|
39
|
+
buffer = await (0, promises_1.readFile)((0, node_url_1.fileURLToPath)(content));
|
|
40
|
+
Reflect.set(content, BUFFER_CACHE, buffer);
|
|
41
|
+
}
|
|
42
|
+
ctx.set('cache-control', options.cacheControl);
|
|
43
|
+
ctx.body = content;
|
|
44
|
+
ctx.type = node_path_1.default.extname(ctx.path);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
29
47
|
// '/robots.txt': Buffer <xx..
|
|
30
48
|
// content is buffer
|
|
31
49
|
if (Buffer.isBuffer(content)) {
|
|
@@ -37,4 +55,4 @@ module.exports = (options) => {
|
|
|
37
55
|
return next();
|
|
38
56
|
};
|
|
39
57
|
};
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZV9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9taWRkbGV3YXJlL3NpdGVfZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUE2QjtBQUM3Qix1Q0FBeUM7QUFDekMsK0NBQTRDO0FBVzVDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXpELGtCQUFlLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQ3BELE9BQU8sS0FBSyxVQUFVLFFBQVEsQ0FBQyxHQUFzQixFQUFFLElBQVU7UUFDL0QsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2xELE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUVELG9IQUFvSDtRQUNwSCxzQkFBc0I7UUFDdEIsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELGlCQUFpQjtRQUNqQixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsTUFBTTtRQUNOLElBQUksT0FBTyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQzNCLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsbUJBQW1CO1lBQ25CLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBVyxDQUFDO1lBQzFELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLEdBQUcsTUFBTSxJQUFBLG1CQUFRLEVBQUMsSUFBQSx3QkFBYSxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLEdBQUcsbUJBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLG9CQUFvQjtRQUNwQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0MsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDbkIsR0FBRyxDQUFDLElBQUksR0FBRyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
|
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
7
6
|
const node_path_1 = __importDefault(require("node:path"));
|
|
7
|
+
const node_url_1 = require("node:url");
|
|
8
|
+
const utils_js_1 = require("../lib/utils.js");
|
|
8
9
|
/**
|
|
9
10
|
* The configuration of egg application, can be access by `app.config`
|
|
10
11
|
* @class Config
|
|
@@ -174,7 +175,7 @@ exports.default = (appInfo) => {
|
|
|
174
175
|
/**
|
|
175
176
|
* The option of `siteFile` middleware
|
|
176
177
|
*
|
|
177
|
-
* You can map some files using this options, it will response
|
|
178
|
+
* You can map some files using this options, it will response immediately when matching.
|
|
178
179
|
*
|
|
179
180
|
* @member {Object} Config#siteFile - key is path, and value is url or buffer.
|
|
180
181
|
* @property {String} cacheControl - files cache , default is public, max-age=2592000
|
|
@@ -186,7 +187,7 @@ exports.default = (appInfo) => {
|
|
|
186
187
|
*/
|
|
187
188
|
config.siteFile = {
|
|
188
189
|
enable: true,
|
|
189
|
-
'/favicon.ico':
|
|
190
|
+
'/favicon.ico': (0, node_url_1.pathToFileURL)((0, utils_js_1.getSourceFile)('config/favicon.png')),
|
|
190
191
|
// default cache in 30 days
|
|
191
192
|
cacheControl: 'public, max-age=2592000',
|
|
192
193
|
};
|
|
@@ -375,4 +376,4 @@ exports.default = (appInfo) => {
|
|
|
375
376
|
config.onClientError = undefined;
|
|
376
377
|
return config;
|
|
377
378
|
};
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTZCO0FBQzdCLHVDQUF5QztBQUd6Qyw4Q0FBZ0Q7QUFFaEQ7Ozs7R0FJRztBQUNILGtCQUFlLENBQUMsT0FBbUIsRUFBRSxFQUFFO0lBQ3JDLE1BQU0sTUFBTSxHQUEwQjtRQUNwQzs7Ozs7V0FLRztRQUNILEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUVoQjs7Ozs7V0FLRztRQUNILElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUVsQjs7Ozs7O1dBTUc7UUFDSCxJQUFJLEVBQUUsRUFBRTtRQUVSOzs7Ozs7V0FNRztRQUNILE9BQU8sRUFBRTtRQUNQLDBCQUEwQjtRQUMxQiwrQkFBK0I7U0FDaEM7UUFFRDs7Ozs7O1dBTUc7UUFDSCxLQUFLLEVBQUUsS0FBSztRQUVaOzs7Ozs7OztXQVFHO1FBQ0gsV0FBVyxFQUFFLENBQUM7UUFFZDs7Ozs7O1dBTUc7UUFDSCxhQUFhLEVBQUUsQ0FBQztRQUVoQjs7Ozs7O1dBTUc7UUFDSCxlQUFlLEVBQUUsbUJBQW1CO1FBRXBDOzs7Ozs7V0FNRztRQUNILFNBQVMsRUFBRSxpQkFBaUI7UUFFNUI7Ozs7OztXQU1HO1FBQ0gsV0FBVyxFQUFFLEVBQUU7UUFFZjs7Ozs7V0FLRztRQUNILEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUVoQjs7Ozs7V0FLRztRQUNILE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUV4Qjs7Ozs7V0FLRztRQUNILElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUVsQjs7Ozs7V0FLRztRQUNILE1BQU0sRUFBRSxtQkFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUV6Qzs7Ozs7OztXQU9HO1FBQ0gsSUFBSSxFQUFFO1lBQ0os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
|
|
@@ -39,7 +39,7 @@ exports.default = {
|
|
|
39
39
|
*/
|
|
40
40
|
watcher: {
|
|
41
41
|
enable: true,
|
|
42
|
-
package: '
|
|
42
|
+
package: '@eggjs/watcher',
|
|
43
43
|
},
|
|
44
44
|
/**
|
|
45
45
|
* multipart
|
|
@@ -89,7 +89,7 @@ exports.default = {
|
|
|
89
89
|
*/
|
|
90
90
|
schedule: {
|
|
91
91
|
enable: true,
|
|
92
|
-
package: '
|
|
92
|
+
package: '@eggjs/schedule',
|
|
93
93
|
},
|
|
94
94
|
/**
|
|
95
95
|
* `app/public` dir static serve
|
|
@@ -122,4 +122,4 @@ exports.default = {
|
|
|
122
122
|
package: 'egg-view',
|
|
123
123
|
},
|
|
124
124
|
};
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZTtJQUNiLGlCQUFpQjtJQUVqQjs7OztPQUlHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsVUFBVTtLQUNwQjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxjQUFjO0tBQ3hCO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxZQUFZO0tBQ3RCO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxXQUFXO0tBQ3JCO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxVQUFVO0tBQ3BCO0NBQ0YsQ0FBQyJ9
|
package/dist/commonjs/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { BaseContextClass } from './lib/core/base_context_class.js';
|
|
5
5
|
import { startEgg } from './lib/start.js';
|
|
6
|
+
import Helper from './app/extend/helper.js';
|
|
7
|
+
export { Helper };
|
|
6
8
|
export * from './lib/egg.js';
|
|
7
9
|
export * from './lib/type.js';
|
|
8
10
|
export * from './lib/start.js';
|
|
@@ -10,7 +12,7 @@ export * from './lib/start.js';
|
|
|
10
12
|
* Start egg application with cluster mode
|
|
11
13
|
* @since 1.0.0
|
|
12
14
|
*/
|
|
13
|
-
export
|
|
15
|
+
export * from '@eggjs/cluster';
|
|
14
16
|
/**
|
|
15
17
|
* Start egg application with single process mode
|
|
16
18
|
* @since 1.0.0
|
package/dist/commonjs/index.js
CHANGED
|
@@ -16,10 +16,15 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
16
16
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
17
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
18
|
};
|
|
19
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
20
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
21
|
+
};
|
|
19
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.Boot = exports.BaseContextClass = exports.Subscription = exports.Service = exports.Controller = exports.AgentWorkerLoader = exports.AppWorkerLoader = exports.Agent = exports.Application = exports.start = exports.
|
|
23
|
+
exports.Boot = exports.BaseContextClass = exports.Subscription = exports.Service = exports.Controller = exports.AgentWorkerLoader = exports.AppWorkerLoader = exports.Agent = exports.Application = exports.start = exports.Helper = void 0;
|
|
21
24
|
const base_context_class_js_1 = require("./lib/core/base_context_class.js");
|
|
22
25
|
const start_js_1 = require("./lib/start.js");
|
|
26
|
+
const helper_js_1 = __importDefault(require("./app/extend/helper.js"));
|
|
27
|
+
exports.Helper = helper_js_1.default;
|
|
23
28
|
// export types
|
|
24
29
|
__exportStar(require("./lib/egg.js"), exports);
|
|
25
30
|
__exportStar(require("./lib/type.js"), exports);
|
|
@@ -28,10 +33,7 @@ __exportStar(require("./lib/start.js"), exports);
|
|
|
28
33
|
* Start egg application with cluster mode
|
|
29
34
|
* @since 1.0.0
|
|
30
35
|
*/
|
|
31
|
-
|
|
32
|
-
// @ts-ignore
|
|
33
|
-
var egg_cluster_1 = require("egg-cluster");
|
|
34
|
-
Object.defineProperty(exports, "startCluster", { enumerable: true, get: function () { return egg_cluster_1.startCluster; } });
|
|
36
|
+
__exportStar(require("@eggjs/cluster"), exports);
|
|
35
37
|
/**
|
|
36
38
|
* Start egg application with single process mode
|
|
37
39
|
* @since 1.0.0
|
|
@@ -86,4 +88,4 @@ Object.defineProperty(exports, "BaseContextClass", { enumerable: true, get: func
|
|
|
86
88
|
*/
|
|
87
89
|
var base_hook_class_js_1 = require("./lib/core/base_hook_class.js");
|
|
88
90
|
Object.defineProperty(exports, "Boot", { enumerable: true, get: function () { return base_hook_class_js_1.BaseHookClass; } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDRFQUFvRTtBQUNwRSw2Q0FBMEM7QUFDMUMsdUVBQTRDO0FBR25DLGlCQUhGLG1CQUFNLENBR0U7QUFFZixlQUFlO0FBQ2YsK0NBQTZCO0FBQzdCLGdEQUE4QjtBQUM5QixpREFBK0I7QUFFL0I7OztHQUdHO0FBQ0gsaURBQStCO0FBRS9COzs7R0FHRztBQUNVLFFBQUEsS0FBSyxHQUFHLG1CQUFRLENBQUM7QUFFOUI7OztHQUdHO0FBQ0gsdURBQW1EO0FBQTFDLDZHQUFBLFdBQVcsT0FBQTtBQUVwQjs7O0dBR0c7QUFDSCwyQ0FBdUM7QUFBOUIsaUdBQUEsS0FBSyxPQUFBO0FBRWQ7OztHQUdHO0FBRUg7OztHQUdHO0FBRUgsa0RBQTJFO0FBQWxFLDJHQUFBLGVBQWUsT0FBQTtBQUFFLDZHQUFBLGlCQUFpQixPQUFBO0FBRTNDOzs7R0FHRztBQUNVLFFBQUEsVUFBVSxHQUFHLHdDQUFnQixDQUFDO0FBRTNDOzs7R0FHRztBQUNVLFFBQUEsT0FBTyxHQUFHLHdDQUFnQixDQUFDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsWUFBWSxHQUFHLHdDQUFnQixDQUFDO0FBRTdDOzs7R0FHRztBQUNILDBFQUFvRTtBQUEzRCx5SEFBQSxnQkFBZ0IsT0FBQTtBQUV6Qjs7R0FFRztBQUNILG9FQUFzRTtBQUE3RCwwR0FBQSxhQUFhLE9BQVEifQ==
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import http from 'node:http';
|
|
2
2
|
import { Socket } from 'node:net';
|
|
3
|
-
import { EggApplicationCore,
|
|
3
|
+
import { EggApplicationCore, type EggApplicationCoreOptions, type ContextDelegation } from './egg.js';
|
|
4
4
|
import { AppWorkerLoader } from './loader/index.js';
|
|
5
|
-
import
|
|
5
|
+
import Helper from '../app/extend/helper.js';
|
|
6
6
|
declare const EGG_LOADER: unique symbol;
|
|
7
|
-
/**
|
|
8
|
-
* The Helper class which can be used as utility function.
|
|
9
|
-
* We support developers to extend Helper through ${baseDir}/app/extend/helper.js ,
|
|
10
|
-
* then you can use all method on `ctx.helper` that is a instance of Helper.
|
|
11
|
-
*/
|
|
12
|
-
declare class HelperClass extends BaseContextClass {
|
|
13
|
-
}
|
|
14
7
|
/**
|
|
15
8
|
* Singleton instance in App Worker, extend {@link EggApplicationCore}
|
|
16
9
|
* @augments EggApplicationCore
|
|
@@ -22,7 +15,7 @@ export declare class Application extends EggApplicationCore {
|
|
|
22
15
|
* reference to {@link Helper}
|
|
23
16
|
* @member {Helper} Application#Helper
|
|
24
17
|
*/
|
|
25
|
-
Helper: typeof
|
|
18
|
+
Helper: typeof Helper;
|
|
26
19
|
/**
|
|
27
20
|
* @class
|
|
28
21
|
* @param {Object} options - see {@link EggApplicationCore}
|
|
@@ -49,14 +42,14 @@ export declare class Application extends EggApplicationCore {
|
|
|
49
42
|
* @see Context#runInBackground
|
|
50
43
|
* @param {Function} scope - the first args is an anonymous ctx
|
|
51
44
|
*/
|
|
52
|
-
runInBackground(scope: (ctx:
|
|
45
|
+
runInBackground(scope: (ctx: ContextDelegation) => Promise<void>, req?: unknown): void;
|
|
53
46
|
/**
|
|
54
47
|
* Run async function in the anonymous context scope
|
|
55
48
|
* @see Context#runInAnonymousContextScope
|
|
56
49
|
* @param {Function} scope - the first args is an anonymous ctx, scope should be async function
|
|
57
50
|
* @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
|
|
58
51
|
*/
|
|
59
|
-
runInAnonymousContextScope(scope: (ctx:
|
|
52
|
+
runInAnonymousContextScope(scope: (ctx: ContextDelegation) => Promise<void>, req?: unknown): Promise<void>;
|
|
60
53
|
/**
|
|
61
54
|
* secret key for Application
|
|
62
55
|
* @member {String} Application#keys
|