@eggjs/core 7.0.0-beta.35 → 7.0.0-beta.36
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/dist/base_context_class.d.ts +19 -14
- package/dist/base_context_class.js +39 -36
- package/dist/egg.d.ts +279 -277
- package/dist/egg.js +394 -426
- package/dist/index.d.ts +12 -12
- package/dist/index.js +12 -12
- package/dist/lifecycle.d.ts +79 -75
- package/dist/lifecycle.js +280 -306
- package/dist/loader/context_loader.d.ts +34 -30
- package/dist/loader/context_loader.js +76 -99
- package/dist/loader/egg_loader.d.ts +370 -366
- package/dist/loader/egg_loader.js +1169 -1567
- package/dist/loader/file_loader.d.ts +99 -95
- package/dist/loader/file_loader.js +190 -241
- package/dist/singleton.d.ts +31 -27
- package/dist/singleton.js +107 -117
- package/dist/types.d.ts +54 -51
- package/dist/utils/index.d.ts +16 -14
- package/dist/utils/index.js +96 -105
- package/dist/utils/sequencify.d.ts +13 -10
- package/dist/utils/sequencify.js +44 -58
- package/dist/utils/timing.d.ts +22 -19
- package/dist/utils/timing.js +85 -92
- package/package.json +35 -40
- package/dist/types.js +0 -2
package/dist/egg.js
CHANGED
|
@@ -1,430 +1,398 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { debuglog } from 'node:util';
|
|
3
|
-
import { Application as KoaApplication, Context as KoaContext, Request as KoaRequest, Response as KoaResponse, } from '@eggjs/koa';
|
|
4
|
-
import { EggRouter as Router } from '@eggjs/router';
|
|
5
|
-
import { EggConsoleLogger } from 'egg-logger';
|
|
1
|
+
import utils_default from "./utils/index.js";
|
|
6
2
|
import { BaseContextClass } from "./base_context_class.js";
|
|
7
3
|
import { Lifecycle } from "./lifecycle.js";
|
|
4
|
+
import { Timing } from "./utils/timing.js";
|
|
8
5
|
import { EggLoader } from "./loader/egg_loader.js";
|
|
9
6
|
import { Singleton } from "./singleton.js";
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
*
|
|
403
|
-
* @since 4.0.0
|
|
404
|
-
* @returns {typeof EggLoader}
|
|
405
|
-
*/
|
|
406
|
-
customEggLoader() {
|
|
407
|
-
return EggLoader;
|
|
408
|
-
}
|
|
409
|
-
/**
|
|
410
|
-
* Override this method to customize the egg paths
|
|
411
|
-
*
|
|
412
|
-
* ```ts
|
|
413
|
-
* // src/ExampleApplication.ts
|
|
414
|
-
* import { Application } from 'egg';
|
|
415
|
-
*
|
|
416
|
-
* class ExampleApplication extends Application {
|
|
417
|
-
* protected override customEggPaths() {
|
|
418
|
-
* return [path.dirname(import.meta.dirname), ...super.customEggPaths()];
|
|
419
|
-
* }
|
|
420
|
-
* }
|
|
421
|
-
* ```
|
|
422
|
-
*
|
|
423
|
-
* @since 4.0.0
|
|
424
|
-
* @returns {string[]}
|
|
425
|
-
*/
|
|
426
|
-
customEggPaths() {
|
|
427
|
-
return [];
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VnZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQ0wsV0FBVyxJQUFJLGNBQWMsRUFDN0IsT0FBTyxJQUFJLFVBQVUsRUFDckIsT0FBTyxJQUFJLFVBQVUsRUFDckIsUUFBUSxJQUFJLFdBQVcsR0FHeEIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFNBQVMsSUFBSSxNQUFNLEVBQWtELE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLFlBQVksQ0FBQztBQUczRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXFELE1BQU0sZ0JBQWdCLENBQUM7QUFFOUYsT0FBTyxLQUFLLEVBQUUsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFXLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7QUFZM0QsNEJBQTRCO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFLdkUsNkJBQTZCO0FBQzdCLE1BQU0sT0FBTyxPQUFRLFNBQVEsVUFBVTtDQUl0QztBQUVELE1BQU0sT0FBTyxR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
|
|
7
|
+
import { debuglog } from "node:util";
|
|
8
|
+
import assert from "node:assert";
|
|
9
|
+
import { Application as KoaApplication, Context as KoaContext, Request as KoaRequest, Response as KoaResponse } from "@eggjs/koa";
|
|
10
|
+
import { EggRouter as Router } from "@eggjs/router";
|
|
11
|
+
import { EggConsoleLogger } from "egg-logger";
|
|
12
|
+
|
|
13
|
+
//#region src/egg.ts
|
|
14
|
+
const debug = debuglog("egg/core/egg");
|
|
15
|
+
const EGG_LOADER = Symbol.for("egg#loader");
|
|
16
|
+
var Request$1 = class extends KoaRequest {};
|
|
17
|
+
var Response$1 = class extends KoaResponse {};
|
|
18
|
+
var Context$1 = class extends KoaContext {
|
|
19
|
+
/**
|
|
20
|
+
* Returns map of URL parameters for given `path` and `paramNames`.
|
|
21
|
+
* @example
|
|
22
|
+
* ##### ctx.params.id {string}
|
|
23
|
+
*
|
|
24
|
+
* `GET /api/users/1` => `'1'`
|
|
25
|
+
*
|
|
26
|
+
* ##### ctx.params.per_page {string}
|
|
27
|
+
*
|
|
28
|
+
* The number of every page, `GET /api/users?per_page=20` => `20`
|
|
29
|
+
*/
|
|
30
|
+
params;
|
|
31
|
+
/**
|
|
32
|
+
* Returns array of router regexp url path captures.
|
|
33
|
+
*/
|
|
34
|
+
captures;
|
|
35
|
+
/**
|
|
36
|
+
* Returns the name of the matched router.
|
|
37
|
+
*/
|
|
38
|
+
routerName;
|
|
39
|
+
/**
|
|
40
|
+
* Returns the path of the matched router.
|
|
41
|
+
*/
|
|
42
|
+
routerPath;
|
|
43
|
+
};
|
|
44
|
+
var EggCore = class EggCore extends KoaApplication {
|
|
45
|
+
options;
|
|
46
|
+
timing;
|
|
47
|
+
console;
|
|
48
|
+
BaseContextClass;
|
|
49
|
+
Controller;
|
|
50
|
+
Service;
|
|
51
|
+
Helper;
|
|
52
|
+
lifecycle;
|
|
53
|
+
loader;
|
|
54
|
+
#closePromise;
|
|
55
|
+
#router;
|
|
56
|
+
/** auto inject on loadService() */
|
|
57
|
+
serviceClasses = {};
|
|
58
|
+
/** auto inject on loadController() */
|
|
59
|
+
controller = {};
|
|
60
|
+
/** auto inject on loadMiddleware() */
|
|
61
|
+
middlewares = {};
|
|
62
|
+
/**
|
|
63
|
+
* @class
|
|
64
|
+
* @param {Object} options - options
|
|
65
|
+
* @param {String} [options.baseDir] - the directory of application
|
|
66
|
+
* @param {String} [options.type] - whether it's running in app worker or agent worker
|
|
67
|
+
* @param {Object} [options.plugins] - custom plugins
|
|
68
|
+
* @since 1.0.0
|
|
69
|
+
*/
|
|
70
|
+
constructor(options = {}) {
|
|
71
|
+
options.baseDir = options.baseDir ?? process.cwd();
|
|
72
|
+
options.type = options.type ?? "application";
|
|
73
|
+
assert(typeof options.baseDir === "string", "options.baseDir required, and must be a string");
|
|
74
|
+
assert(options.type === "application" || options.type === "agent", "options.type should be application or agent");
|
|
75
|
+
super();
|
|
76
|
+
this.timing = new Timing();
|
|
77
|
+
/**
|
|
78
|
+
* @member {Object} EggCore#options
|
|
79
|
+
* @private
|
|
80
|
+
* @since 1.0.0
|
|
81
|
+
*/
|
|
82
|
+
this.options = options;
|
|
83
|
+
/**
|
|
84
|
+
* logging for EggCore, avoid using console directly
|
|
85
|
+
* @member {Logger} EggCore#console
|
|
86
|
+
* @private
|
|
87
|
+
* @since 1.0.0
|
|
88
|
+
*/
|
|
89
|
+
this.console = new EggConsoleLogger();
|
|
90
|
+
/**
|
|
91
|
+
* @member {BaseContextClass} EggCore#BaseContextClass
|
|
92
|
+
* @since 1.0.0
|
|
93
|
+
*/
|
|
94
|
+
this.BaseContextClass = BaseContextClass;
|
|
95
|
+
/**
|
|
96
|
+
* Retrieve base controller
|
|
97
|
+
* @member {Controller} EggCore#Controller
|
|
98
|
+
* @since 1.0.0
|
|
99
|
+
*/
|
|
100
|
+
this.Controller = this.BaseContextClass;
|
|
101
|
+
/**
|
|
102
|
+
* Retrieve base service
|
|
103
|
+
* @member {Service} EggCore#Service
|
|
104
|
+
* @since 1.0.0
|
|
105
|
+
*/
|
|
106
|
+
this.Service = this.BaseContextClass;
|
|
107
|
+
this.lifecycle = new Lifecycle({
|
|
108
|
+
baseDir: options.baseDir,
|
|
109
|
+
app: this,
|
|
110
|
+
logger: this.console
|
|
111
|
+
});
|
|
112
|
+
this.lifecycle.on("error", (err) => this.emit("error", err));
|
|
113
|
+
this.lifecycle.on("ready_timeout", (id) => this.emit("ready_timeout", id));
|
|
114
|
+
this.lifecycle.on("ready_stat", (data) => this.emit("ready_stat", data));
|
|
115
|
+
/**
|
|
116
|
+
* The loader instance, the default class is {@link EggLoader}.
|
|
117
|
+
* If you want define
|
|
118
|
+
* @member {EggLoader} EggCore#loader
|
|
119
|
+
* @since 1.0.0
|
|
120
|
+
*/
|
|
121
|
+
let Loader;
|
|
122
|
+
if (EGG_LOADER in this) {
|
|
123
|
+
this.deprecate("Symbol.for(\"egg#loader\") is deprecated, please use \"override the `customEggLoader()` method\" instead");
|
|
124
|
+
Loader = this[EGG_LOADER];
|
|
125
|
+
} else Loader = this.customEggLoader();
|
|
126
|
+
this.loader = new Loader({
|
|
127
|
+
baseDir: options.baseDir,
|
|
128
|
+
app: this,
|
|
129
|
+
plugins: options.plugins,
|
|
130
|
+
logger: this.console,
|
|
131
|
+
serverScope: options.serverScope,
|
|
132
|
+
env: options.env ?? "",
|
|
133
|
+
EggCoreClass: EggCore
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
get logger() {
|
|
137
|
+
return this.console;
|
|
138
|
+
}
|
|
139
|
+
get coreLogger() {
|
|
140
|
+
return this.console;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* create a singleton instance
|
|
144
|
+
* @param {String} name - unique name for singleton
|
|
145
|
+
* @param {Function|AsyncFunction} create - method will be invoked when singleton instance create
|
|
146
|
+
*/
|
|
147
|
+
addSingleton(name, create) {
|
|
148
|
+
const initPromise = new Singleton({
|
|
149
|
+
name,
|
|
150
|
+
create,
|
|
151
|
+
app: this
|
|
152
|
+
}).init();
|
|
153
|
+
if (initPromise) this.lifecycle.registerBeforeStart(async () => {
|
|
154
|
+
await initPromise;
|
|
155
|
+
}, `${name}-singleton-init`);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* override koa's app.use, support generator function
|
|
159
|
+
* @since 1.0.0
|
|
160
|
+
*/
|
|
161
|
+
use(fn) {
|
|
162
|
+
assert(typeof fn === "function", "app.use() requires a function");
|
|
163
|
+
debug("[use] add middleware: %o", fn._name || fn.name || "-");
|
|
164
|
+
this.middleware.push(fn);
|
|
165
|
+
return this;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Whether `application` or `agent`
|
|
169
|
+
* @member {String}
|
|
170
|
+
* @since 1.0.0
|
|
171
|
+
*/
|
|
172
|
+
get type() {
|
|
173
|
+
return this.options.type;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The current directory of application
|
|
177
|
+
* @member {String}
|
|
178
|
+
* @see {@link AppInfo#baseDir}
|
|
179
|
+
* @since 1.0.0
|
|
180
|
+
*/
|
|
181
|
+
get baseDir() {
|
|
182
|
+
return this.options.baseDir;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Alias to {@link https://npmjs.com/package/depd}
|
|
186
|
+
* @member {Function}
|
|
187
|
+
* @since 1.0.0
|
|
188
|
+
*/
|
|
189
|
+
get deprecate() {
|
|
190
|
+
return utils_default.deprecated;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* The name of application
|
|
194
|
+
* @member {String}
|
|
195
|
+
* @see {@link AppInfo#name}
|
|
196
|
+
* @since 1.0.0
|
|
197
|
+
*/
|
|
198
|
+
get name() {
|
|
199
|
+
return this.loader ? this.loader.pkg.name : "";
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Retrieve enabled plugins
|
|
203
|
+
* @member {Object}
|
|
204
|
+
* @since 1.0.0
|
|
205
|
+
*/
|
|
206
|
+
get plugins() {
|
|
207
|
+
return this.loader ? this.loader.plugins : {};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* The configuration of application
|
|
211
|
+
* @member {Config}
|
|
212
|
+
* @since 1.0.0
|
|
213
|
+
*/
|
|
214
|
+
get config() {
|
|
215
|
+
return this.loader ? this.loader.config : {};
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Execute scope after loaded and before app start.
|
|
219
|
+
*
|
|
220
|
+
* Notice:
|
|
221
|
+
* This method is now NOT recommended and regarded as a deprecated one,
|
|
222
|
+
* For plugin development, we should use `didLoad` instead.
|
|
223
|
+
* For application development, we should use `willReady` instead.
|
|
224
|
+
*
|
|
225
|
+
* @see https://eggjs.org/en/advanced/loader.html#beforestart
|
|
226
|
+
*
|
|
227
|
+
* @param {Function} scope function will execute before app start
|
|
228
|
+
* @param {string} [name] scope name, default is empty string
|
|
229
|
+
*/
|
|
230
|
+
beforeStart(scope, name) {
|
|
231
|
+
this.deprecate("`beforeStart` was deprecated, please use \"Life Cycles\" instead, see https://www.eggjs.org/advanced/loader#life-cycles");
|
|
232
|
+
this.lifecycle.registerBeforeStart(scope, name ?? "");
|
|
233
|
+
}
|
|
234
|
+
ready(flagOrFunction) {
|
|
235
|
+
if (flagOrFunction === void 0) return this.lifecycle.ready();
|
|
236
|
+
return this.lifecycle.ready(flagOrFunction);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* If a client starts asynchronously, you can register `readyCallback`,
|
|
240
|
+
* then the application will wait for the callback to ready
|
|
241
|
+
*
|
|
242
|
+
* It will log when the callback is not invoked after 10s
|
|
243
|
+
*
|
|
244
|
+
* Recommend to use {@link EggCore#beforeStart}
|
|
245
|
+
* @since 1.0.0
|
|
246
|
+
*
|
|
247
|
+
* @param {String} name - readyCallback task name
|
|
248
|
+
* @param {object} opts -
|
|
249
|
+
* - {Number} [timeout=10000] - emit `ready_timeout` when it doesn't finish but reach the timeout
|
|
250
|
+
* - {Boolean} [isWeakDep=false] - whether it's a weak dependency
|
|
251
|
+
* @returns {Function} - a callback
|
|
252
|
+
* @example
|
|
253
|
+
* const done = app.readyCallback('mysql');
|
|
254
|
+
* mysql.ready(done);
|
|
255
|
+
*/
|
|
256
|
+
readyCallback(name, opts) {
|
|
257
|
+
this.deprecate("`readyCallback` was deprecated, please use \"Life Cycles\" instead, see https://www.eggjs.org/advanced/loader#life-cycles");
|
|
258
|
+
return this.lifecycle.legacyReadyCallback(name, opts);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Register a function that will be called when app close.
|
|
262
|
+
*
|
|
263
|
+
* Notice:
|
|
264
|
+
* This method is now NOT recommended directly used,
|
|
265
|
+
* Developers SHOULDN'T use app.beforeClose directly now,
|
|
266
|
+
* but in the form of class to implement beforeClose instead.
|
|
267
|
+
*
|
|
268
|
+
* @see https://eggjs.org/en/advanced/loader.html#beforeclose
|
|
269
|
+
*
|
|
270
|
+
* @param {Function} fn - the function that can be generator function or async function.
|
|
271
|
+
*/
|
|
272
|
+
beforeClose(fn, name) {
|
|
273
|
+
this.deprecate("`beforeClose` was deprecated, please use \"Life Cycles\" instead, see https://www.eggjs.org/advanced/loader#life-cycles");
|
|
274
|
+
this.lifecycle.registerBeforeClose(fn, name);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Close all, it will close
|
|
278
|
+
* - callbacks registered by beforeClose
|
|
279
|
+
* - emit `close` event
|
|
280
|
+
* - remove add listeners
|
|
281
|
+
*
|
|
282
|
+
* If error is thrown when it's closing, the promise will reject.
|
|
283
|
+
* It will also reject after following call.
|
|
284
|
+
* @returns {Promise} promise
|
|
285
|
+
* @since 1.0.0
|
|
286
|
+
*/
|
|
287
|
+
async close() {
|
|
288
|
+
if (this.#closePromise) return this.#closePromise;
|
|
289
|
+
this.#closePromise = this.lifecycle.close();
|
|
290
|
+
return this.#closePromise;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* get router
|
|
294
|
+
* @member {Router} EggCore#router
|
|
295
|
+
* @since 1.0.0
|
|
296
|
+
*/
|
|
297
|
+
get router() {
|
|
298
|
+
if (this.#router) return this.#router;
|
|
299
|
+
this.#router = new Router({ sensitive: true }, this);
|
|
300
|
+
return this.#router;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Alias to {@link Router#url}
|
|
304
|
+
* @param {String} name - Router name
|
|
305
|
+
* @param {Object} params - more parameters
|
|
306
|
+
* @returns {String} url
|
|
307
|
+
*/
|
|
308
|
+
url(name, params) {
|
|
309
|
+
return this.router.url(name, params);
|
|
310
|
+
}
|
|
311
|
+
head(...args) {
|
|
312
|
+
this.router.head.apply(this.router, args);
|
|
313
|
+
return this;
|
|
314
|
+
}
|
|
315
|
+
get(...args) {
|
|
316
|
+
this.router.get.apply(this.router, args);
|
|
317
|
+
return this;
|
|
318
|
+
}
|
|
319
|
+
put(...args) {
|
|
320
|
+
this.router.put.apply(this.router, args);
|
|
321
|
+
return this;
|
|
322
|
+
}
|
|
323
|
+
patch(...args) {
|
|
324
|
+
this.router.patch.apply(this.router, args);
|
|
325
|
+
return this;
|
|
326
|
+
}
|
|
327
|
+
post(...args) {
|
|
328
|
+
this.router.post.apply(this.router, args);
|
|
329
|
+
return this;
|
|
330
|
+
}
|
|
331
|
+
delete(...args) {
|
|
332
|
+
this.router.delete.apply(this.router, args);
|
|
333
|
+
return this;
|
|
334
|
+
}
|
|
335
|
+
del(...args) {
|
|
336
|
+
this.router.del.apply(this.router, args);
|
|
337
|
+
return this;
|
|
338
|
+
}
|
|
339
|
+
all(...args) {
|
|
340
|
+
this.router.all.apply(this.router, args);
|
|
341
|
+
return this;
|
|
342
|
+
}
|
|
343
|
+
resources(...args) {
|
|
344
|
+
this.router.resources.apply(this.router, args);
|
|
345
|
+
return this;
|
|
346
|
+
}
|
|
347
|
+
redirect(source, destination, status = 301) {
|
|
348
|
+
this.router.redirect(source, destination, status);
|
|
349
|
+
return this;
|
|
350
|
+
}
|
|
351
|
+
register(path, methods, middleware, opts) {
|
|
352
|
+
this.router.register(path, methods, middleware, opts);
|
|
353
|
+
return this;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Override this method to customize the loader
|
|
357
|
+
*
|
|
358
|
+
* ```ts
|
|
359
|
+
* // src/ExampleApplication.ts
|
|
360
|
+
* import { Application } from 'egg';
|
|
361
|
+
*
|
|
362
|
+
* class ExampleApplication extends Application {
|
|
363
|
+
* protected override customEggLoader() {
|
|
364
|
+
* return ExampleLoader;
|
|
365
|
+
* }
|
|
366
|
+
* }
|
|
367
|
+
* ```
|
|
368
|
+
*
|
|
369
|
+
* @since 4.0.0
|
|
370
|
+
* @returns {typeof EggLoader}
|
|
371
|
+
*/
|
|
372
|
+
customEggLoader() {
|
|
373
|
+
return EggLoader;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Override this method to customize the egg paths
|
|
377
|
+
*
|
|
378
|
+
* ```ts
|
|
379
|
+
* // src/ExampleApplication.ts
|
|
380
|
+
* import { Application } from 'egg';
|
|
381
|
+
*
|
|
382
|
+
* class ExampleApplication extends Application {
|
|
383
|
+
* protected override customEggPaths() {
|
|
384
|
+
* return [path.dirname(import.meta.dirname), ...super.customEggPaths()];
|
|
385
|
+
* }
|
|
386
|
+
* }
|
|
387
|
+
* ```
|
|
388
|
+
*
|
|
389
|
+
* @since 4.0.0
|
|
390
|
+
* @returns {string[]}
|
|
391
|
+
*/
|
|
392
|
+
customEggPaths() {
|
|
393
|
+
return [];
|
|
394
|
+
}
|
|
395
|
+
};
|
|
396
|
+
|
|
397
|
+
//#endregion
|
|
398
|
+
export { Context$1 as Context, EGG_LOADER, EggCore, KoaApplication, KoaContext, KoaRequest, KoaResponse, Request$1 as Request, Response$1 as Response, Router };
|