egg 4.1.0-beta.35 → 4.1.0-beta.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +7 -3
- package/dist/agent.js +10 -6
- package/dist/ajv.d.ts +1 -1
- package/dist/ajv.js +3 -2
- package/dist/aop.d.ts +1 -1
- package/dist/aop.js +3 -2
- package/dist/app/extend/context.d.ts +181 -178
- package/dist/app/extend/context.js +244 -259
- package/dist/app/extend/helper.d.ts +40 -35
- package/dist/app/extend/helper.js +45 -41
- package/dist/app/extend/request.d.ts +135 -131
- package/dist/app/extend/request.js +219 -258
- package/dist/app/extend/response.d.ts +28 -24
- package/dist/app/extend/response.js +36 -34
- package/dist/app/middleware/body_parser.d.ts +2 -2
- package/dist/app/middleware/body_parser.js +7 -3
- package/dist/app/middleware/meta.d.ts +8 -8
- package/dist/app/middleware/meta.js +15 -18
- package/dist/app/middleware/notfound.d.ts +8 -5
- package/dist/app/middleware/notfound.js +25 -28
- package/dist/app/middleware/override_method.d.ts +2 -2
- package/dist/app/middleware/override_method.js +7 -3
- package/dist/app/middleware/site_file.d.ts +11 -7
- package/dist/app/middleware/site_file.js +37 -52
- package/dist/config/config.default.d.ts +11 -6
- package/dist/config/config.default.js +258 -375
- package/dist/config/config.local.d.ts +6 -3
- package/dist/config/config.local.js +7 -8
- package/dist/config/config.unittest.d.ts +6 -3
- package/dist/config/config.unittest.js +10 -8
- package/dist/config/plugin.d.ts +6 -2
- package/dist/config/plugin.js +67 -131
- package/dist/dal.d.ts +1 -1
- package/dist/dal.js +3 -2
- package/dist/errors.d.ts +1 -1
- package/dist/errors.js +3 -2
- package/dist/helper.d.ts +1 -1
- package/dist/helper.js +3 -2
- package/dist/index.d.ts +24 -106
- package/dist/index.js +23 -89
- package/dist/lib/agent.d.ts +21 -15
- package/dist/lib/agent.js +53 -45
- package/dist/lib/application.d.ts +60 -54
- package/dist/lib/application.js +199 -249
- package/dist/lib/core/base_context_class.d.ts +23 -17
- package/dist/lib/core/base_context_class.js +17 -15
- package/dist/lib/core/base_context_logger.d.ts +39 -35
- package/dist/lib/core/base_context_logger.js +58 -60
- package/dist/lib/core/base_hook_class.d.ts +18 -11
- package/dist/lib/core/base_hook_class.js +26 -22
- package/dist/lib/core/context_httpclient.d.ts +21 -16
- package/dist/lib/core/context_httpclient.js +29 -26
- package/dist/lib/core/httpclient.d.ts +14 -12
- package/dist/lib/core/httpclient.js +34 -37
- package/dist/lib/core/logger.d.ts +7 -3
- package/dist/lib/core/logger.js +30 -36
- package/dist/lib/core/messenger/IMessenger.d.ts +53 -49
- package/dist/lib/core/messenger/IMessenger.js +1 -2
- package/dist/lib/core/messenger/base.d.ts +11 -7
- package/dist/lib/core/messenger/base.js +30 -29
- package/dist/lib/core/messenger/index.d.ts +10 -6
- package/dist/lib/core/messenger/index.js +11 -8
- package/dist/lib/core/messenger/ipc.d.ts +62 -57
- package/dist/lib/core/messenger/ipc.js +126 -138
- package/dist/lib/core/messenger/local.d.ts +63 -58
- package/dist/lib/core/messenger/local.js +126 -131
- package/dist/lib/core/utils.d.ts +5 -2
- package/dist/lib/core/utils.js +44 -66
- package/dist/lib/define.d.ts +72 -67
- package/dist/lib/define.js +54 -53
- package/dist/lib/egg.d.ts +283 -281
- package/dist/lib/egg.js +512 -573
- package/dist/lib/error/CookieLimitExceedError.d.ts +7 -4
- package/dist/lib/error/CookieLimitExceedError.js +15 -12
- package/dist/lib/error/MessageUnhandledRejectionError.d.ts +7 -4
- package/dist/lib/error/MessageUnhandledRejectionError.js +15 -12
- package/dist/lib/error/index.d.ts +3 -2
- package/dist/lib/error/index.js +4 -3
- package/dist/lib/loader/AgentWorkerLoader.d.ts +15 -10
- package/dist/lib/loader/AgentWorkerLoader.js +22 -18
- package/dist/lib/loader/AppWorkerLoader.d.ts +20 -15
- package/dist/lib/loader/AppWorkerLoader.js +35 -37
- package/dist/lib/loader/EggApplicationLoader.d.ts +7 -3
- package/dist/lib/loader/EggApplicationLoader.js +7 -4
- package/dist/lib/loader/index.d.ts +4 -3
- package/dist/lib/loader/index.js +5 -4
- package/dist/lib/start.d.ts +24 -20
- package/dist/lib/start.js +32 -42
- package/dist/lib/types.d.ts +288 -286
- package/dist/lib/types.js +2 -2
- package/dist/lib/types.plugin.d.ts +21 -21
- package/dist/lib/types.plugin.js +23 -24
- package/dist/orm.d.ts +1 -1
- package/dist/orm.js +3 -2
- package/dist/schedule.d.ts +2 -2
- package/dist/schedule.js +5 -5
- package/dist/transaction.d.ts +1 -1
- package/dist/transaction.js +3 -2
- package/dist/urllib.d.ts +1 -1
- package/dist/urllib.js +3 -2
- package/package.json +60 -64
|
@@ -1,133 +1,128 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
1
|
import { BaseMessenger } from "./base.js";
|
|
3
|
-
|
|
2
|
+
import { debuglog } from "node:util";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/core/messenger/local.ts
|
|
5
|
+
const debug = debuglog("egg/lib/core/messenger/local");
|
|
4
6
|
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
close() {
|
|
130
|
-
this.removeAllListeners();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvbWVzc2VuZ2VyL2xvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUcxQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUNqQyxHQUFHLENBQVM7SUFFckIsWUFBWSxHQUF1QjtRQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFjO1FBQ3RDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsSUFBYztRQUNyRCxLQUFLLENBQUMsK0JBQStCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hGLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUs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
|
|
7
|
+
* Communication between app worker and agent worker with EventEmitter
|
|
8
|
+
*/
|
|
9
|
+
var Messenger = class extends BaseMessenger {
|
|
10
|
+
pid;
|
|
11
|
+
constructor(egg) {
|
|
12
|
+
super(egg);
|
|
13
|
+
this.pid = String(process.pid);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Send message to all agent and app
|
|
17
|
+
* @param {String} action - message key
|
|
18
|
+
* @param {Object} data - message value
|
|
19
|
+
* @return {Messenger} this
|
|
20
|
+
*/
|
|
21
|
+
broadcast(action, data) {
|
|
22
|
+
debug("[%s:%s] broadcast %s with %j", this.egg.type, this.pid, action, data);
|
|
23
|
+
this.send(action, data, "both");
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* send message to the specified process
|
|
28
|
+
* Notice: in single process mode, it only can send to self process,
|
|
29
|
+
* and it will send to both agent and app's messengers.
|
|
30
|
+
* @param {String} workerId - the workerId of the receiver
|
|
31
|
+
* @param {String} action - message key
|
|
32
|
+
* @param {Object} data - message value
|
|
33
|
+
* @return {Messenger} this
|
|
34
|
+
*/
|
|
35
|
+
sendTo(workerId, action, data) {
|
|
36
|
+
debug("[%s:%s] send %s with %j to %s", this.egg.type, this.pid, action, data, workerId);
|
|
37
|
+
if (String(workerId) !== this.pid) return this;
|
|
38
|
+
this.send(action, data, "both");
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* send message to one worker by random
|
|
43
|
+
* Notice: in single process mode, we only start one agent worker and one app worker
|
|
44
|
+
* - if it's running in agent, it will send to one of app workers
|
|
45
|
+
* - if it's running in app, it will send to agent
|
|
46
|
+
* @param {String} action - message key
|
|
47
|
+
* @param {Object} data - message value
|
|
48
|
+
* @return {Messenger} this
|
|
49
|
+
*/
|
|
50
|
+
sendRandom(action, data) {
|
|
51
|
+
debug("[%s:%s] send %s with %o to opposite", this.egg.type, this.pid, action, data);
|
|
52
|
+
this.send(action, data, "opposite");
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* send message to app
|
|
57
|
+
* @param {String} action - message key
|
|
58
|
+
* @param {Object} data - message value
|
|
59
|
+
* @return {Messenger} this
|
|
60
|
+
*/
|
|
61
|
+
sendToApp(action, data) {
|
|
62
|
+
debug("[%s:%s] send %s with %o to all app", this.egg.type, this.pid, action, data);
|
|
63
|
+
this.send(action, data, "application");
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* send message to agent
|
|
68
|
+
* @param {String} action - message key
|
|
69
|
+
* @param {Object} data - message value
|
|
70
|
+
* @return {Messenger} this
|
|
71
|
+
*/
|
|
72
|
+
sendToAgent(action, data) {
|
|
73
|
+
debug("[%s:%s] send %s with %o to all agent", this.egg.type, this.pid, action, data);
|
|
74
|
+
this.send(action, data, "agent");
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @param {String} action - message key
|
|
79
|
+
* @param {Object} data - message value
|
|
80
|
+
* @param {String} to - let master know how to send message
|
|
81
|
+
* @return {Messenger} this
|
|
82
|
+
*/
|
|
83
|
+
send(action, data, to) {
|
|
84
|
+
if (to === "app") to = "application";
|
|
85
|
+
process.nextTick(() => {
|
|
86
|
+
const { egg } = this;
|
|
87
|
+
let application;
|
|
88
|
+
let agent;
|
|
89
|
+
let opposite;
|
|
90
|
+
if (egg.type === "application") {
|
|
91
|
+
application = egg;
|
|
92
|
+
agent = egg.agent;
|
|
93
|
+
opposite = agent;
|
|
94
|
+
} else {
|
|
95
|
+
agent = egg;
|
|
96
|
+
application = egg.application;
|
|
97
|
+
opposite = application;
|
|
98
|
+
}
|
|
99
|
+
if (!to) to = egg.type === "application" ? "agent" : "application";
|
|
100
|
+
debug("[%s:%s] send action:%s with %o to %s", this.egg.type, this.pid, action, data, to);
|
|
101
|
+
if (application && application.messenger && (to === "application" || to === "both")) application.messenger.onMessage({
|
|
102
|
+
action,
|
|
103
|
+
data
|
|
104
|
+
});
|
|
105
|
+
if (agent && agent.messenger && (to === "agent" || to === "both")) agent.messenger.onMessage({
|
|
106
|
+
action,
|
|
107
|
+
data
|
|
108
|
+
});
|
|
109
|
+
if (opposite && opposite.messenger && to === "opposite") opposite.messenger.onMessage({
|
|
110
|
+
action,
|
|
111
|
+
data
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
onMessage(message) {
|
|
117
|
+
if (typeof message?.action === "string") {
|
|
118
|
+
debug("[%s:%s] got message %s with %j", this.egg.type, this.pid, message.action, message.data);
|
|
119
|
+
this.emit(message.action, message.data);
|
|
120
|
+
} else debug("[%s:%s] got an invalid message %j", this.egg.type, this.pid, message);
|
|
121
|
+
}
|
|
122
|
+
close() {
|
|
123
|
+
this.removeAllListeners();
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
//#endregion
|
|
128
|
+
export { Messenger };
|
package/dist/lib/core/utils.d.ts
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/lib/core/utils.d.ts
|
|
2
|
+
declare function convertObject(obj: any, ignore?: string | RegExp | (string | RegExp)[]): any;
|
|
3
|
+
declare function safeParseURL(url: string): URL | null;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { convertObject, safeParseURL };
|
package/dist/lib/core/utils.js
CHANGED
|
@@ -1,70 +1,48 @@
|
|
|
1
|
-
import util from
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
return obj;
|
|
1
|
+
import util from "node:util";
|
|
2
|
+
import { isAsyncFunction, isClass, isFunction, isGeneratorFunction, isPrimitive, isRegExp, isSymbol } from "is-type-of";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/core/utils.ts
|
|
5
|
+
function convertObject(obj, ignore = []) {
|
|
6
|
+
if (!Array.isArray(ignore)) ignore = [ignore];
|
|
7
|
+
for (const key of Object.keys(obj)) obj[key] = convertValue(key, obj[key], ignore);
|
|
8
|
+
return obj;
|
|
11
9
|
}
|
|
12
10
|
function convertValue(key, value, ignore) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
// support class
|
|
41
|
-
const name = value.name || 'anonymous';
|
|
42
|
-
if (isClass(value)) {
|
|
43
|
-
return `<Class ${name}>`;
|
|
44
|
-
}
|
|
45
|
-
// support generator function
|
|
46
|
-
if (isFunction(value)) {
|
|
47
|
-
if (isGeneratorFunction(value))
|
|
48
|
-
return `<GeneratorFunction ${name}>`;
|
|
49
|
-
if (isAsyncFunction(value))
|
|
50
|
-
return `<AsyncFunction ${name}>`;
|
|
51
|
-
return `<Function ${name}>`;
|
|
52
|
-
}
|
|
53
|
-
const typeName = value.constructor.name;
|
|
54
|
-
if (typeName) {
|
|
55
|
-
if (Buffer.isBuffer(value) || typeof value === 'string') {
|
|
56
|
-
return `<${typeName} len: ${value.length}>`;
|
|
57
|
-
}
|
|
58
|
-
return `<${typeName}>`;
|
|
59
|
-
}
|
|
60
|
-
return util.format(value);
|
|
11
|
+
if (value === null || value === void 0) return value;
|
|
12
|
+
let hit = false;
|
|
13
|
+
for (const matchKey of ignore) if (typeof matchKey === "string" && matchKey === key) {
|
|
14
|
+
hit = true;
|
|
15
|
+
break;
|
|
16
|
+
} else if (isRegExp(matchKey) && matchKey.test(key)) {
|
|
17
|
+
hit = true;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
if (!hit) {
|
|
21
|
+
if (isSymbol(value) || isRegExp(value) || value instanceof URL) return value.toString();
|
|
22
|
+
if (isPrimitive(value) || Array.isArray(value)) return value;
|
|
23
|
+
}
|
|
24
|
+
if (Object.getPrototypeOf(value) === Object.prototype) return convertObject(value, ignore);
|
|
25
|
+
const name = value.name || "anonymous";
|
|
26
|
+
if (isClass(value)) return `<Class ${name}>`;
|
|
27
|
+
if (isFunction(value)) {
|
|
28
|
+
if (isGeneratorFunction(value)) return `<GeneratorFunction ${name}>`;
|
|
29
|
+
if (isAsyncFunction(value)) return `<AsyncFunction ${name}>`;
|
|
30
|
+
return `<Function ${name}>`;
|
|
31
|
+
}
|
|
32
|
+
const typeName = value.constructor.name;
|
|
33
|
+
if (typeName) {
|
|
34
|
+
if (Buffer.isBuffer(value) || typeof value === "string") return `<${typeName} len: ${value.length}>`;
|
|
35
|
+
return `<${typeName}>`;
|
|
36
|
+
}
|
|
37
|
+
return util.format(value);
|
|
61
38
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
39
|
+
function safeParseURL(url) {
|
|
40
|
+
try {
|
|
41
|
+
return new URL(url);
|
|
42
|
+
} catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
69
45
|
}
|
|
70
|
-
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { convertObject, safeParseURL };
|
package/dist/lib/define.d.ts
CHANGED
|
@@ -1,76 +1,81 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { EggAppConfig, EggAppInfo, EggEnvType } from "./types.js";
|
|
2
|
+
import { PartialDeep } from "type-fest";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/define.d.ts
|
|
5
|
+
|
|
3
6
|
/**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
* Partial EggAppConfig
|
|
8
|
+
*/
|
|
9
|
+
type PartialEggConfig = PartialDeep<EggAppConfig>;
|
|
7
10
|
/**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
* Configuration factory function return type
|
|
12
|
+
*/
|
|
13
|
+
type EggConfigFactory = (appInfo: EggAppInfo) => PartialEggConfig;
|
|
11
14
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
* Define configuration with type safety
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { defineConfig } from 'egg';
|
|
19
|
+
*
|
|
20
|
+
* export default defineConfig({
|
|
21
|
+
* keys: 'my-keys',
|
|
22
|
+
* middleware: []
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
declare function defineConfig(config: PartialEggConfig): PartialEggConfig;
|
|
24
27
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
* Define configuration factory function with type safety
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* export default defineConfigFactory((appInfo): PartialEggConfig => ({
|
|
32
|
+
* keys: appInfo.name + '_keys',
|
|
33
|
+
* middleware: []
|
|
34
|
+
* }));
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
declare function defineConfigFactory(configFactory: EggConfigFactory): EggConfigFactory;
|
|
35
38
|
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
39
|
+
* Define plugin meta with type safety
|
|
40
|
+
*/
|
|
41
|
+
interface EggPluginMeta {
|
|
42
|
+
/** the plugin name, it can be used in `dep` */
|
|
43
|
+
name: string;
|
|
44
|
+
/** whether enabled */
|
|
45
|
+
enable: boolean;
|
|
46
|
+
/** the directory of the plugin package */
|
|
47
|
+
path: string;
|
|
48
|
+
/** the dependent plugins, you can use the plugin name */
|
|
49
|
+
dependencies?: string[];
|
|
50
|
+
/** the optional dependent plugins. */
|
|
51
|
+
optionalDependencies?: string[];
|
|
52
|
+
/** specify the serverEnv that only enable the plugin in it, default to all envs */
|
|
53
|
+
env?: EggEnvType[];
|
|
51
54
|
}
|
|
52
55
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
* Egg plugin options, user can't provide name, it will be generated by the plugin factory.
|
|
57
|
+
*/
|
|
58
|
+
type EggPluginOptions = PartialDeep<Omit<EggPluginMeta, "name">>;
|
|
56
59
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
* Egg plugin factory type, the return value is a record of plugin name and plugin meta.
|
|
61
|
+
*/
|
|
62
|
+
type EggPluginFactory = (options?: EggPluginOptions) => Record<string, EggPluginMeta>;
|
|
60
63
|
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
64
|
+
* Define plugin factory with type safety
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* import { definePluginFactory } from 'egg';
|
|
68
|
+
*
|
|
69
|
+
* export default definePluginFactory({
|
|
70
|
+
* name: 'my-plugin',
|
|
71
|
+
* enable: true,
|
|
72
|
+
* path: 'path/to/my-plugin',
|
|
73
|
+
* dependencies: ['watcher'],
|
|
74
|
+
* optionalDependencies: ['view'],
|
|
75
|
+
* env: ['local', 'unittest'],
|
|
76
|
+
* });
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare function definePluginFactory(pluginMeta: EggPluginMeta): EggPluginFactory;
|
|
80
|
+
//#endregion
|
|
81
|
+
export { EggConfigFactory, EggPluginFactory, EggPluginMeta, EggPluginOptions, PartialEggConfig, defineConfig, defineConfigFactory, definePluginFactory };
|