@eggjs/core 6.3.0-beta.1 → 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 +16 -9
- package/dist/commonjs/egg.js +28 -2
- package/dist/commonjs/index.d.ts +2 -0
- package/dist/commonjs/index.js +2 -1
- 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 +44 -32
- 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 +16 -9
- package/dist/esm/egg.js +28 -2
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -1
- 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 +48 -36
- 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 +11 -13
- package/src/base_context_class.ts +3 -3
- package/src/egg.ts +38 -10
- package/src/index.ts +2 -0
- package/src/loader/context_loader.ts +4 -4
- package/src/loader/egg_loader.ts +64 -82
- 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,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
|
*
|
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
|
|
@@ -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
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { FileLoader, type FileLoaderOptions } from './file_loader.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Context } from '../egg.js';
|
|
3
3
|
export interface ClassLoaderOptions {
|
|
4
|
-
ctx:
|
|
4
|
+
ctx: Context;
|
|
5
5
|
properties: any;
|
|
6
6
|
}
|
|
7
7
|
export declare class ClassLoader {
|
|
8
8
|
#private;
|
|
9
9
|
readonly _cache: Map<any, any>;
|
|
10
|
-
_ctx:
|
|
10
|
+
_ctx: Context;
|
|
11
11
|
constructor(options: ClassLoaderOptions);
|
|
12
12
|
}
|
|
13
13
|
export interface ContextLoaderOptions extends Omit<FileLoaderOptions, 'target'> {
|
|
@@ -99,4 +99,4 @@ function getInstance(values, ctx) {
|
|
|
99
99
|
}
|
|
100
100
|
return instance;
|
|
101
101
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dF9sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9hZGVyL2NvbnRleHRfbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBMEIsTUFBTSxrQkFBa0IsQ0FBQztBQUcvRSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7QUFPM0MsTUFBTSxPQUFPLFdBQVc7SUFDYixNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM1QixJQUFJLENBQVU7SUFFZCxZQUFZLE9BQTJCO1FBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFFeEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFnQixFQUFFLE1BQVc7UUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3BDLEdBQUc7Z0JBQ0QsSUFBSSxRQUFRLEdBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDZCxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMs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
|
|
@@ -3,43 +3,7 @@ import { FileLoader, FileLoaderOptions } from './file_loader.js';
|
|
|
3
3
|
import { ContextLoader, ContextLoaderOptions } from './context_loader.js';
|
|
4
4
|
import { Timing } from '../utils/timing.js';
|
|
5
5
|
import type { EggCore } from '../egg.js';
|
|
6
|
-
|
|
7
|
-
/** package.json */
|
|
8
|
-
pkg: Record<string, any>;
|
|
9
|
-
/** the application name from package.json */
|
|
10
|
-
name: string;
|
|
11
|
-
/** current directory of application */
|
|
12
|
-
baseDir: string;
|
|
13
|
-
/** equals to serverEnv */
|
|
14
|
-
env: string;
|
|
15
|
-
/** equals to serverScope */
|
|
16
|
-
scope: string;
|
|
17
|
-
/** home directory of the OS */
|
|
18
|
-
HOME: string;
|
|
19
|
-
/** baseDir when local and unittest, HOME when other environment */
|
|
20
|
-
root: string;
|
|
21
|
-
}
|
|
22
|
-
export interface EggPluginInfo {
|
|
23
|
-
/** the plugin name, it can be used in `dep` */
|
|
24
|
-
name: string;
|
|
25
|
-
/** the package name of plugin */
|
|
26
|
-
package?: string;
|
|
27
|
-
version?: string;
|
|
28
|
-
/** whether enabled */
|
|
29
|
-
enable: boolean;
|
|
30
|
-
implicitEnable?: boolean;
|
|
31
|
-
/** the directory of the plugin package */
|
|
32
|
-
path?: string;
|
|
33
|
-
/** the dependent plugins, you can use the plugin name */
|
|
34
|
-
dependencies: string[];
|
|
35
|
-
/** the optional dependent plugins. */
|
|
36
|
-
optionalDependencies: string[];
|
|
37
|
-
dependents?: string[];
|
|
38
|
-
/** specify the serverEnv that only enable the plugin in it */
|
|
39
|
-
env: string[];
|
|
40
|
-
/** the file plugin config in. */
|
|
41
|
-
from: string;
|
|
42
|
-
}
|
|
6
|
+
import type { EggAppConfig, EggAppInfo, EggPluginInfo } from '../types.js';
|
|
43
7
|
export interface EggLoaderOptions {
|
|
44
8
|
/** server env */
|
|
45
9
|
env: string;
|
|
@@ -190,7 +154,7 @@ export declare class EggLoader {
|
|
|
190
154
|
/** end Plugin loader */
|
|
191
155
|
/** start Config loader */
|
|
192
156
|
configMeta: Record<string, any>;
|
|
193
|
-
config:
|
|
157
|
+
config: EggAppConfig;
|
|
194
158
|
/**
|
|
195
159
|
* Load config/config.js
|
|
196
160
|
*
|
|
@@ -381,7 +345,7 @@ export declare class EggLoader {
|
|
|
381
345
|
* @param {Object} options - see {@link FileLoader}
|
|
382
346
|
* @since 1.0.0
|
|
383
347
|
*/
|
|
384
|
-
loadToApp(directory: string | string[], property: string | symbol, options?: FileLoaderOptions): Promise<void>;
|
|
348
|
+
loadToApp(directory: string | string[], property: string | symbol, options?: Omit<FileLoaderOptions, 'inject' | 'target'>): Promise<void>;
|
|
385
349
|
/**
|
|
386
350
|
* Load files using {@link ContextLoader}
|
|
387
351
|
* @param {String|Array} directory - see {@link ContextLoader}
|
|
@@ -389,7 +353,7 @@ export declare class EggLoader {
|
|
|
389
353
|
* @param {Object} options - see {@link ContextLoader}
|
|
390
354
|
* @since 1.0.0
|
|
391
355
|
*/
|
|
392
|
-
loadToContext(directory: string | string[], property: string | symbol, options?: ContextLoaderOptions): Promise<void>;
|
|
356
|
+
loadToContext(directory: string | string[], property: string | symbol, options?: Omit<ContextLoaderOptions, 'inject' | 'property'>): Promise<void>;
|
|
393
357
|
/**
|
|
394
358
|
* @member {FileLoader} EggLoader#FileLoader
|
|
395
359
|
* @since 1.0.0
|