@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[]>;
|
|
@@ -3,7 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import { debuglog } from 'node:util';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import globby from 'globby';
|
|
6
|
-
import { isClass, isGeneratorFunction, isAsyncFunction, isPrimitive } from 'is-type-of';
|
|
6
|
+
import { isClass, isGeneratorFunction, isAsyncFunction, isPrimitive, } from 'is-type-of';
|
|
7
7
|
import { isSupportTypeScript } from '@eggjs/utils';
|
|
8
8
|
import utils from '../utils/index.js';
|
|
9
9
|
const debug = debuglog('@eggjs/core/file_loader');
|
|
@@ -59,7 +59,7 @@ export class FileLoader {
|
|
|
59
59
|
/**
|
|
60
60
|
* attach items to target object. Mapping the directory to properties.
|
|
61
61
|
* `app/controller/group/repository.js` => `target.group.repository`
|
|
62
|
-
* @
|
|
62
|
+
* @returns {Object} target
|
|
63
63
|
* @since 1.0.0
|
|
64
64
|
*/
|
|
65
65
|
async load() {
|
|
@@ -69,13 +69,13 @@ export class FileLoader {
|
|
|
69
69
|
debug('loading item: %o', item);
|
|
70
70
|
// item { properties: [ 'a', 'b', 'c'], exports }
|
|
71
71
|
// => target.a.b.c = exports
|
|
72
|
+
// oxlint-disable-next-line unicorn/no-array-reduce
|
|
72
73
|
item.properties.reduce((target, property, index) => {
|
|
73
74
|
let obj;
|
|
74
75
|
const properties = item.properties.slice(0, index + 1).join('.');
|
|
75
76
|
if (index === item.properties.length - 1) {
|
|
76
|
-
if (property in target) {
|
|
77
|
-
|
|
78
|
-
throw new Error(`can't overwrite property '${properties}' from ${target[property][FULLPATH]} by ${item.fullpath}`);
|
|
77
|
+
if (property in target && !this.options.override) {
|
|
78
|
+
throw new Error(`can't overwrite property '${properties}' from ${target[property][FULLPATH]} by ${item.fullpath}`);
|
|
79
79
|
}
|
|
80
80
|
obj = item.exports;
|
|
81
81
|
if (obj && !isPrimitive(obj)) {
|
|
@@ -116,19 +116,19 @@ export class FileLoader {
|
|
|
116
116
|
* `Properties` is an array that contains the directory of a filepath.
|
|
117
117
|
*
|
|
118
118
|
* `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.
|
|
119
|
-
* @
|
|
119
|
+
* @returns {Array} items
|
|
120
120
|
* @since 1.0.0
|
|
121
121
|
*/
|
|
122
122
|
async parse() {
|
|
123
123
|
let files = this.options.match;
|
|
124
|
-
if (
|
|
124
|
+
if (files) {
|
|
125
|
+
files = Array.isArray(files) ? files : [files];
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
125
128
|
files = isSupportTypeScript()
|
|
126
129
|
? ['**/*.(js|ts)', '!**/*.d.ts']
|
|
127
130
|
: ['**/*.js'];
|
|
128
131
|
}
|
|
129
|
-
else {
|
|
130
|
-
files = Array.isArray(files) ? files : [files];
|
|
131
|
-
}
|
|
132
132
|
let ignore = this.options.ignore;
|
|
133
133
|
if (ignore) {
|
|
134
134
|
ignore = Array.isArray(ignore) ? ignore : [ignore];
|
|
@@ -164,7 +164,9 @@ export class FileLoader {
|
|
|
164
164
|
// get exports from the file
|
|
165
165
|
const exports = await getExports(fullpath, this.options, pathName);
|
|
166
166
|
// ignore exports when it's null or false returned by filter function
|
|
167
|
-
if (exports
|
|
167
|
+
if (exports === null ||
|
|
168
|
+
exports === undefined ||
|
|
169
|
+
(filter && filter(exports) === false)) {
|
|
168
170
|
continue;
|
|
169
171
|
}
|
|
170
172
|
// set properties of class
|
|
@@ -218,7 +220,7 @@ async function getExports(fullpath, options, pathName) {
|
|
|
218
220
|
// }
|
|
219
221
|
if (options.call && typeof exports === 'function') {
|
|
220
222
|
exports = exports(options.inject);
|
|
221
|
-
if (exports
|
|
223
|
+
if (exports !== null && exports !== undefined) {
|
|
222
224
|
return exports;
|
|
223
225
|
}
|
|
224
226
|
}
|
|
@@ -226,7 +228,7 @@ async function getExports(fullpath, options, pathName) {
|
|
|
226
228
|
return exports;
|
|
227
229
|
}
|
|
228
230
|
function defaultCamelize(filepath, caseStyle) {
|
|
229
|
-
const properties = filepath.
|
|
231
|
+
const properties = filepath.slice(0, filepath.lastIndexOf('.')).split('/');
|
|
230
232
|
return properties.map(property => {
|
|
231
233
|
if (!/^[a-z][a-z0-9_-]*$/i.test(property)) {
|
|
232
234
|
throw new Error(`${property} is not match 'a-z0-9_-' in ${filepath}`);
|
|
@@ -237,19 +239,15 @@ function defaultCamelize(filepath, caseStyle) {
|
|
|
237
239
|
// FooBar.js > FooBar
|
|
238
240
|
// FooBar.js > FooBar
|
|
239
241
|
// FooBar.js > fooBar (if lowercaseFirst is true)
|
|
240
|
-
property = property.
|
|
242
|
+
property = property.replaceAll(/[_-][a-z]/gi, s => s.slice(1).toUpperCase());
|
|
241
243
|
let first = property[0];
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
first = first.toUpperCase();
|
|
248
|
-
break;
|
|
249
|
-
case 'camel':
|
|
250
|
-
default:
|
|
244
|
+
if (caseStyle === CaseStyle.lower) {
|
|
245
|
+
first = first.toLowerCase();
|
|
246
|
+
}
|
|
247
|
+
else if (caseStyle === CaseStyle.upper) {
|
|
248
|
+
first = first.toUpperCase();
|
|
251
249
|
}
|
|
252
|
-
return first + property.
|
|
250
|
+
return first + property.slice(1);
|
|
253
251
|
});
|
|
254
252
|
}
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9hZGVyL2ZpbGVfbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFDTCxPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixXQUFXLEdBQ1osTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5ELE9BQU8sS0FBbUIsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBRXpELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZiw0QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQXlDRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxLQUFLLE9BQU87UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVRLE9BQU8sQ0FDaUM7SUFFakQ7Ozs7Ozs7Ozs7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
|
package/dist/esm/singleton.d.ts
CHANGED
|
@@ -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
|
}
|
package/dist/esm/singleton.js
CHANGED
|
@@ -31,10 +31,10 @@ export class Singleton {
|
|
|
31
31
|
}
|
|
32
32
|
// multi client, use app[name].getSingletonInstance(id)
|
|
33
33
|
if (options.clients) {
|
|
34
|
-
Object.keys(options.clients)
|
|
34
|
+
for (const id of Object.keys(options.clients)) {
|
|
35
35
|
const client = this.createInstance(options.clients[id], id);
|
|
36
36
|
this.clients.set(id, client);
|
|
37
|
-
}
|
|
37
|
+
}
|
|
38
38
|
this.#setClientToApp(this);
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
@@ -54,8 +54,7 @@ export class Singleton {
|
|
|
54
54
|
// multi client, use app[name].getInstance(id)
|
|
55
55
|
if (options.clients) {
|
|
56
56
|
await Promise.all(Object.keys(options.clients).map((id) => {
|
|
57
|
-
return this.createInstanceAsync(options.clients[id], id)
|
|
58
|
-
.then(client => this.clients.set(id, client));
|
|
57
|
+
return this.createInstanceAsync(options.clients[id], id).then(client => this.clients.set(id, client));
|
|
59
58
|
}));
|
|
60
59
|
this.#setClientToApp(this);
|
|
61
60
|
return;
|
|
@@ -80,7 +79,7 @@ export class Singleton {
|
|
|
80
79
|
}
|
|
81
80
|
createInstance(config, clientName) {
|
|
82
81
|
// async creator only support createInstanceAsync
|
|
83
|
-
assert(!isAsyncFunction(this.create), `[@eggjs/core/singleton] ${this.name} only support
|
|
82
|
+
assert(!isAsyncFunction(this.create), `[@eggjs/core/singleton] ${this.name} only support asynchronous creation, please use createInstanceAsync`);
|
|
84
83
|
// options.default will be merge in to options.clients[id]
|
|
85
84
|
config = {
|
|
86
85
|
...this.options.default,
|
|
@@ -94,7 +93,7 @@ export class Singleton {
|
|
|
94
93
|
...this.options.default,
|
|
95
94
|
...config,
|
|
96
95
|
};
|
|
97
|
-
return await this.create(config, this.app, clientName);
|
|
96
|
+
return (await this.create(config, this.app, clientName));
|
|
98
97
|
}
|
|
99
98
|
#extendDynamicMethods(client) {
|
|
100
99
|
assert(!client.createInstance, '[@eggjs/core/singleton] singleton instance should not have createInstance method');
|
|
@@ -115,4 +114,4 @@ export class Singleton {
|
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQWU3QyxNQUFNLE9BQU8sU0FBUztJQUNYLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQy9CLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBd0I7SUFDOUIsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFzQjtJQUV0QyxZQUFZLE9BQXlCO1FBQ25DLE1BQU0sQ0FDSixPQUFPLENBQUMsSUFBSSxFQUNaLHdFQUF3RSxDQUN6RSxDQUFDO1FBQ0YsTUFBTSxDQUNKLE9BQU8sQ0FBQyxHQUFHLEVBQ1gsdUVBQXVFLENBQ3hFLENBQUM7UUFDRixNQUFNLENBQ0osT0FBTyxDQUFDLE1BQU0sRUFDZCwwRUFBMEUsQ0FDM0UsQ0FBQztRQUNGLE1BQU0sQ0FDSixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQzlCLDJCQUEyQixPQUFPLENBQUMsSUFBSSwyQkFBMkIsQ0FDbkUsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxD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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
|
};
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -8,8 +8,8 @@ const debug = debuglog('@eggjs/core/utils');
|
|
|
8
8
|
// Guard against poorly mocked module constructors.
|
|
9
9
|
const Module = typeof module !== 'undefined' && module.constructor.length > 1
|
|
10
10
|
? module.constructor
|
|
11
|
-
/* istanbul ignore next */
|
|
12
|
-
|
|
11
|
+
: /* istanbul ignore next */
|
|
12
|
+
BuiltinModule;
|
|
13
13
|
const extensions = Module._extensions;
|
|
14
14
|
const extensionNames = Object.keys(extensions).concat(['.cjs', '.mjs']);
|
|
15
15
|
debug('Module extensions: %j', extensionNames);
|
|
@@ -75,7 +75,7 @@ export default {
|
|
|
75
75
|
return obj;
|
|
76
76
|
}
|
|
77
77
|
catch (e) {
|
|
78
|
-
if (!e
|
|
78
|
+
if (!(e instanceof Error)) {
|
|
79
79
|
// ts error: test/fixtures/apps/app-ts/app/extend/context.ts(5,17): error TS2339: Property 'url' does not exist on type 'Context'
|
|
80
80
|
console.trace(e);
|
|
81
81
|
throw e;
|
|
@@ -109,4 +109,4 @@ export default {
|
|
|
109
109
|
function prepareObjectStackTrace(_obj, stack) {
|
|
110
110
|
return stack;
|
|
111
111
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLGFBQWEsTUFBTSxhQUFhLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFJNUMsbURBQW1EO0FBQ25ELE1BQU0sTUFBTSxHQUNWLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO0lBQzVELENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVztJQUNwQixDQUFDLENBQUMsMEJBQTBCO1FBQzFCLGFBQWEsQ0FBQztBQUVwQixNQUFNLFVBQVUsR0FBSSxNQUFjLENBQUMsV0FBVyxDQUFDO0FBQy9DLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDeEUsS0FBSyxDQUFDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRS9DLFNBQVMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxVQUFtQjtJQUNqRSxVQUFVLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNwQyxN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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,13 +1,17 @@
|
|
|
1
1
|
import { debuglog } from 'node:util';
|
|
2
2
|
const debug = debuglog('@eggjs/core/utils/sequencify');
|
|
3
|
-
function sequence(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
function sequence(
|
|
4
|
+
// oxlint-disable-next-line max-params
|
|
5
|
+
tasks, names, result, missing, recursive, nest, optional, parent) {
|
|
6
|
+
for (const name of names) {
|
|
7
|
+
if (result.requires[name]) {
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
7
10
|
const node = tasks[name];
|
|
8
11
|
if (!node) {
|
|
9
|
-
if (optional === true)
|
|
10
|
-
|
|
12
|
+
if (optional === true) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
11
15
|
missing.push(name);
|
|
12
16
|
}
|
|
13
17
|
else if (nest.includes(name)) {
|
|
@@ -15,12 +19,13 @@ function sequence(tasks, names, result, missing, recursive, nest, optional, pare
|
|
|
15
19
|
recursive.push(...nest.slice(0));
|
|
16
20
|
nest.pop();
|
|
17
21
|
}
|
|
18
|
-
else if (node.dependencies.length
|
|
22
|
+
else if (node.dependencies.length > 0 ||
|
|
23
|
+
node.optionalDependencies.length > 0) {
|
|
19
24
|
nest.push(name);
|
|
20
|
-
if (node.dependencies.length) {
|
|
25
|
+
if (node.dependencies.length > 0) {
|
|
21
26
|
sequence(tasks, node.dependencies, result, missing, recursive, nest, optional, name);
|
|
22
27
|
}
|
|
23
|
-
if (node.optionalDependencies.length) {
|
|
28
|
+
if (node.optionalDependencies.length > 0) {
|
|
24
29
|
sequence(tasks, node.optionalDependencies, result, missing, recursive, nest, true, name);
|
|
25
30
|
}
|
|
26
31
|
nest.pop();
|
|
@@ -32,11 +37,11 @@ function sequence(tasks, names, result, missing, recursive, nest, optional, pare
|
|
|
32
37
|
if (!result.sequence.includes(name)) {
|
|
33
38
|
result.sequence.push(name);
|
|
34
39
|
}
|
|
35
|
-
}
|
|
40
|
+
}
|
|
36
41
|
}
|
|
37
42
|
// tasks: object with keys as task names
|
|
38
43
|
// names: array of task names
|
|
39
|
-
export
|
|
44
|
+
export function sequencify(tasks, names) {
|
|
40
45
|
const result = {
|
|
41
46
|
sequence: [],
|
|
42
47
|
requires: {},
|
|
@@ -44,7 +49,7 @@ export default function sequencify(tasks, names) {
|
|
|
44
49
|
const missing = []; // missing tasks
|
|
45
50
|
const recursive = []; // recursive task dependencies
|
|
46
51
|
sequence(tasks, names, result, missing, recursive, [], false, 'app');
|
|
47
|
-
if (missing.length || recursive.length) {
|
|
52
|
+
if (missing.length > 0 || recursive.length > 0) {
|
|
48
53
|
result.sequence = []; // results are incomplete at best, completely wrong at worst, remove them to avoid confusion
|
|
49
54
|
}
|
|
50
55
|
return {
|
|
@@ -53,4 +58,4 @@ export default function sequencify(tasks, names) {
|
|
|
53
58
|
recursiveDependencies: recursive,
|
|
54
59
|
};
|
|
55
60
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zZXF1ZW5jaWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDhCQUE4QixDQUFDLENBQUM7QUFZdkQsU0FBUyxRQUFRO0FBQ2Ysc0NBQXNDO0FBQ3RDLEtBQXFDLEVBQ3JDLEtBQWUsRUFDZixNQUF3QixFQUN4QixPQUFpQixFQUNqQixTQUFtQixFQUNuQixJQUFjLEVBQ2QsUUFBaUIsRUFDakIsTUFBYztJQUVkLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsU0FBUztRQUNYLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLFNBQVM7WUFDWCxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7YUFBTSxJQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3BDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLFFBQVEsQ0FDTixLQUFLLEVBQ0wsSUFBSSxDQUFDLFlBQVksRUFDakIsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixJQUFJLENBQ0wsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLFFBQVEsQ0FDTixLQUFLLEVBQ0wsSUFBSSxDQUFDLG9CQUFvQixFQUN6QixNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksQ0FDTCxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM3QixLQUFLLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCx3Q0FBd0M7QUFDeEMsNkJBQTZCO0FBQzdCLE1BQU0sVUFBVSxVQUFVLENBQ3hCLEtBQXFDLEVBQ3JDLEtBQWU7SUFFZixNQUFNLE1BQU0sR0FBcUI7UUFDL0IsUUFBUSxFQUFFLEVBQUU7UUFDWixRQUFRLEVBQUUsRUFBRTtLQUNiLENBQUMsQ0FBQyxxQkFBcUI7SUFDeEIsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO0lBQzlDLE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQyxDQUFDLDhCQUE4QjtJQUU5RCxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXJFLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDRGQUE0RjtJQUNwSCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0QsWUFBWSxFQUFFLE9BQU87UUFDckIscUJBQXFCLEVBQUUsU0FBUztLQUNqQyxDQUFDO0FBQ0osQ0FBQyJ9
|
package/dist/esm/utils/timing.js
CHANGED
|
@@ -9,7 +9,6 @@ export class Timing {
|
|
|
9
9
|
#list;
|
|
10
10
|
constructor() {
|
|
11
11
|
this.#enable = true;
|
|
12
|
-
this.#startTime = null;
|
|
13
12
|
this.#map = new Map();
|
|
14
13
|
this.#list = [];
|
|
15
14
|
this.init();
|
|
@@ -18,7 +17,8 @@ export class Timing {
|
|
|
18
17
|
// process start time
|
|
19
18
|
this.start('Process Start', Date.now() - Math.floor(process.uptime() * 1000));
|
|
20
19
|
this.end('Process Start');
|
|
21
|
-
if ('scriptStartTime' in process &&
|
|
20
|
+
if ('scriptStartTime' in process &&
|
|
21
|
+
typeof process.scriptStartTime === 'number') {
|
|
22
22
|
// js script start execute time
|
|
23
23
|
this.start('Script Start', process.scriptStartTime);
|
|
24
24
|
this.end('Script Start');
|
|
@@ -31,7 +31,7 @@ export class Timing {
|
|
|
31
31
|
this.end(name);
|
|
32
32
|
}
|
|
33
33
|
start = start || Date.now();
|
|
34
|
-
if (this.#startTime
|
|
34
|
+
if (!this.#startTime) {
|
|
35
35
|
this.#startTime = start;
|
|
36
36
|
}
|
|
37
37
|
const item = {
|
|
@@ -48,8 +48,8 @@ export class Timing {
|
|
|
48
48
|
end(name) {
|
|
49
49
|
if (!name || !this.#enable)
|
|
50
50
|
return;
|
|
51
|
-
assert(this.#map.has(name), `should run timing.start('${name}') first`);
|
|
52
51
|
const item = this.#map.get(name);
|
|
52
|
+
assert(item, `should run timing.start('${name}') first`);
|
|
53
53
|
item.end = Date.now();
|
|
54
54
|
item.duration = item.end - item.start;
|
|
55
55
|
debug('end %j', item);
|
|
@@ -70,14 +70,16 @@ export class Timing {
|
|
|
70
70
|
}
|
|
71
71
|
itemToString(timelineEnd, item, times) {
|
|
72
72
|
const isEnd = typeof item.duration === 'number';
|
|
73
|
-
const duration = isEnd
|
|
73
|
+
const duration = isEnd
|
|
74
|
+
? item.duration
|
|
75
|
+
: timelineEnd - item.start;
|
|
74
76
|
const offset = item.start - this.#startTime;
|
|
75
77
|
const status = `${duration}ms${isEnd ? '' : ' NOT_END'}`;
|
|
76
78
|
const timespan = Math.floor(Number((offset * times).toFixed(6)));
|
|
77
79
|
let timeline = Math.floor(Number((duration * times).toFixed(6)));
|
|
78
80
|
timeline = timeline > 0 ? timeline : 1; // make sure there is at least one unit
|
|
79
81
|
const message = `#${item.index} ${item.name}`;
|
|
80
|
-
return ' '.repeat(timespan) + '▇'.repeat(timeline) + ` [${status}] - ${message}
|
|
82
|
+
return (' '.repeat(timespan) + '▇'.repeat(timeline) + ` [${status}] - ${message}`);
|
|
81
83
|
}
|
|
82
84
|
toString(prefix = 'egg start timeline:', width = 50) {
|
|
83
85
|
const timelineEnd = Date.now();
|
|
@@ -87,7 +89,11 @@ export class Timing {
|
|
|
87
89
|
times = width / timelineDuration;
|
|
88
90
|
}
|
|
89
91
|
// follow https://github.com/node-modules/time-profile/blob/master/lib/profiler.js#L88
|
|
90
|
-
return prefix +
|
|
92
|
+
return (prefix +
|
|
93
|
+
EOL +
|
|
94
|
+
this.#list
|
|
95
|
+
.map(item => this.itemToString(timelineEnd, item, times))
|
|
96
|
+
.join(EOL));
|
|
91
97
|
}
|
|
92
98
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3RpbWluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBV25ELE1BQU0sT0FBTyxNQUFNO0lBQ2pCLE9BQU8sQ0FBVTtJQUNqQixVQUFVLENBQVM7SUFDbkIsSUFBSSxDQUEwQjtJQUM5QixLQUFLLENBQWU7SUFDcEI7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUk7UUFDRixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FDUixlQUFlLEVBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUNqRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxQixJQUNFLGlCQUFpQixJQUFJLE9BQU87WUFDNUIsT0FBTyxPQUFPLENBQUMsZUFBZSxLQUFLLFFBQVEsRUFDM0MsQ0FBQztZQUNELCtCQUErQjtZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FB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
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/core",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.5.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"description": "A core plugin framework based on @eggjs/koa",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"clean": "rimraf dist",
|
|
13
|
-
"lint": "
|
|
13
|
+
"lint": "oxlint",
|
|
14
14
|
"pretest": "npm run clean && npm run lint -- --fix && npm run prepublishOnly",
|
|
15
15
|
"test": "egg-bin test",
|
|
16
16
|
"posttest": "npm run clean",
|
|
@@ -18,7 +18,15 @@
|
|
|
18
18
|
"preci": "npm run clean && npm run lint && npm run prepublishOnly",
|
|
19
19
|
"ci": "egg-bin cov",
|
|
20
20
|
"postci": "npm run clean",
|
|
21
|
-
"prepublishOnly": "tshy && tshy-after && attw --pack"
|
|
21
|
+
"prepublishOnly": "tshy && tshy-after && attw --pack",
|
|
22
|
+
"prepare": "husky"
|
|
23
|
+
},
|
|
24
|
+
"lint-staged": {
|
|
25
|
+
"*": "prettier --write --ignore-unknown --cache",
|
|
26
|
+
"*.{ts,js,json,md,yml}": [
|
|
27
|
+
"prettier --ignore-unknown --write",
|
|
28
|
+
"oxlint --fix"
|
|
29
|
+
]
|
|
22
30
|
},
|
|
23
31
|
"repository": {
|
|
24
32
|
"type": "git",
|
|
@@ -51,7 +59,7 @@
|
|
|
51
59
|
"utility": "^2.1.0"
|
|
52
60
|
},
|
|
53
61
|
"devDependencies": {
|
|
54
|
-
"@arethetypeswrong/cli": "^0.17.
|
|
62
|
+
"@arethetypeswrong/cli": "^0.17.4",
|
|
55
63
|
"@eggjs/bin": "7",
|
|
56
64
|
"@eggjs/supertest": "^8.1.1",
|
|
57
65
|
"@eggjs/tsconfig": "1",
|
|
@@ -60,8 +68,10 @@
|
|
|
60
68
|
"@types/node": "22",
|
|
61
69
|
"await-event": "2",
|
|
62
70
|
"coffee": "5",
|
|
63
|
-
"
|
|
64
|
-
"
|
|
71
|
+
"husky": "9",
|
|
72
|
+
"lint-staged": "15",
|
|
73
|
+
"oxlint": "^0.16.2",
|
|
74
|
+
"prettier": "3",
|
|
65
75
|
"gals": "1",
|
|
66
76
|
"js-yaml": "3",
|
|
67
77
|
"mm": "^4.0.2",
|