@eggjs/core 6.4.0 → 6.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -22
- package/dist/commonjs/egg.d.ts +17 -18
- package/dist/commonjs/egg.js +11 -11
- package/dist/commonjs/lifecycle.d.ts +2 -2
- package/dist/commonjs/lifecycle.js +16 -13
- package/dist/commonjs/loader/context_loader.js +2 -2
- package/dist/commonjs/loader/egg_loader.d.ts +13 -13
- package/dist/commonjs/loader/egg_loader.js +77 -62
- package/dist/commonjs/loader/file_loader.d.ts +3 -3
- package/dist/commonjs/loader/file_loader.js +22 -24
- package/dist/commonjs/singleton.d.ts +2 -2
- package/dist/commonjs/singleton.js +6 -7
- package/dist/commonjs/utils/index.d.ts +2 -2
- package/dist/commonjs/utils/index.js +4 -4
- package/dist/commonjs/utils/sequencify.d.ts +1 -1
- package/dist/commonjs/utils/sequencify.js +18 -13
- package/dist/commonjs/utils/timing.js +14 -8
- package/dist/esm/egg.d.ts +17 -18
- package/dist/esm/egg.js +13 -13
- package/dist/esm/lifecycle.d.ts +2 -2
- package/dist/esm/lifecycle.js +16 -13
- package/dist/esm/loader/context_loader.js +2 -2
- package/dist/esm/loader/egg_loader.d.ts +13 -13
- package/dist/esm/loader/egg_loader.js +80 -65
- package/dist/esm/loader/file_loader.d.ts +3 -3
- package/dist/esm/loader/file_loader.js +23 -25
- package/dist/esm/singleton.d.ts +2 -2
- package/dist/esm/singleton.js +6 -7
- package/dist/esm/utils/index.d.ts +2 -2
- package/dist/esm/utils/index.js +4 -4
- package/dist/esm/utils/sequencify.d.ts +1 -1
- package/dist/esm/utils/sequencify.js +18 -13
- package/dist/esm/utils/timing.js +14 -8
- package/dist/package.json +1 -1
- package/package.json +16 -6
- package/src/egg.ts +161 -61
- package/src/lifecycle.ts +72 -33
- package/src/loader/context_loader.ts +9 -7
- package/src/loader/egg_loader.ts +445 -183
- package/src/loader/file_loader.ts +78 -37
- package/src/singleton.ts +64 -26
- package/src/utils/index.ts +20 -13
- package/src/utils/sequencify.ts +50 -15
- package/src/utils/timing.ts +27 -13
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fun } from '../utils/index.js';
|
|
1
|
+
import { type Fun } from '../utils/index.js';
|
|
2
2
|
export declare const FULLPATH: unique symbol;
|
|
3
3
|
export declare const EXPORTS: unique symbol;
|
|
4
4
|
export declare enum CaseStyle {
|
|
@@ -66,7 +66,7 @@ export declare class FileLoader {
|
|
|
66
66
|
/**
|
|
67
67
|
* attach items to target object. Mapping the directory to properties.
|
|
68
68
|
* `app/controller/group/repository.js` => `target.group.repository`
|
|
69
|
-
* @
|
|
69
|
+
* @returns {Object} target
|
|
70
70
|
* @since 1.0.0
|
|
71
71
|
*/
|
|
72
72
|
load(): Promise<object>;
|
|
@@ -93,7 +93,7 @@ export declare class FileLoader {
|
|
|
93
93
|
* `Properties` is an array that contains the directory of a filepath.
|
|
94
94
|
*
|
|
95
95
|
* `Exports` depends on type, if exports is a function, it will be called. if initializer is specified, it will be called with exports for customizing.
|
|
96
|
-
* @
|
|
96
|
+
* @returns {Array} items
|
|
97
97
|
* @since 1.0.0
|
|
98
98
|
*/
|
|
99
99
|
protected parse(): Promise<FileLoaderParseItem[]>;
|
|
@@ -65,7 +65,7 @@ class FileLoader {
|
|
|
65
65
|
/**
|
|
66
66
|
* attach items to target object. Mapping the directory to properties.
|
|
67
67
|
* `app/controller/group/repository.js` => `target.group.repository`
|
|
68
|
-
* @
|
|
68
|
+
* @returns {Object} target
|
|
69
69
|
* @since 1.0.0
|
|
70
70
|
*/
|
|
71
71
|
async load() {
|
|
@@ -75,13 +75,13 @@ class FileLoader {
|
|
|
75
75
|
debug('loading item: %o', item);
|
|
76
76
|
// item { properties: [ 'a', 'b', 'c'], exports }
|
|
77
77
|
// => target.a.b.c = exports
|
|
78
|
+
// oxlint-disable-next-line unicorn/no-array-reduce
|
|
78
79
|
item.properties.reduce((target, property, index) => {
|
|
79
80
|
let obj;
|
|
80
81
|
const properties = item.properties.slice(0, index + 1).join('.');
|
|
81
82
|
if (index === item.properties.length - 1) {
|
|
82
|
-
if (property in target) {
|
|
83
|
-
|
|
84
|
-
throw new Error(`can't overwrite property '${properties}' from ${target[property][exports.FULLPATH]} by ${item.fullpath}`);
|
|
83
|
+
if (property in target && !this.options.override) {
|
|
84
|
+
throw new Error(`can't overwrite property '${properties}' from ${target[property][exports.FULLPATH]} by ${item.fullpath}`);
|
|
85
85
|
}
|
|
86
86
|
obj = item.exports;
|
|
87
87
|
if (obj && !(0, is_type_of_1.isPrimitive)(obj)) {
|
|
@@ -122,19 +122,19 @@ class FileLoader {
|
|
|
122
122
|
* `Properties` is an array that contains the directory of a filepath.
|
|
123
123
|
*
|
|
124
124
|
* `Exports` depends on type, if exports is a function, it will be called. if initializer is specified, it will be called with exports for customizing.
|
|
125
|
-
* @
|
|
125
|
+
* @returns {Array} items
|
|
126
126
|
* @since 1.0.0
|
|
127
127
|
*/
|
|
128
128
|
async parse() {
|
|
129
129
|
let files = this.options.match;
|
|
130
|
-
if (
|
|
130
|
+
if (files) {
|
|
131
|
+
files = Array.isArray(files) ? files : [files];
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
131
134
|
files = (0, utils_1.isSupportTypeScript)()
|
|
132
135
|
? ['**/*.(js|ts)', '!**/*.d.ts']
|
|
133
136
|
: ['**/*.js'];
|
|
134
137
|
}
|
|
135
|
-
else {
|
|
136
|
-
files = Array.isArray(files) ? files : [files];
|
|
137
|
-
}
|
|
138
138
|
let ignore = this.options.ignore;
|
|
139
139
|
if (ignore) {
|
|
140
140
|
ignore = Array.isArray(ignore) ? ignore : [ignore];
|
|
@@ -170,7 +170,9 @@ class FileLoader {
|
|
|
170
170
|
// get exports from the file
|
|
171
171
|
const exports = await getExports(fullpath, this.options, pathName);
|
|
172
172
|
// ignore exports when it's null or false returned by filter function
|
|
173
|
-
if (exports
|
|
173
|
+
if (exports === null ||
|
|
174
|
+
exports === undefined ||
|
|
175
|
+
(filter && filter(exports) === false)) {
|
|
174
176
|
continue;
|
|
175
177
|
}
|
|
176
178
|
// set properties of class
|
|
@@ -225,7 +227,7 @@ async function getExports(fullpath, options, pathName) {
|
|
|
225
227
|
// }
|
|
226
228
|
if (options.call && typeof exports === 'function') {
|
|
227
229
|
exports = exports(options.inject);
|
|
228
|
-
if (exports
|
|
230
|
+
if (exports !== null && exports !== undefined) {
|
|
229
231
|
return exports;
|
|
230
232
|
}
|
|
231
233
|
}
|
|
@@ -233,7 +235,7 @@ async function getExports(fullpath, options, pathName) {
|
|
|
233
235
|
return exports;
|
|
234
236
|
}
|
|
235
237
|
function defaultCamelize(filepath, caseStyle) {
|
|
236
|
-
const properties = filepath.
|
|
238
|
+
const properties = filepath.slice(0, filepath.lastIndexOf('.')).split('/');
|
|
237
239
|
return properties.map(property => {
|
|
238
240
|
if (!/^[a-z][a-z0-9_-]*$/i.test(property)) {
|
|
239
241
|
throw new Error(`${property} is not match 'a-z0-9_-' in ${filepath}`);
|
|
@@ -244,19 +246,15 @@ function defaultCamelize(filepath, caseStyle) {
|
|
|
244
246
|
// FooBar.js > FooBar
|
|
245
247
|
// FooBar.js > FooBar
|
|
246
248
|
// FooBar.js > fooBar (if lowercaseFirst is true)
|
|
247
|
-
property = property.
|
|
249
|
+
property = property.replaceAll(/[_-][a-z]/gi, s => s.slice(1).toUpperCase());
|
|
248
250
|
let first = property[0];
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
first = first.toUpperCase();
|
|
255
|
-
break;
|
|
256
|
-
case 'camel':
|
|
257
|
-
default:
|
|
251
|
+
if (caseStyle === CaseStyle.lower) {
|
|
252
|
+
first = first.toLowerCase();
|
|
253
|
+
}
|
|
254
|
+
else if (caseStyle === CaseStyle.upper) {
|
|
255
|
+
first = first.toUpperCase();
|
|
258
256
|
}
|
|
259
|
-
return first + property.
|
|
257
|
+
return first + property.slice(1);
|
|
260
258
|
});
|
|
261
259
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9hZGVyL2ZpbGVfbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFpQztBQUNqQyxzREFBeUI7QUFDekIseUNBQXFDO0FBQ3JDLDBEQUE2QjtBQUU3QixvREFBNEI7QUFDNUIsMkNBS29CO0FBQ3BCLHdDQUFtRDtBQUVuRCxpRUFBb0Q7QUFFcEQsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFckMsUUFBQSxRQUFRLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDOUMsUUFBQSxPQUFPLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFekQsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLDRCQUFlLENBQUE7SUFDZiw0QkFBZSxDQUFBO0lBQ2YsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsU0FBUyx5QkFBVCxTQUFTLFFBSXBCO0FBeUNEOzs7R0FHRztBQUNILE1BQWEsVUFBVTtJQUNyQixNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPLGdCQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sS0FBSyxPQUFPO1FBQ2hCLE9BQU8sZUFBTyxDQUFDO0lBQ2pCLENBQUM7SUFFUSxPQUFPLENBQ2lDO0lBRWpEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxZQUFZLE9BQTBCO1FBQ3BDLElBQUEscUJBQU0sRUFBQyxPQUFPLENBQUMsU0FBUyxFQUFFLCtCQUErQixDQUFDLENBQUM7UUFDM0QsSUFBQSxxQkFBTSxFQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQzFCLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFF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
|
|
@@ -19,11 +19,11 @@ export declare class Singleton<T = any> {
|
|
|
19
19
|
/**
|
|
20
20
|
* @deprecated please use `getSingletonInstance(id)` instead
|
|
21
21
|
*/
|
|
22
|
-
get(id: string):
|
|
22
|
+
get(id: string): T;
|
|
23
23
|
/**
|
|
24
24
|
* Get singleton instance by id
|
|
25
25
|
*/
|
|
26
|
-
getSingletonInstance(id: string):
|
|
26
|
+
getSingletonInstance(id: string): T;
|
|
27
27
|
createInstance(config: Record<string, any>, clientName: string): T;
|
|
28
28
|
createInstanceAsync(config: Record<string, any>, clientName: string): Promise<T>;
|
|
29
29
|
}
|
|
@@ -37,10 +37,10 @@ class Singleton {
|
|
|
37
37
|
}
|
|
38
38
|
// multi client, use app[name].getSingletonInstance(id)
|
|
39
39
|
if (options.clients) {
|
|
40
|
-
Object.keys(options.clients)
|
|
40
|
+
for (const id of Object.keys(options.clients)) {
|
|
41
41
|
const client = this.createInstance(options.clients[id], id);
|
|
42
42
|
this.clients.set(id, client);
|
|
43
|
-
}
|
|
43
|
+
}
|
|
44
44
|
this.#setClientToApp(this);
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
@@ -60,8 +60,7 @@ class Singleton {
|
|
|
60
60
|
// multi client, use app[name].getInstance(id)
|
|
61
61
|
if (options.clients) {
|
|
62
62
|
await Promise.all(Object.keys(options.clients).map((id) => {
|
|
63
|
-
return this.createInstanceAsync(options.clients[id], id)
|
|
64
|
-
.then(client => this.clients.set(id, client));
|
|
63
|
+
return this.createInstanceAsync(options.clients[id], id).then(client => this.clients.set(id, client));
|
|
65
64
|
}));
|
|
66
65
|
this.#setClientToApp(this);
|
|
67
66
|
return;
|
|
@@ -86,7 +85,7 @@ class Singleton {
|
|
|
86
85
|
}
|
|
87
86
|
createInstance(config, clientName) {
|
|
88
87
|
// async creator only support createInstanceAsync
|
|
89
|
-
(0, node_assert_1.default)(!(0, is_type_of_1.isAsyncFunction)(this.create), `[@eggjs/core/singleton] ${this.name} only support
|
|
88
|
+
(0, node_assert_1.default)(!(0, is_type_of_1.isAsyncFunction)(this.create), `[@eggjs/core/singleton] ${this.name} only support asynchronous creation, please use createInstanceAsync`);
|
|
90
89
|
// options.default will be merge in to options.clients[id]
|
|
91
90
|
config = {
|
|
92
91
|
...this.options.default,
|
|
@@ -100,7 +99,7 @@ class Singleton {
|
|
|
100
99
|
...this.options.default,
|
|
101
100
|
...config,
|
|
102
101
|
};
|
|
103
|
-
return await this.create(config, this.app, clientName);
|
|
102
|
+
return (await this.create(config, this.app, clientName));
|
|
104
103
|
}
|
|
105
104
|
#extendDynamicMethods(client) {
|
|
106
105
|
(0, node_assert_1.default)(!client.createInstance, '[@eggjs/core/singleton] singleton instance should not have createInstance method');
|
|
@@ -122,4 +121,4 @@ class Singleton {
|
|
|
122
121
|
}
|
|
123
122
|
}
|
|
124
123
|
exports.Singleton = Singleton;
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFDakMsMkNBQTZDO0FBZTdDLE1BQWEsU0FBUztJQUNYLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQy9CLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBd0I7SUFDOUIsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFzQjtJQUV0QyxZQUFZLE9BQXlCO1FBQ25DLElBQUEscUJBQU0sRUFDSixPQUFPLENBQUMsSUFBSSxFQUNaLHdFQUF3RSxDQUN6RSxDQUFDO1FBQ0YsSUFBQSxxQkFBTSxFQUNKLE9BQU8sQ0FBQyxHQUFHLEVBQ1gsdUVBQXVFLENBQ3hFLENBQUM7UUFDRixJQUFBLHFCQUFNLEVBQ0osT0FBTyxDQUFDLE1BQU0sRUFDZCwwRUFBMEUsQ0FDM0UsQ0FBQztRQUNGLElBQUEscUJBQU0sRUFDSixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQzlCLDJCQUEyQixPQUFPLENBQUMsSUFBSSwyQkFBMkIsQ0FDbkUsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sSUFBQSw0QkFBZSxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxD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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type Fun = (...args:
|
|
1
|
+
export type Fun = (...args: unknown[]) => unknown;
|
|
2
2
|
declare function getCalleeFromStack(withLine?: boolean, stackIndex?: number): string;
|
|
3
3
|
declare const _default: {
|
|
4
4
|
deprecated(message: string): void;
|
|
@@ -10,7 +10,7 @@ declare const _default: {
|
|
|
10
10
|
paths?: string[];
|
|
11
11
|
}): string;
|
|
12
12
|
methods: string[];
|
|
13
|
-
callFn(fn: Fun, args?:
|
|
13
|
+
callFn(fn: Fun, args?: unknown[], ctx?: unknown): Promise<unknown>;
|
|
14
14
|
getCalleeFromStack: typeof getCalleeFromStack;
|
|
15
15
|
getResolvedFilename(filepath: string, baseDir: string): string;
|
|
16
16
|
};
|
|
@@ -13,8 +13,8 @@ const debug = (0, node_util_1.debuglog)('@eggjs/core/utils');
|
|
|
13
13
|
// Guard against poorly mocked module constructors.
|
|
14
14
|
const Module = typeof module !== 'undefined' && module.constructor.length > 1
|
|
15
15
|
? module.constructor
|
|
16
|
-
/* istanbul ignore next */
|
|
17
|
-
|
|
16
|
+
: /* istanbul ignore next */
|
|
17
|
+
node_module_1.default;
|
|
18
18
|
const extensions = Module._extensions;
|
|
19
19
|
const extensionNames = Object.keys(extensions).concat(['.cjs', '.mjs']);
|
|
20
20
|
debug('Module extensions: %j', extensionNames);
|
|
@@ -80,7 +80,7 @@ exports.default = {
|
|
|
80
80
|
return obj;
|
|
81
81
|
}
|
|
82
82
|
catch (e) {
|
|
83
|
-
if (!e
|
|
83
|
+
if (!(e instanceof Error)) {
|
|
84
84
|
// ts error: test/fixtures/apps/app-ts/app/extend/context.ts(5,17): error TS2339: Property 'url' does not exist on type 'Context'
|
|
85
85
|
console.trace(e);
|
|
86
86
|
throw e;
|
|
@@ -114,4 +114,4 @@ exports.default = {
|
|
|
114
114
|
function prepareObjectStackTrace(_obj, stack) {
|
|
115
115
|
return stack;
|
|
116
116
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5Q0FBcUM7QUFDckMsMERBQTZCO0FBQzdCLHNEQUF5QjtBQUN6QiwrQ0FBd0M7QUFDeEMsOERBQXdDO0FBRXhDLHdDQUEyRDtBQUUzRCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUk1QyxtREFBbUQ7QUFDbkQsTUFBTSxNQUFNLEdBQ1YsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7SUFDNUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXO0lBQ3BCLENBQUMsQ0FBQywwQkFBMEI7UUFDMUIscUJBQWEsQ0FBQztBQUVwQixNQUFNLFVBQVUsR0FBSSxNQUFjLENBQUMsV0FBVyxDQUFDO0FBQy9DLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDeEUsS0FBSyxDQUFDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRS9DLFNBQVMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxVQUFtQjtJQUNqRSxVQUFVLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNwQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7SUFFckMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBQ2xELEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBRTFCLG9CQUFvQjtJQUVwQixNQUFNLEdB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
|
|
@@ -6,7 +6,7 @@ export interface SequencifyTask {
|
|
|
6
6
|
dependencies: string[];
|
|
7
7
|
optionalDependencies: string[];
|
|
8
8
|
}
|
|
9
|
-
export
|
|
9
|
+
export declare function sequencify(tasks: Record<string, SequencifyTask>, names: string[]): {
|
|
10
10
|
sequence: string[];
|
|
11
11
|
missingTasks: string[];
|
|
12
12
|
recursiveDependencies: string[];
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.sequencify = sequencify;
|
|
4
4
|
const node_util_1 = require("node:util");
|
|
5
5
|
const debug = (0, node_util_1.debuglog)('@eggjs/core/utils/sequencify');
|
|
6
|
-
function sequence(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
function sequence(
|
|
7
|
+
// oxlint-disable-next-line max-params
|
|
8
|
+
tasks, names, result, missing, recursive, nest, optional, parent) {
|
|
9
|
+
for (const name of names) {
|
|
10
|
+
if (result.requires[name]) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
10
13
|
const node = tasks[name];
|
|
11
14
|
if (!node) {
|
|
12
|
-
if (optional === true)
|
|
13
|
-
|
|
15
|
+
if (optional === true) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
14
18
|
missing.push(name);
|
|
15
19
|
}
|
|
16
20
|
else if (nest.includes(name)) {
|
|
@@ -18,12 +22,13 @@ function sequence(tasks, names, result, missing, recursive, nest, optional, pare
|
|
|
18
22
|
recursive.push(...nest.slice(0));
|
|
19
23
|
nest.pop();
|
|
20
24
|
}
|
|
21
|
-
else if (node.dependencies.length
|
|
25
|
+
else if (node.dependencies.length > 0 ||
|
|
26
|
+
node.optionalDependencies.length > 0) {
|
|
22
27
|
nest.push(name);
|
|
23
|
-
if (node.dependencies.length) {
|
|
28
|
+
if (node.dependencies.length > 0) {
|
|
24
29
|
sequence(tasks, node.dependencies, result, missing, recursive, nest, optional, name);
|
|
25
30
|
}
|
|
26
|
-
if (node.optionalDependencies.length) {
|
|
31
|
+
if (node.optionalDependencies.length > 0) {
|
|
27
32
|
sequence(tasks, node.optionalDependencies, result, missing, recursive, nest, true, name);
|
|
28
33
|
}
|
|
29
34
|
nest.pop();
|
|
@@ -35,7 +40,7 @@ function sequence(tasks, names, result, missing, recursive, nest, optional, pare
|
|
|
35
40
|
if (!result.sequence.includes(name)) {
|
|
36
41
|
result.sequence.push(name);
|
|
37
42
|
}
|
|
38
|
-
}
|
|
43
|
+
}
|
|
39
44
|
}
|
|
40
45
|
// tasks: object with keys as task names
|
|
41
46
|
// names: array of task names
|
|
@@ -47,7 +52,7 @@ function sequencify(tasks, names) {
|
|
|
47
52
|
const missing = []; // missing tasks
|
|
48
53
|
const recursive = []; // recursive task dependencies
|
|
49
54
|
sequence(tasks, names, result, missing, recursive, [], false, 'app');
|
|
50
|
-
if (missing.length || recursive.length) {
|
|
55
|
+
if (missing.length > 0 || recursive.length > 0) {
|
|
51
56
|
result.sequence = []; // results are incomplete at best, completely wrong at worst, remove them to avoid confusion
|
|
52
57
|
}
|
|
53
58
|
return {
|
|
@@ -56,4 +61,4 @@ function sequencify(tasks, names) {
|
|
|
56
61
|
recursiveDependencies: recursive,
|
|
57
62
|
};
|
|
58
63
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zZXF1ZW5jaWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0ZBLGdDQXNCQztBQXhHRCx5Q0FBcUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLDhCQUE4QixDQUFDLENBQUM7QUFZdkQsU0FBUyxRQUFRO0FBQ2Ysc0NBQXNDO0FBQ3RDLEtBQXFDLEVBQ3JDLEtBQWUsRUFDZixNQUF3QixFQUN4QixPQUFpQixFQUNqQixTQUFtQixFQUNuQixJQUFjLEVBQ2QsUUFBaUIsRUFDakIsTUFBYztJQUVkLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsU0FBUztRQUNYLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLFNBQVM7WUFDWCxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7YUFBTSxJQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3BDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLFFBQVEsQ0FDTixLQUFLLEVBQ0wsSUFBSSxDQUFDLFlBQVksRUFDakIsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixJQUFJLENBQ0wsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLFFBQVEsQ0FDTixLQUFLLEVBQ0wsSUFBSSxDQUFDLG9CQUFvQixFQUN6QixNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksQ0FDTCxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM3QixLQUFLLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCx3Q0FBd0M7QUFDeEMsNkJBQTZCO0FBQzdCLFNBQWdCLFVBQVUsQ0FDeEIsS0FBcUMsRUFDckMsS0FBZTtJQUVmLE1BQU0sTUFBTSxHQUFxQjtRQUMvQixRQUFRLEVBQUUsRUFBRTtRQUNaLFFBQVEsRUFBRSxFQUFFO0tBQ2IsQ0FBQyxDQUFDLHFCQUFxQjtJQUN4QixNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7SUFDOUMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDLENBQUMsOEJBQThCO0lBRTlELFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFckUsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsNEZBQTRGO0lBQ3BILENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxZQUFZLEVBQUUsT0FBTztRQUNyQixxQkFBcUIsRUFBRSxTQUFTO0tBQ2pDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -15,7 +15,6 @@ class Timing {
|
|
|
15
15
|
#list;
|
|
16
16
|
constructor() {
|
|
17
17
|
this.#enable = true;
|
|
18
|
-
this.#startTime = null;
|
|
19
18
|
this.#map = new Map();
|
|
20
19
|
this.#list = [];
|
|
21
20
|
this.init();
|
|
@@ -24,7 +23,8 @@ class Timing {
|
|
|
24
23
|
// process start time
|
|
25
24
|
this.start('Process Start', Date.now() - Math.floor(process.uptime() * 1000));
|
|
26
25
|
this.end('Process Start');
|
|
27
|
-
if ('scriptStartTime' in process &&
|
|
26
|
+
if ('scriptStartTime' in process &&
|
|
27
|
+
typeof process.scriptStartTime === 'number') {
|
|
28
28
|
// js script start execute time
|
|
29
29
|
this.start('Script Start', process.scriptStartTime);
|
|
30
30
|
this.end('Script Start');
|
|
@@ -37,7 +37,7 @@ class Timing {
|
|
|
37
37
|
this.end(name);
|
|
38
38
|
}
|
|
39
39
|
start = start || Date.now();
|
|
40
|
-
if (this.#startTime
|
|
40
|
+
if (!this.#startTime) {
|
|
41
41
|
this.#startTime = start;
|
|
42
42
|
}
|
|
43
43
|
const item = {
|
|
@@ -54,8 +54,8 @@ class Timing {
|
|
|
54
54
|
end(name) {
|
|
55
55
|
if (!name || !this.#enable)
|
|
56
56
|
return;
|
|
57
|
-
(0, node_assert_1.default)(this.#map.has(name), `should run timing.start('${name}') first`);
|
|
58
57
|
const item = this.#map.get(name);
|
|
58
|
+
(0, node_assert_1.default)(item, `should run timing.start('${name}') first`);
|
|
59
59
|
item.end = Date.now();
|
|
60
60
|
item.duration = item.end - item.start;
|
|
61
61
|
debug('end %j', item);
|
|
@@ -76,14 +76,16 @@ class Timing {
|
|
|
76
76
|
}
|
|
77
77
|
itemToString(timelineEnd, item, times) {
|
|
78
78
|
const isEnd = typeof item.duration === 'number';
|
|
79
|
-
const duration = isEnd
|
|
79
|
+
const duration = isEnd
|
|
80
|
+
? item.duration
|
|
81
|
+
: timelineEnd - item.start;
|
|
80
82
|
const offset = item.start - this.#startTime;
|
|
81
83
|
const status = `${duration}ms${isEnd ? '' : ' NOT_END'}`;
|
|
82
84
|
const timespan = Math.floor(Number((offset * times).toFixed(6)));
|
|
83
85
|
let timeline = Math.floor(Number((duration * times).toFixed(6)));
|
|
84
86
|
timeline = timeline > 0 ? timeline : 1; // make sure there is at least one unit
|
|
85
87
|
const message = `#${item.index} ${item.name}`;
|
|
86
|
-
return ' '.repeat(timespan) + '▇'.repeat(timeline) + ` [${status}] - ${message}
|
|
88
|
+
return (' '.repeat(timespan) + '▇'.repeat(timeline) + ` [${status}] - ${message}`);
|
|
87
89
|
}
|
|
88
90
|
toString(prefix = 'egg start timeline:', width = 50) {
|
|
89
91
|
const timelineEnd = Date.now();
|
|
@@ -93,8 +95,12 @@ class Timing {
|
|
|
93
95
|
times = width / timelineDuration;
|
|
94
96
|
}
|
|
95
97
|
// follow https://github.com/node-modules/time-profile/blob/master/lib/profiler.js#L88
|
|
96
|
-
return prefix +
|
|
98
|
+
return (prefix +
|
|
99
|
+
node_os_1.EOL +
|
|
100
|
+
this.#list
|
|
101
|
+
.map(item => this.itemToString(timelineEnd, item, times))
|
|
102
|
+
.join(node_os_1.EOL));
|
|
97
103
|
}
|
|
98
104
|
}
|
|
99
105
|
exports.Timing = Timing;
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3RpbWluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxQ0FBOEI7QUFDOUIseUNBQXFDO0FBQ3JDLDhEQUFpQztBQUVqQyxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsMEJBQTBCLENBQUMsQ0FBQztBQVduRCxNQUFhLE1BQU07SUFDakIsT0FBTyxDQUFVO0lBQ2pCLFVBQVUsQ0FBUztJQUNuQixJQUFJLENBQTBCO0lBQzlCLEtBQUssQ0FBZTtJQUNwQjtRQUNFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSTtRQUNGLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUNSLGVBQWUsRUFDZixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQ2pELENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTFCLElBQ0UsaUJBQWlCLElBQUksT0FBTztZQUM1QixPQUFPLE9BQU8sQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUMzQyxDQUFDO1lBQ0QsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWEsRUFBRSxLQUFjO1FBQ2pDLElBQUksQ0FB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
|
package/dist/esm/egg.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { Application as KoaApplication, Context as KoaContext, Request as KoaRequest, Response as KoaResponse } from '@eggjs/koa';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { RegisterOptions, ResourcesController, EggRouter as Router } from '@eggjs/router';
|
|
1
|
+
import { Application as KoaApplication, Context as KoaContext, Request as KoaRequest, Response as KoaResponse, type MiddlewareFunc as KoaMiddlewareFunc, type Next } from '@eggjs/koa';
|
|
2
|
+
import { EggConsoleLogger, type Logger } from 'egg-logger';
|
|
3
|
+
import { EggRouter as Router, type RegisterOptions, type ResourcesController } from '@eggjs/router';
|
|
5
4
|
import type { ReadyFunctionArg } from 'get-ready';
|
|
6
5
|
import { BaseContextClass } from './base_context_class.js';
|
|
7
6
|
import { Timing } from './utils/timing.js';
|
|
8
|
-
import type { Fun } from './utils/index.js';
|
|
9
7
|
import { Lifecycle } from './lifecycle.js';
|
|
10
8
|
import { EggLoader } from './loader/egg_loader.js';
|
|
11
|
-
import {
|
|
9
|
+
import { type Fun } from './utils/index.js';
|
|
10
|
+
import type { EggAppConfig } from './types.js';
|
|
12
11
|
import { type SingletonCreateMethod } from './singleton.js';
|
|
13
12
|
export declare const EGG_LOADER: unique symbol;
|
|
14
13
|
export interface EggCoreOptions {
|
|
@@ -19,8 +18,8 @@ export interface EggCoreOptions {
|
|
|
19
18
|
env?: string;
|
|
20
19
|
}
|
|
21
20
|
export type EggCoreInitOptions = Partial<EggCoreOptions>;
|
|
22
|
-
export { KoaRequest, KoaResponse, KoaContext, KoaApplication, Router
|
|
23
|
-
export type { Next, KoaMiddlewareFunc
|
|
21
|
+
export { KoaRequest, KoaResponse, KoaContext, KoaApplication, Router };
|
|
22
|
+
export type { Next, KoaMiddlewareFunc };
|
|
24
23
|
export declare class Request extends KoaRequest {
|
|
25
24
|
app: EggCore;
|
|
26
25
|
response: Response;
|
|
@@ -59,7 +58,7 @@ export declare class Context extends KoaContext {
|
|
|
59
58
|
*/
|
|
60
59
|
routerPath?: string | RegExp;
|
|
61
60
|
}
|
|
62
|
-
export type MiddlewareFunc<T = Context> = KoaMiddlewareFunc<T>;
|
|
61
|
+
export type MiddlewareFunc<T extends KoaContext = Context> = KoaMiddlewareFunc<T>;
|
|
63
62
|
export declare class EggCore extends KoaApplication {
|
|
64
63
|
#private;
|
|
65
64
|
options: EggCoreOptions;
|
|
@@ -76,12 +75,12 @@ export declare class EggCore extends KoaApplication {
|
|
|
76
75
|
/** auto inject on loadController() */
|
|
77
76
|
readonly controller: Record<string, any>;
|
|
78
77
|
/** auto inject on loadMiddleware() */
|
|
79
|
-
readonly middlewares: Record<string, (opt:
|
|
78
|
+
readonly middlewares: Record<string, (opt: unknown, app: EggCore) => MiddlewareFunc>;
|
|
80
79
|
/**
|
|
81
80
|
* @class
|
|
82
81
|
* @param {Object} options - options
|
|
83
|
-
* @param {String} [options.baseDir
|
|
84
|
-
* @param {String} [options.type
|
|
82
|
+
* @param {String} [options.baseDir] - the directory of application
|
|
83
|
+
* @param {String} [options.type] - whether it's running in app worker or agent worker
|
|
85
84
|
* @param {Object} [options.plugins] - custom plugins
|
|
86
85
|
* @since 1.0.0
|
|
87
86
|
*/
|
|
@@ -98,7 +97,7 @@ export declare class EggCore extends KoaApplication {
|
|
|
98
97
|
* override koa's app.use, support generator function
|
|
99
98
|
* @since 1.0.0
|
|
100
99
|
*/
|
|
101
|
-
use(fn: MiddlewareFunc): this;
|
|
100
|
+
use<T extends KoaContext = Context>(fn: MiddlewareFunc<T>): this;
|
|
102
101
|
/**
|
|
103
102
|
* Whether `application` or `agent`
|
|
104
103
|
* @member {String}
|
|
@@ -177,12 +176,12 @@ export declare class EggCore extends KoaApplication {
|
|
|
177
176
|
* @param {object} opts -
|
|
178
177
|
* - {Number} [timeout=10000] - emit `ready_timeout` when it doesn't finish but reach the timeout
|
|
179
178
|
* - {Boolean} [isWeakDep=false] - whether it's a weak dependency
|
|
180
|
-
* @
|
|
179
|
+
* @returns {Function} - a callback
|
|
181
180
|
* @example
|
|
182
181
|
* const done = app.readyCallback('mysql');
|
|
183
182
|
* mysql.ready(done);
|
|
184
183
|
*/
|
|
185
|
-
readyCallback(name: string, opts: object): (...args:
|
|
184
|
+
readyCallback(name: string, opts: object): (...args: unknown[]) => void;
|
|
186
185
|
/**
|
|
187
186
|
* Register a function that will be called when app close.
|
|
188
187
|
*
|
|
@@ -204,7 +203,7 @@ export declare class EggCore extends KoaApplication {
|
|
|
204
203
|
*
|
|
205
204
|
* If error is thrown when it's closing, the promise will reject.
|
|
206
205
|
* It will also reject after following call.
|
|
207
|
-
* @
|
|
206
|
+
* @returns {Promise} promise
|
|
208
207
|
* @since 1.0.0
|
|
209
208
|
*/
|
|
210
209
|
close(): Promise<void>;
|
|
@@ -218,9 +217,9 @@ export declare class EggCore extends KoaApplication {
|
|
|
218
217
|
* Alias to {@link Router#url}
|
|
219
218
|
* @param {String} name - Router name
|
|
220
219
|
* @param {Object} params - more parameters
|
|
221
|
-
* @
|
|
220
|
+
* @returns {String} url
|
|
222
221
|
*/
|
|
223
|
-
url(name: string, params?:
|
|
222
|
+
url(name: string, params?: Parameters<Router['url']>[1]): string;
|
|
224
223
|
head(path: string | RegExp | (string | RegExp)[], ...middlewares: (MiddlewareFunc | string)[]): EggCore;
|
|
225
224
|
head(name: string, path: string | RegExp | (string | RegExp)[], ...middlewares: (MiddlewareFunc | string)[]): EggCore;
|
|
226
225
|
get(path: string | RegExp | (string | RegExp)[], ...middlewares: (MiddlewareFunc | string)[]): EggCore;
|