@eggjs/core 6.3.0-beta.0 → 6.3.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/dist/commonjs/base_context_class.d.ts +3 -3
- package/dist/commonjs/base_context_class.js +1 -1
- package/dist/commonjs/egg.d.ts +17 -10
- package/dist/commonjs/egg.js +30 -4
- package/dist/commonjs/index.d.ts +2 -0
- package/dist/commonjs/index.js +2 -1
- package/dist/commonjs/lifecycle.d.ts +5 -2
- package/dist/commonjs/lifecycle.js +35 -15
- package/dist/commonjs/loader/context_loader.d.ts +3 -3
- package/dist/commonjs/loader/context_loader.js +1 -1
- package/dist/commonjs/loader/egg_loader.d.ts +4 -40
- package/dist/commonjs/loader/egg_loader.js +56 -39
- package/dist/commonjs/loader/file_loader.d.ts +5 -1
- package/dist/commonjs/loader/file_loader.js +18 -5
- package/dist/commonjs/singleton.d.ts +29 -0
- package/dist/commonjs/singleton.js +125 -0
- package/dist/commonjs/types.d.ts +53 -0
- package/dist/commonjs/types.js +3 -0
- package/dist/commonjs/utils/index.js +10 -5
- package/dist/commonjs/utils/sequencify.js +1 -1
- package/dist/commonjs/utils/timing.js +1 -1
- package/dist/esm/base_context_class.d.ts +3 -3
- package/dist/esm/base_context_class.js +1 -1
- package/dist/esm/egg.d.ts +17 -10
- package/dist/esm/egg.js +30 -4
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/lifecycle.d.ts +5 -2
- package/dist/esm/lifecycle.js +35 -15
- package/dist/esm/loader/context_loader.d.ts +3 -3
- package/dist/esm/loader/context_loader.js +1 -1
- package/dist/esm/loader/egg_loader.d.ts +4 -40
- package/dist/esm/loader/egg_loader.js +60 -43
- package/dist/esm/loader/file_loader.d.ts +5 -1
- package/dist/esm/loader/file_loader.js +17 -4
- package/dist/esm/singleton.d.ts +29 -0
- package/dist/esm/singleton.js +118 -0
- package/dist/esm/types.d.ts +53 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/utils/index.js +10 -5
- package/dist/esm/utils/sequencify.js +1 -1
- package/dist/esm/utils/timing.js +1 -1
- package/dist/package.json +1 -1
- package/package.json +16 -15
- package/src/base_context_class.ts +3 -3
- package/src/egg.ts +40 -12
- package/src/index.ts +2 -0
- package/src/lifecycle.ts +40 -15
- package/src/loader/context_loader.ts +4 -4
- package/src/loader/egg_loader.ts +76 -90
- package/src/loader/file_loader.ts +16 -4
- package/src/singleton.ts +149 -0
- package/src/types.ts +56 -0
- package/src/utils/index.ts +9 -4
- package/src/utils/sequencify.ts +1 -1
- package/src/utils/timing.ts +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { EggCore } from './egg.js';
|
|
2
|
+
export type SingletonCreateMethod = (config: Record<string, any>, app: EggCore, clientName: string) => unknown | Promise<unknown>;
|
|
3
|
+
export interface SingletonOptions {
|
|
4
|
+
name: string;
|
|
5
|
+
app: EggCore;
|
|
6
|
+
create: SingletonCreateMethod;
|
|
7
|
+
}
|
|
8
|
+
export declare class Singleton<T = any> {
|
|
9
|
+
#private;
|
|
10
|
+
readonly clients: Map<string, T>;
|
|
11
|
+
readonly app: EggCore;
|
|
12
|
+
readonly create: SingletonCreateMethod;
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly options: Record<string, any>;
|
|
15
|
+
constructor(options: SingletonOptions);
|
|
16
|
+
init(): void | Promise<void>;
|
|
17
|
+
initSync(): void;
|
|
18
|
+
initAsync(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated please use `getSingletonInstance(id)` instead
|
|
21
|
+
*/
|
|
22
|
+
get(id: string): NonNullable<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Get singleton instance by id
|
|
25
|
+
*/
|
|
26
|
+
getSingletonInstance(id: string): NonNullable<T>;
|
|
27
|
+
createInstance(config: Record<string, any>, clientName: string): T;
|
|
28
|
+
createInstanceAsync(config: Record<string, any>, clientName: string): Promise<T>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
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
|
+
exports.Singleton = void 0;
|
|
7
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
8
|
+
const is_type_of_1 = require("is-type-of");
|
|
9
|
+
class Singleton {
|
|
10
|
+
clients = new Map();
|
|
11
|
+
app;
|
|
12
|
+
create;
|
|
13
|
+
name;
|
|
14
|
+
options;
|
|
15
|
+
constructor(options) {
|
|
16
|
+
(0, node_assert_1.default)(options.name, '[@eggjs/core/singleton] Singleton#constructor options.name is required');
|
|
17
|
+
(0, node_assert_1.default)(options.app, '[@eggjs/core/singleton] Singleton#constructor options.app is required');
|
|
18
|
+
(0, node_assert_1.default)(options.create, '[@eggjs/core/singleton] Singleton#constructor options.create is required');
|
|
19
|
+
(0, node_assert_1.default)(!(options.name in options.app), `[@eggjs/core/singleton] ${options.name} is already exists in app`);
|
|
20
|
+
this.app = options.app;
|
|
21
|
+
this.name = options.name;
|
|
22
|
+
this.create = options.create;
|
|
23
|
+
this.options = options.app.config[this.name] ?? {};
|
|
24
|
+
}
|
|
25
|
+
init() {
|
|
26
|
+
return (0, is_type_of_1.isAsyncFunction)(this.create) ? this.initAsync() : this.initSync();
|
|
27
|
+
}
|
|
28
|
+
initSync() {
|
|
29
|
+
const options = this.options;
|
|
30
|
+
(0, node_assert_1.default)(!(options.client && options.clients), `[@eggjs/core/singleton] ${this.name} can not set options.client and options.clients both`);
|
|
31
|
+
// alias app[name] as client, but still support createInstance method
|
|
32
|
+
if (options.client) {
|
|
33
|
+
const client = this.createInstance(options.client, options.name);
|
|
34
|
+
this.#setClientToApp(client);
|
|
35
|
+
this.#extendDynamicMethods(client);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
// multi client, use app[name].getSingletonInstance(id)
|
|
39
|
+
if (options.clients) {
|
|
40
|
+
Object.keys(options.clients).forEach(id => {
|
|
41
|
+
const client = this.createInstance(options.clients[id], id);
|
|
42
|
+
this.clients.set(id, client);
|
|
43
|
+
});
|
|
44
|
+
this.#setClientToApp(this);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// no config.clients and config.client
|
|
48
|
+
this.#setClientToApp(this);
|
|
49
|
+
}
|
|
50
|
+
async initAsync() {
|
|
51
|
+
const options = this.options;
|
|
52
|
+
(0, node_assert_1.default)(!(options.client && options.clients), `[@eggjs/core/singleton] ${this.name} can not set options.client and options.clients both`);
|
|
53
|
+
// alias app[name] as client, but still support createInstance method
|
|
54
|
+
if (options.client) {
|
|
55
|
+
const client = await this.createInstanceAsync(options.client, options.name);
|
|
56
|
+
this.#setClientToApp(client);
|
|
57
|
+
this.#extendDynamicMethods(client);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// multi client, use app[name].getInstance(id)
|
|
61
|
+
if (options.clients) {
|
|
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));
|
|
65
|
+
}));
|
|
66
|
+
this.#setClientToApp(this);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// no config.clients and config.client
|
|
70
|
+
this.#setClientToApp(this);
|
|
71
|
+
}
|
|
72
|
+
#setClientToApp(client) {
|
|
73
|
+
Reflect.set(this.app, this.name, client);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @deprecated please use `getSingletonInstance(id)` instead
|
|
77
|
+
*/
|
|
78
|
+
get(id) {
|
|
79
|
+
return this.clients.get(id);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get singleton instance by id
|
|
83
|
+
*/
|
|
84
|
+
getSingletonInstance(id) {
|
|
85
|
+
return this.clients.get(id);
|
|
86
|
+
}
|
|
87
|
+
createInstance(config, clientName) {
|
|
88
|
+
// 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 synchronous creation, please use createInstanceAsync`);
|
|
90
|
+
// options.default will be merge in to options.clients[id]
|
|
91
|
+
config = {
|
|
92
|
+
...this.options.default,
|
|
93
|
+
...config,
|
|
94
|
+
};
|
|
95
|
+
return this.create(config, this.app, clientName);
|
|
96
|
+
}
|
|
97
|
+
async createInstanceAsync(config, clientName) {
|
|
98
|
+
// options.default will be merge in to options.clients[id]
|
|
99
|
+
config = {
|
|
100
|
+
...this.options.default,
|
|
101
|
+
...config,
|
|
102
|
+
};
|
|
103
|
+
return await this.create(config, this.app, clientName);
|
|
104
|
+
}
|
|
105
|
+
#extendDynamicMethods(client) {
|
|
106
|
+
(0, node_assert_1.default)(!client.createInstance, '[@eggjs/core/singleton] singleton instance should not have createInstance method');
|
|
107
|
+
(0, node_assert_1.default)(!client.createInstanceAsync, '[@eggjs/core/singleton] singleton instance should not have createInstanceAsync method');
|
|
108
|
+
try {
|
|
109
|
+
let extendable = client;
|
|
110
|
+
// Object.preventExtensions() or Object.freeze()
|
|
111
|
+
if (!Object.isExtensible(client) || Object.isFrozen(client)) {
|
|
112
|
+
// eslint-disable-next-line no-proto
|
|
113
|
+
extendable = client.__proto__ || client;
|
|
114
|
+
}
|
|
115
|
+
extendable.createInstance = this.createInstance.bind(this);
|
|
116
|
+
extendable.createInstanceAsync = this.createInstanceAsync.bind(this);
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
this.app.coreLogger.warn('[@eggjs/core/singleton] %s dynamic create is disabled because of client is un-extendable', this.name);
|
|
120
|
+
this.app.coreLogger.warn(err);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.Singleton = Singleton;
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFDakMsMkNBQTZDO0FBWTdDLE1BQWEsU0FBUztJQUNYLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQy9CLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBd0I7SUFDOUIsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFzQjtJQUV0QyxZQUFZLE9BQXlCO1FBQ25DLElBQUEscUJBQU0sRUFBQyxPQUFPLENBQUMsSUFBSSxFQUFFLHdFQUF3RSxDQUFDLENBQUM7UUFDL0YsSUFBQSxxQkFBTSxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsdUVBQXVFLENBQUMsQ0FBQztRQUM3RixJQUFBLHFCQUFNLEVBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSwwRUFBMEUsQ0FBQyxDQUFDO1FBQ25HLElBQUEscUJBQU0sRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsMkJBQTJCLE9BQU8sQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxJQUFBLDRCQUFlLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENB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
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface EggAppInfo {
|
|
2
|
+
/** package.json */
|
|
3
|
+
pkg: Record<string, any>;
|
|
4
|
+
/** the application name from package.json */
|
|
5
|
+
name: string;
|
|
6
|
+
/** current directory of application */
|
|
7
|
+
baseDir: string;
|
|
8
|
+
/** equals to serverEnv */
|
|
9
|
+
env: string;
|
|
10
|
+
/** equals to serverScope */
|
|
11
|
+
scope: string;
|
|
12
|
+
/** home directory of the OS */
|
|
13
|
+
HOME: string;
|
|
14
|
+
/** baseDir when local and unittest, HOME when other environment */
|
|
15
|
+
root: string;
|
|
16
|
+
}
|
|
17
|
+
export interface EggPluginInfo {
|
|
18
|
+
/** the plugin name, it can be used in `dep` */
|
|
19
|
+
name: string;
|
|
20
|
+
/** the package name of plugin */
|
|
21
|
+
package?: string;
|
|
22
|
+
version?: string;
|
|
23
|
+
/** whether enabled */
|
|
24
|
+
enable: boolean;
|
|
25
|
+
implicitEnable?: boolean;
|
|
26
|
+
/** the directory of the plugin package */
|
|
27
|
+
path?: string;
|
|
28
|
+
/** the dependent plugins, you can use the plugin name */
|
|
29
|
+
dependencies: string[];
|
|
30
|
+
/** the optional dependent plugins. */
|
|
31
|
+
optionalDependencies: string[];
|
|
32
|
+
dependents?: string[];
|
|
33
|
+
/** specify the serverEnv that only enable the plugin in it */
|
|
34
|
+
env: string[];
|
|
35
|
+
/** the file plugin config in. */
|
|
36
|
+
from: string;
|
|
37
|
+
}
|
|
38
|
+
export interface CustomLoaderConfigItem {
|
|
39
|
+
/** the directory of the custom loader */
|
|
40
|
+
directory: string;
|
|
41
|
+
/** the inject object, it can be app or ctx */
|
|
42
|
+
inject: string;
|
|
43
|
+
/** whether load unit files */
|
|
44
|
+
loadunit?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface EggAppConfig extends Record<string, any> {
|
|
47
|
+
coreMiddleware: string[];
|
|
48
|
+
middleware: string[];
|
|
49
|
+
customLoader?: Record<string, CustomLoaderConfigItem>;
|
|
50
|
+
controller?: {
|
|
51
|
+
supportParams?: boolean;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
@@ -9,7 +9,7 @@ const node_fs_1 = __importDefault(require("node:fs"));
|
|
|
9
9
|
const promises_1 = require("node:fs/promises");
|
|
10
10
|
const node_module_1 = __importDefault(require("node:module"));
|
|
11
11
|
const utils_1 = require("@eggjs/utils");
|
|
12
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/core
|
|
12
|
+
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
|
|
@@ -51,11 +51,11 @@ function getCalleeFromStack(withLine, stackIndex) {
|
|
|
51
51
|
exports.default = {
|
|
52
52
|
deprecated(message) {
|
|
53
53
|
if (debug.enabled) {
|
|
54
|
-
console.trace('[@eggjs/core
|
|
54
|
+
console.trace('[@eggjs/core/deprecated] %s', message);
|
|
55
55
|
}
|
|
56
56
|
else {
|
|
57
|
-
console.
|
|
58
|
-
console.
|
|
57
|
+
console.log('[@eggjs/core/deprecated] %s', message);
|
|
58
|
+
console.log('[@eggjs/core/deprecated] set NODE_DEBUG=@eggjs/core/utils can show call stack');
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
extensions,
|
|
@@ -80,6 +80,11 @@ exports.default = {
|
|
|
80
80
|
return obj;
|
|
81
81
|
}
|
|
82
82
|
catch (e) {
|
|
83
|
+
if (!e.message && typeof e !== 'string') {
|
|
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
|
+
console.trace(e);
|
|
86
|
+
throw e;
|
|
87
|
+
}
|
|
83
88
|
const err = new Error(`[@eggjs/core] load file: ${filepath}, error: ${e.message}`);
|
|
84
89
|
err.cause = e;
|
|
85
90
|
debug('[loadFile] handle %s error: %s', filepath, e);
|
|
@@ -109,4 +114,4 @@ exports.default = {
|
|
|
109
114
|
function prepareObjectStackTrace(_obj, stack) {
|
|
110
115
|
return stack;
|
|
111
116
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5Q0FBcUM7QUFDckMsMERBQTZCO0FBQzdCLHNEQUF5QjtBQUN6QiwrQ0FBd0M7QUFDeEMsOERBQXdDO0FBQ3hDLHdDQUEyRDtBQUUzRCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUk1QyxtREFBbUQ7QUFDbkQsTUFBTSxNQUFNLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7SUFDM0UsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXO0lBQ3BCLDBCQUEwQjtJQUMxQixDQUFDLENBQUMscUJBQWEsQ0FBQztBQUVsQixNQUFNLFVBQVUsR0FBSSxNQUFjLENBQUMsV0FBVyxDQUFDO0FBQy9DLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBRSxDQUFDLENBQUM7QUFDMUUsS0FBSyxDQUFDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRS9DLFNBQVMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxVQUFtQjtJQUNqRSxVQUFVLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNwQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7SUFFckMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBQ2xELEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBRTFCLG9CQUFvQjtJQUNwQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7SUFDcEIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckMsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLElBQUksUUFBUSxFQUFFLENBQUM7UUFDYiwrQkFBK0I7UUFDL0IsZ0VBQWdFO1FBQ2hFLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsd0JBQXdCO1FBQ3hCLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQ3pELGlCQUFpQjtZQUNqQixRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDckMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDL0IsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFFOUIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLGFBQWEsQ0FBQztJQUNqRCxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLFFBQVEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO0FBQ2pGLENBQUM7QUFFRCxrQkFBZTtJQUNiLFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0VBQStFLENBQUMsQ0FBQztRQUMvRixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7SUFDVixjQUFjO0lBRWQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFnQjtRQUMvQixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUEsZUFBSSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWdCO1FBQzdCLElBQUksQ0FBQztZQUNILCtDQUErQztZQUMvQyxNQUFNLE9BQU8sR0FBRyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxpQkFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFBLG9CQUFZLEVBQUMsUUFBUSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN0RSxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxpSUFBaUk7Z0JBQ2pJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUNELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLDRCQUE0QixRQUFRLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbkYsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZCxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxPQUE4QjtRQUMxRCxPQUFPLElBQUEscUJBQWEsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBRTtJQUV2RSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQU8sRUFBRSxJQUFZLEVBQUUsR0FBUztRQUMzQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixJQUFJLE9BQU8sRUFBRSxLQUFLLFVBQVU7WUFBRSxPQUFPO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsa0JBQWtCO0lBRWxCLG1CQUFtQixDQUFDLFFBQWdCLEVBQUUsT0FBZTtRQUNuRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUM7UUFDckIsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxtQkFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDRixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxJQUFTLEVBQUUsS0FBVTtJQUNwRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMifQ==
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = sequencify;
|
|
4
4
|
const node_util_1 = require("node:util");
|
|
5
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/core
|
|
5
|
+
const debug = (0, node_util_1.debuglog)('@eggjs/core/utils/sequencify');
|
|
6
6
|
function sequence(tasks, names, result, missing, recursive, nest, optional, parent) {
|
|
7
7
|
names.forEach(function (name) {
|
|
8
8
|
if (result.requires[name])
|
|
@@ -7,7 +7,7 @@ exports.Timing = void 0;
|
|
|
7
7
|
const node_os_1 = require("node:os");
|
|
8
8
|
const node_util_1 = require("node:util");
|
|
9
9
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
10
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/core
|
|
10
|
+
const debug = (0, node_util_1.debuglog)('@eggjs/core/utils/timing');
|
|
11
11
|
class Timing {
|
|
12
12
|
#enable;
|
|
13
13
|
#startTime;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import type { EggCore,
|
|
1
|
+
import type { EggCore, Context } from './egg.js';
|
|
2
2
|
/**
|
|
3
3
|
* BaseContextClass is a base class that can be extended,
|
|
4
4
|
* it's instantiated in context level,
|
|
5
5
|
* {@link Helper}, {@link Service} is extending it.
|
|
6
6
|
*/
|
|
7
7
|
export declare class BaseContextClass {
|
|
8
|
-
ctx:
|
|
8
|
+
ctx: Context;
|
|
9
9
|
app: EggCore;
|
|
10
10
|
config: Record<string, any>;
|
|
11
11
|
service: BaseContextClass;
|
|
12
12
|
/**
|
|
13
13
|
* @since 1.0.0
|
|
14
14
|
*/
|
|
15
|
-
constructor(ctx:
|
|
15
|
+
constructor(ctx: Context);
|
|
16
16
|
}
|
|
@@ -34,4 +34,4 @@ export class BaseContextClass {
|
|
|
34
34
|
this.service = ctx.service;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250ZXh0X2NsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2VfY29udGV4dF9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixHQUFHLENBQVU7SUFDYixHQUFHLENBQVU7SUFDYixNQUFNLENBQXNCO0lBQzVCLE9BQU8sQ0FBbUI7SUFFMUI7O09BRUc7SUFDSCxZQUFZLEdBQVk7UUFDdEI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZjs7O1dBR0c7UUFDSCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDbkI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUM3Qjs7O1dBR0c7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztDQUNGIn0=
|
package/dist/esm/egg.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Application as KoaApplication, Context as KoaContext, Request as KoaRequest, Response as KoaResponse } from '@eggjs/koa';
|
|
2
|
-
import type {
|
|
3
|
-
import { EggConsoleLogger } from 'egg-logger';
|
|
2
|
+
import type { MiddlewareFunc as KoaMiddlewareFunc, Next } from '@eggjs/koa';
|
|
3
|
+
import { EggConsoleLogger, Logger } from 'egg-logger';
|
|
4
4
|
import { RegisterOptions, ResourcesController, EggRouter as Router } from '@eggjs/router';
|
|
5
5
|
import type { ReadyFunctionArg } from 'get-ready';
|
|
6
6
|
import { BaseContextClass } from './base_context_class.js';
|
|
@@ -8,6 +8,8 @@ import { Timing } from './utils/timing.js';
|
|
|
8
8
|
import type { Fun } from './utils/index.js';
|
|
9
9
|
import { Lifecycle } from './lifecycle.js';
|
|
10
10
|
import { EggLoader } from './loader/egg_loader.js';
|
|
11
|
+
import { EggAppConfig } from './types.js';
|
|
12
|
+
import { type SingletonCreateMethod } from './singleton.js';
|
|
11
13
|
export declare const EGG_LOADER: unique symbol;
|
|
12
14
|
export interface EggCoreOptions {
|
|
13
15
|
baseDir: string;
|
|
@@ -18,16 +20,14 @@ export interface EggCoreOptions {
|
|
|
18
20
|
}
|
|
19
21
|
export type EggCoreInitOptions = Partial<EggCoreOptions>;
|
|
20
22
|
export { KoaRequest, KoaResponse, KoaContext, KoaApplication, Router, };
|
|
21
|
-
export type { Next, KoaMiddlewareFunc,
|
|
23
|
+
export type { Next, KoaMiddlewareFunc, };
|
|
22
24
|
export declare class Request extends KoaRequest {
|
|
23
25
|
app: EggCore;
|
|
24
26
|
response: Response;
|
|
25
|
-
ctx: ContextDelegation;
|
|
26
27
|
}
|
|
27
28
|
export declare class Response extends KoaResponse {
|
|
28
29
|
app: EggCore;
|
|
29
30
|
request: Request;
|
|
30
|
-
ctx: ContextDelegation;
|
|
31
31
|
}
|
|
32
32
|
export declare class Context extends KoaContext {
|
|
33
33
|
app: EggCore;
|
|
@@ -35,8 +35,7 @@ export declare class Context extends KoaContext {
|
|
|
35
35
|
response: Response;
|
|
36
36
|
service: BaseContextClass;
|
|
37
37
|
}
|
|
38
|
-
export type
|
|
39
|
-
export type MiddlewareFunc<T extends ContextDelegation = ContextDelegation> = KoaMiddlewareFunc<T>;
|
|
38
|
+
export type MiddlewareFunc<T = Context> = KoaMiddlewareFunc<T>;
|
|
40
39
|
export declare class EggCore extends KoaApplication {
|
|
41
40
|
#private;
|
|
42
41
|
options: EggCoreOptions;
|
|
@@ -63,6 +62,14 @@ export declare class EggCore extends KoaApplication {
|
|
|
63
62
|
* @since 1.0.0
|
|
64
63
|
*/
|
|
65
64
|
constructor(options?: EggCoreInitOptions);
|
|
65
|
+
get logger(): Logger;
|
|
66
|
+
get coreLogger(): Logger;
|
|
67
|
+
/**
|
|
68
|
+
* create a singleton instance
|
|
69
|
+
* @param {String} name - unique name for singleton
|
|
70
|
+
* @param {Function|AsyncFunction} create - method will be invoked when singleton instance create
|
|
71
|
+
*/
|
|
72
|
+
addSingleton(name: string, create: SingletonCreateMethod): void;
|
|
66
73
|
/**
|
|
67
74
|
* override koa's app.use, support generator function
|
|
68
75
|
* @since 1.0.0
|
|
@@ -99,13 +106,13 @@ export declare class EggCore extends KoaApplication {
|
|
|
99
106
|
* @member {Object}
|
|
100
107
|
* @since 1.0.0
|
|
101
108
|
*/
|
|
102
|
-
get plugins(): Record<string, import("./
|
|
109
|
+
get plugins(): Record<string, import("./types.js").EggPluginInfo>;
|
|
103
110
|
/**
|
|
104
111
|
* The configuration of application
|
|
105
112
|
* @member {Config}
|
|
106
113
|
* @since 1.0.0
|
|
107
114
|
*/
|
|
108
|
-
get config():
|
|
115
|
+
get config(): EggAppConfig;
|
|
109
116
|
/**
|
|
110
117
|
* Execute scope after loaded and before app start.
|
|
111
118
|
*
|
|
@@ -164,7 +171,7 @@ export declare class EggCore extends KoaApplication {
|
|
|
164
171
|
*
|
|
165
172
|
* @param {Function} fn - the function that can be generator function or async function.
|
|
166
173
|
*/
|
|
167
|
-
beforeClose(fn: Fun): void;
|
|
174
|
+
beforeClose(fn: Fun, name?: string): void;
|
|
168
175
|
/**
|
|
169
176
|
* Close all, it will close
|
|
170
177
|
* - callbacks registered by beforeClose
|
package/dist/esm/egg.js
CHANGED
|
@@ -9,7 +9,8 @@ import { Timing } from './utils/timing.js';
|
|
|
9
9
|
import { Lifecycle } from './lifecycle.js';
|
|
10
10
|
import { EggLoader } from './loader/egg_loader.js';
|
|
11
11
|
import utils from './utils/index.js';
|
|
12
|
-
|
|
12
|
+
import { Singleton, } from './singleton.js';
|
|
13
|
+
const debug = debuglog('@eggjs/core/egg');
|
|
13
14
|
export const EGG_LOADER = Symbol.for('egg#loader');
|
|
14
15
|
// export @eggjs/koa classes
|
|
15
16
|
export { KoaRequest, KoaResponse, KoaContext, KoaApplication, Router, };
|
|
@@ -127,6 +128,31 @@ export class EggCore extends KoaApplication {
|
|
|
127
128
|
EggCoreClass: EggCore,
|
|
128
129
|
});
|
|
129
130
|
}
|
|
131
|
+
get logger() {
|
|
132
|
+
return this.console;
|
|
133
|
+
}
|
|
134
|
+
get coreLogger() {
|
|
135
|
+
return this.console;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* create a singleton instance
|
|
139
|
+
* @param {String} name - unique name for singleton
|
|
140
|
+
* @param {Function|AsyncFunction} create - method will be invoked when singleton instance create
|
|
141
|
+
*/
|
|
142
|
+
addSingleton(name, create) {
|
|
143
|
+
const options = {
|
|
144
|
+
name,
|
|
145
|
+
create,
|
|
146
|
+
app: this,
|
|
147
|
+
};
|
|
148
|
+
const singleton = new Singleton(options);
|
|
149
|
+
const initPromise = singleton.init();
|
|
150
|
+
if (initPromise) {
|
|
151
|
+
this.beforeStart(async () => {
|
|
152
|
+
await initPromise;
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
130
156
|
/**
|
|
131
157
|
* override koa's app.use, support generator function
|
|
132
158
|
* @since 1.0.0
|
|
@@ -244,9 +270,9 @@ export class EggCore extends KoaApplication {
|
|
|
244
270
|
*
|
|
245
271
|
* @param {Function} fn - the function that can be generator function or async function.
|
|
246
272
|
*/
|
|
247
|
-
beforeClose(fn) {
|
|
273
|
+
beforeClose(fn, name) {
|
|
248
274
|
this.deprecate('`beforeClose` was deprecated, please use "Life Cycles" instead, see https://www.eggjs.org/advanced/loader#life-cycles');
|
|
249
|
-
this.lifecycle.registerBeforeClose(fn);
|
|
275
|
+
this.lifecycle.registerBeforeClose(fn, name);
|
|
250
276
|
}
|
|
251
277
|
/**
|
|
252
278
|
* Close all, it will close
|
|
@@ -334,4 +360,4 @@ export class EggCore extends KoaApplication {
|
|
|
334
360
|
return EggLoader;
|
|
335
361
|
}
|
|
336
362
|
}
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VnZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQ0FBa0M7QUFDbEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLFdBQVcsSUFBSSxjQUFjLEVBQUUsT0FBTyxJQUFJLFVBQVUsRUFDcEQsT0FBTyxJQUFJLFVBQVUsRUFBRSxRQUFRLElBQUksV0FBVyxHQUMvQyxNQUFNLFlBQVksQ0FBQztBQUtwQixPQUFPLEVBQUUsZ0JBQWdCLEVBQVUsTUFBTSxZQUFZLENBQUM7QUFDdEQsT0FBTyxFQUF3QyxTQUFTLElBQUksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBRXJDLE9BQU8sRUFDTCxTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQVluRCw0QkFBNEI7QUFDNUIsT0FBTyxFQUNMLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFDbkQsTUFBTSxHQUNQLENBQUM7QUFPRiw2QkFBNkI7QUFDN0IsTUFBTSxPQUFPLE9BQVEsU0FBUSxVQUFVO0NBR3RDO0FBRUQsTUFBTSxP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
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -3,8 +3,10 @@ export { utils };
|
|
|
3
3
|
export * from './egg.js';
|
|
4
4
|
export * from './base_context_class.js';
|
|
5
5
|
export * from './lifecycle.js';
|
|
6
|
+
export * from './singleton.js';
|
|
6
7
|
export * from './loader/egg_loader.js';
|
|
7
8
|
export * from './loader/file_loader.js';
|
|
8
9
|
export * from './loader/context_loader.js';
|
|
9
10
|
export * from './utils/sequencify.js';
|
|
10
11
|
export * from './utils/timing.js';
|
|
12
|
+
export type * from './types.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -3,9 +3,10 @@ export { utils };
|
|
|
3
3
|
export * from './egg.js';
|
|
4
4
|
export * from './base_context_class.js';
|
|
5
5
|
export * from './lifecycle.js';
|
|
6
|
+
export * from './singleton.js';
|
|
6
7
|
export * from './loader/egg_loader.js';
|
|
7
8
|
export * from './loader/file_loader.js';
|
|
8
9
|
export * from './loader/context_loader.js';
|
|
9
10
|
export * from './utils/sequencify.js';
|
|
10
11
|
export * from './utils/timing.js';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sa0JBQWtCLENBQUM7QUFFckMsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRWpCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQkFBbUIsQ0FBQyJ9
|
package/dist/esm/lifecycle.d.ts
CHANGED
|
@@ -44,6 +44,9 @@ export interface LifecycleOptions {
|
|
|
44
44
|
app: EggCore;
|
|
45
45
|
logger: EggConsoleLogger;
|
|
46
46
|
}
|
|
47
|
+
export type FunWithFullPath = Fun & {
|
|
48
|
+
fullPath?: string;
|
|
49
|
+
};
|
|
47
50
|
export declare class Lifecycle extends EventEmitter {
|
|
48
51
|
#private;
|
|
49
52
|
loadReady: Ready;
|
|
@@ -58,13 +61,13 @@ export declare class Lifecycle extends EventEmitter {
|
|
|
58
61
|
get timing(): import("./index.js").Timing;
|
|
59
62
|
legacyReadyCallback(name: string, opt?: object): (...args: any[]) => void;
|
|
60
63
|
addBootHook(bootHootOrBootClass: BootImplClass | ILifecycleBoot): void;
|
|
61
|
-
addFunctionAsBootHook<T = EggCore>(hook: (app: T) => void): void;
|
|
64
|
+
addFunctionAsBootHook<T = EggCore>(hook: (app: T) => void, fullPath?: string): void;
|
|
62
65
|
/**
|
|
63
66
|
* init boots and trigger config did config
|
|
64
67
|
*/
|
|
65
68
|
init(): void;
|
|
66
69
|
registerBeforeStart(scope: Fun, name: string): void;
|
|
67
|
-
registerBeforeClose(fn:
|
|
70
|
+
registerBeforeClose(fn: FunWithFullPath, fullPath?: string): void;
|
|
68
71
|
close(): Promise<void>;
|
|
69
72
|
triggerConfigWillLoad(): void;
|
|
70
73
|
triggerConfigDidLoad(): void;
|