egg 4.0.0-beta.5 → 4.0.0-beta.7
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/app/extend/context.d.ts +154 -2
- package/dist/commonjs/app/extend/context.js +82 -84
- package/dist/commonjs/app/extend/context.types.d.ts +16 -0
- package/dist/commonjs/app/extend/context.types.js +3 -0
- package/dist/commonjs/app/extend/helper.d.ts +37 -0
- package/dist/commonjs/app/extend/helper.js +49 -0
- package/dist/commonjs/app/extend/request.d.ts +128 -0
- package/dist/commonjs/app/extend/request.js +270 -0
- package/dist/commonjs/app/extend/response.d.ts +25 -0
- package/dist/commonjs/app/extend/response.js +37 -0
- package/dist/commonjs/app/middleware/meta.d.ts +2 -3
- package/dist/commonjs/app/middleware/meta.js +1 -1
- package/dist/commonjs/app/middleware/notfound.d.ts +2 -3
- package/dist/commonjs/app/middleware/notfound.js +1 -1
- package/dist/commonjs/app/middleware/site_file.d.ts +4 -2
- package/dist/commonjs/app/middleware/site_file.js +2 -3
- package/dist/commonjs/config/config.default.js +3 -2
- package/dist/commonjs/lib/application.d.ts +5 -12
- package/dist/commonjs/lib/application.js +9 -20
- package/dist/commonjs/lib/core/base_context_class.d.ts +2 -2
- package/dist/commonjs/lib/core/context_httpclient.d.ts +3 -3
- package/dist/commonjs/lib/core/context_httpclient.js +1 -1
- package/dist/commonjs/lib/core/httpclient.d.ts +2 -3
- package/dist/commonjs/lib/core/httpclient.js +3 -6
- package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +2 -2
- package/dist/commonjs/lib/core/messenger/index.js +2 -2
- package/dist/commonjs/lib/core/messenger/ipc.d.ts +5 -3
- package/dist/commonjs/lib/core/messenger/ipc.js +23 -17
- package/dist/commonjs/lib/core/messenger/local.d.ts +2 -2
- package/dist/commonjs/lib/core/messenger/local.js +14 -11
- package/dist/commonjs/lib/egg.d.ts +20 -15
- package/dist/commonjs/lib/egg.js +15 -11
- package/dist/commonjs/lib/egg.types.d.ts +6 -0
- package/dist/commonjs/lib/egg.types.js +3 -0
- package/dist/commonjs/lib/type.d.ts +4 -7
- package/dist/commonjs/lib/utils.d.ts +2 -0
- package/dist/commonjs/lib/utils.js +21 -0
- package/dist/esm/app/extend/context.d.ts +154 -2
- package/dist/esm/app/extend/context.js +82 -85
- package/dist/esm/app/extend/context.types.d.ts +16 -0
- package/dist/esm/app/extend/context.types.js +2 -0
- package/dist/esm/app/extend/helper.d.ts +37 -0
- package/dist/esm/app/extend/helper.js +43 -0
- package/dist/esm/app/extend/request.d.ts +128 -0
- package/dist/esm/app/extend/request.js +264 -0
- package/dist/esm/app/extend/response.d.ts +25 -0
- package/dist/esm/app/extend/response.js +34 -0
- package/dist/esm/app/middleware/meta.d.ts +2 -3
- package/dist/esm/app/middleware/meta.js +1 -1
- package/dist/esm/app/middleware/notfound.d.ts +2 -3
- package/dist/esm/app/middleware/notfound.js +1 -1
- package/dist/esm/app/middleware/site_file.d.ts +4 -2
- package/dist/esm/app/middleware/site_file.js +2 -3
- package/dist/esm/config/config.default.js +3 -2
- package/dist/esm/lib/application.d.ts +5 -12
- package/dist/esm/lib/application.js +9 -20
- package/dist/esm/lib/core/base_context_class.d.ts +2 -2
- package/dist/esm/lib/core/context_httpclient.d.ts +3 -3
- package/dist/esm/lib/core/context_httpclient.js +1 -1
- package/dist/esm/lib/core/httpclient.d.ts +2 -3
- package/dist/esm/lib/core/httpclient.js +2 -2
- package/dist/esm/lib/core/messenger/IMessenger.d.ts +2 -2
- package/dist/esm/lib/core/messenger/index.js +2 -2
- package/dist/esm/lib/core/messenger/ipc.d.ts +5 -3
- package/dist/esm/lib/core/messenger/ipc.js +23 -17
- package/dist/esm/lib/core/messenger/local.d.ts +2 -2
- package/dist/esm/lib/core/messenger/local.js +14 -11
- package/dist/esm/lib/egg.d.ts +20 -15
- package/dist/esm/lib/egg.js +13 -12
- package/dist/esm/lib/egg.types.d.ts +6 -0
- package/dist/esm/lib/egg.types.js +2 -0
- package/dist/esm/lib/type.d.ts +4 -7
- package/dist/esm/lib/utils.d.ts +2 -0
- package/dist/esm/lib/utils.js +14 -0
- package/dist/package.json +1 -1
- package/package.json +16 -13
- package/src/app/extend/context.ts +124 -102
- package/src/app/extend/context.types.ts +24 -0
- package/src/app/extend/{helper.js → helper.ts} +14 -13
- package/src/app/extend/{request.js → request.ts} +81 -79
- package/src/app/extend/response.ts +36 -0
- package/src/app/middleware/meta.ts +2 -3
- package/src/app/middleware/notfound.ts +2 -3
- package/src/app/middleware/site_file.ts +4 -6
- package/src/config/config.default.ts +2 -1
- package/src/lib/application.ts +14 -21
- package/src/lib/core/base_context_class.ts +2 -2
- package/src/lib/core/context_httpclient.ts +3 -3
- package/src/lib/core/httpclient.ts +4 -5
- package/src/lib/core/messenger/IMessenger.ts +2 -2
- package/src/lib/core/messenger/index.ts +1 -1
- package/src/lib/core/messenger/ipc.ts +23 -17
- package/src/lib/core/messenger/local.ts +12 -10
- package/src/lib/egg.ts +47 -24
- package/src/lib/egg.types.ts +6 -0
- package/src/lib/type.ts +6 -13
- package/src/lib/utils.ts +16 -0
- package/src/app/extend/response.js +0 -101
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseContextClass as EggCoreBaseContextClass } from '@eggjs/core';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ContextDelegation } from '../egg.js';
|
|
3
3
|
import { BaseContextLogger } from './base_context_logger.js';
|
|
4
4
|
/**
|
|
5
5
|
* BaseContextClass is a base class that can be extended,
|
|
@@ -8,7 +8,7 @@ import { BaseContextLogger } from './base_context_logger.js';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class BaseContextClass extends EggCoreBaseContextClass {
|
|
10
10
|
#private;
|
|
11
|
-
ctx:
|
|
11
|
+
ctx: ContextDelegation;
|
|
12
12
|
protected pathName?: string;
|
|
13
13
|
get logger(): BaseContextLogger;
|
|
14
14
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ContextDelegation, EggApplicationCore } from '../egg.js';
|
|
2
2
|
import type { HttpClientRequestURL, HttpClientRequestOptions } from './httpclient.js';
|
|
3
3
|
export declare class ContextHttpClient {
|
|
4
|
-
ctx:
|
|
4
|
+
ctx: ContextDelegation;
|
|
5
5
|
app: EggApplicationCore;
|
|
6
|
-
constructor(ctx:
|
|
6
|
+
constructor(ctx: ContextDelegation);
|
|
7
7
|
/**
|
|
8
8
|
* http request helper base on {@link HttpClient}, it will auto save httpclient log.
|
|
9
9
|
* Keep the same api with {@link Application#curl}.
|
|
@@ -23,4 +23,4 @@ export class ContextHttpClient {
|
|
|
23
23
|
return await this.curl(url, options);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dF9odHRwY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL2NvbnRleHRfaHR0cGNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLEdBQUcsQ0FBb0I7SUFDdkIsR0FBRyxDQUFxQjtJQUV4QixZQUFZLEdBQXNCO1FBQ2hDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFVLEdBQXlCLEVBQUUsT0FBa0M7UUFDL0UsT0FBTyxHQUFHO1lBQ1IsR0FBRyxPQUFPO1lBQ1YsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQztRQUNGLE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQVUsR0FBeUIsRUFBRSxPQUFrQztRQUNsRixPQUFPLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGIn0=
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { EggCoreContext } from '@eggjs/core';
|
|
2
1
|
import { HttpClient as RawHttpClient, RequestURL as HttpClientRequestURL, RequestOptions } from 'urllib';
|
|
3
|
-
import type { EggApplicationCore } from '../egg.js';
|
|
2
|
+
import type { EggApplicationCore, ContextDelegation } from '../egg.js';
|
|
4
3
|
export type { HttpClientResponse, RequestURL as HttpClientRequestURL, } from 'urllib';
|
|
5
4
|
export interface HttpClientRequestOptions extends RequestOptions {
|
|
6
|
-
ctx?:
|
|
5
|
+
ctx?: ContextDelegation;
|
|
7
6
|
tracer?: unknown;
|
|
8
7
|
}
|
|
9
8
|
export declare class HttpClient extends RawHttpClient {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpClient as RawHttpClient, } from 'urllib';
|
|
2
|
-
import ms from 'ms';
|
|
2
|
+
import { ms } from 'humanize-ms';
|
|
3
3
|
export class HttpClient extends RawHttpClient {
|
|
4
4
|
#app;
|
|
5
5
|
constructor(app) {
|
|
@@ -30,4 +30,4 @@ function normalizeConfig(app) {
|
|
|
30
30
|
config.request.timeout = ms(config.request.timeout);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9odHRwY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLElBQUksYUFBYSxHQUc1QixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBYWpDLE1BQU0sT0FBTyxVQUFXLFNBQVEsYUFBYTtJQUNsQyxJQUFJLENBQTRDO0lBRXpELFlBQVksR0FBdUI7UUFDakMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3JDLEtBQUssQ0FBQztZQUNKLFdBQVcsRUFBRSxNQUFNLENBQUMsT0FBTztTQUM1QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBVSxHQUF5QixFQUFFLE9BQWtDO1FBQ2xGLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4QixPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RELENBQUM7UUFDRCxPQUFPLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQVUsR0FBeUIsRUFBRSxPQUFrQztRQUMvRSxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBRUQsU0FBUyxlQUFlLENBQUMsR0FBdUI7SUFDOUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDckMsSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -9,12 +9,12 @@ export interface IMessenger extends EventEmitter {
|
|
|
9
9
|
broadcast(action: string, data?: unknown): IMessenger;
|
|
10
10
|
/**
|
|
11
11
|
* send message to the specified process
|
|
12
|
-
* @param {String}
|
|
12
|
+
* @param {String} workerId - the workerId of the receiver
|
|
13
13
|
* @param {String} action - message key
|
|
14
14
|
* @param {Object} data - message value
|
|
15
15
|
* @return {Messenger} this
|
|
16
16
|
*/
|
|
17
|
-
sendTo(
|
|
17
|
+
sendTo(workerId: string, action: string, data?: unknown): IMessenger;
|
|
18
18
|
/**
|
|
19
19
|
* send message to one app worker by random
|
|
20
20
|
* - if it's running in agent, it will send to one of app workers
|
|
@@ -6,6 +6,6 @@ import { Messenger as IPCMessenger } from './ipc.js';
|
|
|
6
6
|
export function create(egg) {
|
|
7
7
|
return egg.options.mode === 'single'
|
|
8
8
|
? new LocalMessenger(egg)
|
|
9
|
-
: new IPCMessenger();
|
|
9
|
+
: new IPCMessenger(egg);
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvbWVzc2VuZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLElBQUksY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLElBQUksWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBTXJEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxHQUF1QjtJQUM1QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVE7UUFDbEMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQztRQUN6QixDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQyJ9
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
import type { IMessenger } from './IMessenger.js';
|
|
3
|
+
import type { EggApplicationCore } from '../../egg.js';
|
|
3
4
|
/**
|
|
4
5
|
* Communication between app worker and agent worker by IPC channel
|
|
5
6
|
*/
|
|
6
7
|
export declare class Messenger extends EventEmitter implements IMessenger {
|
|
7
8
|
readonly pid: string;
|
|
9
|
+
readonly egg: EggApplicationCore;
|
|
8
10
|
opids: string[];
|
|
9
|
-
constructor();
|
|
11
|
+
constructor(egg: EggApplicationCore);
|
|
10
12
|
/**
|
|
11
13
|
* Send message to all agent and app
|
|
12
14
|
* @param {String} action - message key
|
|
@@ -16,12 +18,12 @@ export declare class Messenger extends EventEmitter implements IMessenger {
|
|
|
16
18
|
broadcast(action: string, data?: unknown): Messenger;
|
|
17
19
|
/**
|
|
18
20
|
* send message to the specified process
|
|
19
|
-
* @param {String}
|
|
21
|
+
* @param {String} workerId - the workerId of the receiver
|
|
20
22
|
* @param {String} action - message key
|
|
21
23
|
* @param {Object} data - message value
|
|
22
24
|
* @return {Messenger} this
|
|
23
25
|
*/
|
|
24
|
-
sendTo(
|
|
26
|
+
sendTo(workerId: string, action: string, data?: unknown): Messenger;
|
|
25
27
|
/**
|
|
26
28
|
* send message to one app worker by random
|
|
27
29
|
* - if it's running in agent, it will send to one of app workers
|
|
@@ -2,21 +2,24 @@ import { EventEmitter } from 'node:events';
|
|
|
2
2
|
import { debuglog } from 'node:util';
|
|
3
3
|
import workerThreads from 'node:worker_threads';
|
|
4
4
|
import { sendmessage } from 'sendmessage';
|
|
5
|
-
const debug = debuglog('egg
|
|
5
|
+
const debug = debuglog('egg/lib/core/messenger/ipc');
|
|
6
6
|
/**
|
|
7
7
|
* Communication between app worker and agent worker by IPC channel
|
|
8
8
|
*/
|
|
9
9
|
export class Messenger extends EventEmitter {
|
|
10
10
|
pid;
|
|
11
|
+
egg;
|
|
11
12
|
opids = [];
|
|
12
|
-
constructor() {
|
|
13
|
+
constructor(egg) {
|
|
13
14
|
super();
|
|
14
15
|
this.pid = String(process.pid);
|
|
16
|
+
this.egg = egg;
|
|
15
17
|
// pids of agent or app managed by master
|
|
16
18
|
// - retrieve app worker pids when it's an agent worker
|
|
17
19
|
// - retrieve agent worker pids when it's an app worker
|
|
18
|
-
this.on('egg-pids',
|
|
19
|
-
this.
|
|
20
|
+
this.on('egg-pids', workerIds => {
|
|
21
|
+
debug('[%s:%s] got egg-pids %j', this.egg.type, this.pid, workerIds);
|
|
22
|
+
this.opids = workerIds.map((workerId) => String(workerId));
|
|
20
23
|
});
|
|
21
24
|
this.onMessage = this.onMessage.bind(this);
|
|
22
25
|
process.on('message', this.onMessage);
|
|
@@ -31,28 +34,28 @@ export class Messenger extends EventEmitter {
|
|
|
31
34
|
* @return {Messenger} this
|
|
32
35
|
*/
|
|
33
36
|
broadcast(action, data) {
|
|
34
|
-
debug('[%s] broadcast %s with %j', this.pid, action, data);
|
|
37
|
+
debug('[%s:%s] broadcast %s with %j', this.egg.type, this.pid, action, data);
|
|
35
38
|
this.send(action, data, 'app');
|
|
36
39
|
this.send(action, data, 'agent');
|
|
37
40
|
return this;
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
43
|
* send message to the specified process
|
|
41
|
-
* @param {String}
|
|
44
|
+
* @param {String} workerId - the workerId of the receiver
|
|
42
45
|
* @param {String} action - message key
|
|
43
46
|
* @param {Object} data - message value
|
|
44
47
|
* @return {Messenger} this
|
|
45
48
|
*/
|
|
46
|
-
sendTo(
|
|
47
|
-
debug('[%s] send %s with %j to
|
|
49
|
+
sendTo(workerId, action, data) {
|
|
50
|
+
debug('[%s:%s] send %s with %j to workerId:%s', this.egg.type, this.pid, action, data, workerId);
|
|
48
51
|
sendmessage(process, {
|
|
49
52
|
action,
|
|
50
53
|
data,
|
|
51
54
|
/**
|
|
52
55
|
* @deprecated Keep compatible, please use receiverWorkerId instead
|
|
53
56
|
*/
|
|
54
|
-
receiverPid: String(
|
|
55
|
-
receiverWorkerId: String(
|
|
57
|
+
receiverPid: String(workerId),
|
|
58
|
+
receiverWorkerId: String(workerId),
|
|
56
59
|
});
|
|
57
60
|
return this;
|
|
58
61
|
}
|
|
@@ -65,13 +68,13 @@ export class Messenger extends EventEmitter {
|
|
|
65
68
|
* @return {Messenger} this
|
|
66
69
|
*/
|
|
67
70
|
sendRandom(action, data) {
|
|
68
|
-
/* istanbul ignore if */
|
|
69
71
|
if (this.opids.length === 0) {
|
|
72
|
+
debug('[%s:%s] no pids, ignore sendRandom %s with %j', this.egg.type, this.pid, action, data);
|
|
70
73
|
return this;
|
|
71
74
|
}
|
|
72
75
|
const index = Math.floor(Math.random() * this.opids.length);
|
|
73
|
-
const
|
|
74
|
-
this.sendTo(
|
|
76
|
+
const workerId = this.opids[index];
|
|
77
|
+
this.sendTo(workerId, action, data);
|
|
75
78
|
return this;
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
@@ -81,7 +84,7 @@ export class Messenger extends EventEmitter {
|
|
|
81
84
|
* @return {Messenger} this
|
|
82
85
|
*/
|
|
83
86
|
sendToApp(action, data) {
|
|
84
|
-
debug('[%s] send %s with %j to all app', this.pid, action, data);
|
|
87
|
+
debug('[%s:%s] send %s with %j to all app', this.egg.type, this.pid, action, data);
|
|
85
88
|
this.send(action, data, 'app');
|
|
86
89
|
return this;
|
|
87
90
|
}
|
|
@@ -92,7 +95,7 @@ export class Messenger extends EventEmitter {
|
|
|
92
95
|
* @return {Messenger} this
|
|
93
96
|
*/
|
|
94
97
|
sendToAgent(action, data) {
|
|
95
|
-
debug('[%s] send %s with %j to all agent', this.pid, action, data);
|
|
98
|
+
debug('[%s:%s] send %s with %j to all agent', this.egg.type, this.pid, action, data);
|
|
96
99
|
this.send(action, data, 'agent');
|
|
97
100
|
return this;
|
|
98
101
|
}
|
|
@@ -112,13 +115,16 @@ export class Messenger extends EventEmitter {
|
|
|
112
115
|
}
|
|
113
116
|
onMessage(message) {
|
|
114
117
|
if (typeof message?.action === 'string') {
|
|
115
|
-
debug('[%s] got message %s with %j, receiverWorkerId: %s', this.pid, message.action, message.data, message.receiverWorkerId ?? message.receiverPid);
|
|
118
|
+
debug('[%s:%s] got message %s with %j, receiverWorkerId: %s', this.egg.type, this.pid, message.action, message.data, message.receiverWorkerId ?? message.receiverPid);
|
|
116
119
|
this.emit(message.action, message.data);
|
|
117
120
|
}
|
|
121
|
+
else {
|
|
122
|
+
debug('[%s:%s] got an invalid message %j', this.egg.type, this.pid, message);
|
|
123
|
+
}
|
|
118
124
|
}
|
|
119
125
|
close() {
|
|
120
126
|
process.removeListener('message', this.onMessage);
|
|
121
127
|
this.removeAllListeners();
|
|
122
128
|
}
|
|
123
129
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL21lc3Nlbmdlci9pcGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJMUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFlBQVk7SUFDaEMsR0FBRyxDQUFTO0lBQ1osR0FBRyxDQUFxQjtJQUNqQyxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBRXJCLFlBQVksR0FBdUI7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZix5Q0FBeUM7UUFDekMsdURBQXVEO1FBQ3ZELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUM5QixLQUFLLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDaEMsYUFBYSxDQUFDLFVBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFjO1FBQ3RDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxJQUFjO1FBQ3JELEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakcsV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUNuQixNQUFNO1lBQ04sSUFBSTtZQUNKOztlQUVHO1lBQ0gsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDN0IsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUNuQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsVUFBVSxDQUFDLE1BQWMsRUFBRSxJQUFjO1FBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsS0FBSyxDQUFDLCtDQUErQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsTUFBYyxFQUFFLElBQWM7UUFDdEMsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBYztRQUN4QyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLE1BQWMsRUFBRSxJQUF5QixFQUFFLEVBQVc7UUFDekQsV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUNuQixNQUFNO1lBQ04sSUFBSTtZQUNKLEVBQUU7U0FDSCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBWTtRQUNwQixJQUFJLE9BQU8sT0FBTyxFQUFFLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsc0RBQXNELEVBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9FLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBT0YifQ==
|
|
@@ -19,12 +19,12 @@ export declare class Messenger extends EventEmitter implements IMessenger {
|
|
|
19
19
|
* send message to the specified process
|
|
20
20
|
* Notice: in single process mode, it only can send to self process,
|
|
21
21
|
* and it will send to both agent and app's messengers.
|
|
22
|
-
* @param {String}
|
|
22
|
+
* @param {String} workerId - the workerId of the receiver
|
|
23
23
|
* @param {String} action - message key
|
|
24
24
|
* @param {Object} data - message value
|
|
25
25
|
* @return {Messenger} this
|
|
26
26
|
*/
|
|
27
|
-
sendTo(
|
|
27
|
+
sendTo(workerId: string, action: string, data?: unknown): Messenger;
|
|
28
28
|
/**
|
|
29
29
|
* send message to one worker by random
|
|
30
30
|
* Notice: in single process mode, we only start one agent worker and one app worker
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { debuglog } from 'node:util';
|
|
2
2
|
import EventEmitter from 'node:events';
|
|
3
|
-
const debug = debuglog('egg
|
|
3
|
+
const debug = debuglog('egg/lib/core/messenger/local');
|
|
4
4
|
/**
|
|
5
5
|
* Communication between app worker and agent worker with EventEmitter
|
|
6
6
|
*/
|
|
@@ -19,7 +19,7 @@ export class Messenger extends EventEmitter {
|
|
|
19
19
|
* @return {Messenger} this
|
|
20
20
|
*/
|
|
21
21
|
broadcast(action, data) {
|
|
22
|
-
debug('[%s] broadcast %s with %j', this.pid, action, data);
|
|
22
|
+
debug('[%s:%s] broadcast %s with %j', this.egg.type, this.pid, action, data);
|
|
23
23
|
this.send(action, data, 'both');
|
|
24
24
|
return this;
|
|
25
25
|
}
|
|
@@ -27,14 +27,14 @@ export class Messenger extends EventEmitter {
|
|
|
27
27
|
* send message to the specified process
|
|
28
28
|
* Notice: in single process mode, it only can send to self process,
|
|
29
29
|
* and it will send to both agent and app's messengers.
|
|
30
|
-
* @param {String}
|
|
30
|
+
* @param {String} workerId - the workerId of the receiver
|
|
31
31
|
* @param {String} action - message key
|
|
32
32
|
* @param {Object} data - message value
|
|
33
33
|
* @return {Messenger} this
|
|
34
34
|
*/
|
|
35
|
-
sendTo(
|
|
36
|
-
debug('[%s] send %s with %j to %s', this.pid, action, data,
|
|
37
|
-
if (String(
|
|
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) {
|
|
38
38
|
return this;
|
|
39
39
|
}
|
|
40
40
|
this.send(action, data, 'both');
|
|
@@ -50,7 +50,7 @@ export class Messenger extends EventEmitter {
|
|
|
50
50
|
* @return {Messenger} this
|
|
51
51
|
*/
|
|
52
52
|
sendRandom(action, data) {
|
|
53
|
-
debug('[%s] send %s with %j to opposite', this.pid, action, data);
|
|
53
|
+
debug('[%s:%s] send %s with %j to opposite', this.egg.type, this.pid, action, data);
|
|
54
54
|
this.send(action, data, 'opposite');
|
|
55
55
|
return this;
|
|
56
56
|
}
|
|
@@ -61,7 +61,7 @@ export class Messenger extends EventEmitter {
|
|
|
61
61
|
* @return {Messenger} this
|
|
62
62
|
*/
|
|
63
63
|
sendToApp(action, data) {
|
|
64
|
-
debug('[%s] send %s with %j to all app', this.pid, action, data);
|
|
64
|
+
debug('[%s:%s] send %s with %j to all app', this.egg.type, this.pid, action, data);
|
|
65
65
|
this.send(action, data, 'application');
|
|
66
66
|
return this;
|
|
67
67
|
}
|
|
@@ -72,7 +72,7 @@ export class Messenger extends EventEmitter {
|
|
|
72
72
|
* @return {Messenger} this
|
|
73
73
|
*/
|
|
74
74
|
sendToAgent(action, data) {
|
|
75
|
-
debug('[%s] send %s with %j to all agent', this.pid, action, data);
|
|
75
|
+
debug('[%s:%s] send %s with %j to all agent', this.egg.type, this.pid, action, data);
|
|
76
76
|
this.send(action, data, 'agent');
|
|
77
77
|
return this;
|
|
78
78
|
}
|
|
@@ -116,12 +116,15 @@ export class Messenger extends EventEmitter {
|
|
|
116
116
|
}
|
|
117
117
|
onMessage(message) {
|
|
118
118
|
if (typeof message?.action === 'string') {
|
|
119
|
-
debug('[%s] got message %s with %j', this.pid, message.action, message.data);
|
|
119
|
+
debug('[%s:%s] got message %s with %j', this.egg.type, this.pid, message.action, message.data);
|
|
120
120
|
this.emit(message.action, message.data);
|
|
121
121
|
}
|
|
122
|
+
else {
|
|
123
|
+
debug('[%s:%s] got an invalid message %j', this.egg.type, this.pid, message);
|
|
124
|
+
}
|
|
122
125
|
}
|
|
123
126
|
close() {
|
|
124
127
|
this.removeAllListeners();
|
|
125
128
|
}
|
|
126
129
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvbWVzc2VuZ2VyL2xvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxZQUFZLE1BQU0sYUFBYSxDQUFDO0FBSXZDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBRXZEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxZQUFZO0lBQ2hDLEdBQUcsQ0FBUztJQUNaLEdBQUcsQ0FBcUI7SUFFakMsWUFBWSxHQUF1QjtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBYztRQUN0QyxLQUFLLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLFFBQWdCLEVBQUUsTUFBYyxFQUFFLElBQWM7UUFDckQsS0FBSyxDQUFDLCtCQUErQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RixJQUFJLE1BQU0sQ0FBQyxR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
|
package/dist/esm/lib/egg.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type IncomingMessage, type ServerResponse } from 'node:http';
|
|
2
|
-
import {
|
|
2
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
|
+
import { EggCore, Request as EggCoreRequest, Response as EggCoreResponse, Router } from '@eggjs/core';
|
|
4
|
+
import type { EggCoreOptions, Next, MiddlewareFunc as EggCoreMiddlewareFunc, ILifecycleBoot } from '@eggjs/core';
|
|
3
5
|
import { EggContextLogger as ContextLogger, EggLoggers, EggLogger } from 'egg-logger';
|
|
4
6
|
import { Cookies as ContextCookies } from '@eggjs/cookies';
|
|
5
7
|
import type { Agent } from './agent.js';
|
|
6
8
|
import type { Application } from './application.js';
|
|
9
|
+
import Context, { type ContextDelegation } from '../app/extend/context.js';
|
|
7
10
|
import type { EggAppConfig } from './type.js';
|
|
8
11
|
import { IMessenger } from './core/messenger/index.js';
|
|
9
12
|
import { ContextHttpClient } from './core/context_httpclient.js';
|
|
@@ -12,25 +15,27 @@ import { type SingletonCreateMethod } from './core/singleton.js';
|
|
|
12
15
|
import { BaseContextClass } from './core/base_context_class.js';
|
|
13
16
|
import { BaseHookClass } from './core/base_hook_class.js';
|
|
14
17
|
import type { EggApplicationLoader } from './loader/index.js';
|
|
18
|
+
import './egg.types.js';
|
|
15
19
|
declare const EGG_PATH: unique symbol;
|
|
16
20
|
export interface EggApplicationCoreOptions extends Omit<EggCoreOptions, 'baseDir'> {
|
|
17
21
|
mode?: 'cluster' | 'single';
|
|
18
22
|
clusterPort?: number;
|
|
19
23
|
baseDir?: string;
|
|
20
24
|
}
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*/
|
|
32
|
-
performanceStarttime: number;
|
|
25
|
+
export { Context, Router, EggLogger, };
|
|
26
|
+
export declare class Request extends EggCoreRequest {
|
|
27
|
+
app: EggCore;
|
|
28
|
+
response: Response;
|
|
29
|
+
ctx: ContextDelegation;
|
|
30
|
+
}
|
|
31
|
+
export declare class Response extends EggCoreResponse {
|
|
32
|
+
app: EggCore;
|
|
33
|
+
request: Request;
|
|
34
|
+
ctx: ContextDelegation;
|
|
33
35
|
}
|
|
36
|
+
export type { ContextDelegation, ILifecycleBoot, Next, };
|
|
37
|
+
export type EggContext = ContextDelegation;
|
|
38
|
+
export type MiddlewareFunc<T extends ContextDelegation = ContextDelegation> = EggCoreMiddlewareFunc<T>;
|
|
34
39
|
/**
|
|
35
40
|
* Based on koa's Application
|
|
36
41
|
* @see https://github.com/eggjs/egg-core
|
|
@@ -39,6 +44,7 @@ export interface EggContext extends EggCoreContext {
|
|
|
39
44
|
*/
|
|
40
45
|
export declare class EggApplicationCore extends EggCore {
|
|
41
46
|
#private;
|
|
47
|
+
ctxStorage: AsyncLocalStorage<ContextDelegation>;
|
|
42
48
|
ContextCookies: typeof ContextCookies;
|
|
43
49
|
ContextLogger: typeof ContextLogger;
|
|
44
50
|
ContextHttpClient: typeof ContextHttpClient;
|
|
@@ -258,7 +264,7 @@ export declare class EggApplicationCore extends EggCore {
|
|
|
258
264
|
* @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
|
|
259
265
|
* @return {Context} context
|
|
260
266
|
*/
|
|
261
|
-
createAnonymousContext(req?: any):
|
|
267
|
+
createAnonymousContext(req?: any): EggContext;
|
|
262
268
|
/**
|
|
263
269
|
* Create egg context
|
|
264
270
|
* @function EggApplication#createContext
|
|
@@ -268,4 +274,3 @@ export declare class EggApplicationCore extends EggCore {
|
|
|
268
274
|
*/
|
|
269
275
|
createContext(req: IncomingMessage, res: ServerResponse): EggContext;
|
|
270
276
|
}
|
|
271
|
-
export {};
|
package/dist/esm/lib/egg.js
CHANGED
|
@@ -3,17 +3,17 @@ import path from 'node:path';
|
|
|
3
3
|
import fs from 'node:fs';
|
|
4
4
|
import http from 'node:http';
|
|
5
5
|
import inspector from 'node:inspector';
|
|
6
|
-
import {
|
|
7
|
-
import { EggCore } from '@eggjs/core';
|
|
6
|
+
import { EggCore, Request as EggCoreRequest, Response as EggCoreResponse, Router, } from '@eggjs/core';
|
|
8
7
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
9
8
|
// @ts-ignore
|
|
10
9
|
import createClusterClient, { close as closeClusterClient } from 'cluster-client';
|
|
11
10
|
import { extend } from 'extend2';
|
|
12
|
-
import { EggContextLogger as ContextLogger } from 'egg-logger';
|
|
11
|
+
import { EggContextLogger as ContextLogger, EggLogger } from 'egg-logger';
|
|
13
12
|
import { Cookies as ContextCookies } from '@eggjs/cookies';
|
|
14
13
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
15
14
|
// @ts-ignore
|
|
16
15
|
import CircularJSON from 'circular-json-for-egg';
|
|
16
|
+
import Context from '../app/extend/context.js';
|
|
17
17
|
import { create as createMessenger } from './core/messenger/index.js';
|
|
18
18
|
import { ContextHttpClient } from './core/context_httpclient.js';
|
|
19
19
|
import { HttpClient, } from './core/httpclient.js';
|
|
@@ -22,7 +22,15 @@ import { Singleton, } from './core/singleton.js';
|
|
|
22
22
|
import { convertObject } from './core/utils.js';
|
|
23
23
|
import { BaseContextClass } from './core/base_context_class.js';
|
|
24
24
|
import { BaseHookClass } from './core/base_hook_class.js';
|
|
25
|
+
import { getSourceDirname } from './utils.js';
|
|
26
|
+
import './egg.types.js';
|
|
25
27
|
const EGG_PATH = Symbol.for('egg#eggPath');
|
|
28
|
+
// export egg classes
|
|
29
|
+
export { Context, Router, EggLogger, };
|
|
30
|
+
export class Request extends EggCoreRequest {
|
|
31
|
+
}
|
|
32
|
+
export class Response extends EggCoreResponse {
|
|
33
|
+
}
|
|
26
34
|
/**
|
|
27
35
|
* Based on koa's Application
|
|
28
36
|
* @see https://github.com/eggjs/egg-core
|
|
@@ -345,7 +353,6 @@ export class EggApplicationCore extends EggCore {
|
|
|
345
353
|
if (!(err instanceof Error)) {
|
|
346
354
|
const newError = new Error(String(err));
|
|
347
355
|
// err maybe an object, try to copy the name, message and stack to the new error instance
|
|
348
|
-
/* istanbul ignore else */
|
|
349
356
|
if (err) {
|
|
350
357
|
if (err.name)
|
|
351
358
|
newError.name = err.name;
|
|
@@ -356,7 +363,6 @@ export class EggApplicationCore extends EggCore {
|
|
|
356
363
|
}
|
|
357
364
|
err = newError;
|
|
358
365
|
}
|
|
359
|
-
/* istanbul ignore else */
|
|
360
366
|
if (err.name === 'Error') {
|
|
361
367
|
err.name = 'unhandledRejectionError';
|
|
362
368
|
}
|
|
@@ -431,12 +437,7 @@ export class EggApplicationCore extends EggCore {
|
|
|
431
437
|
}
|
|
432
438
|
}
|
|
433
439
|
get [EGG_PATH]() {
|
|
434
|
-
|
|
435
|
-
return path.dirname(__dirname);
|
|
436
|
-
}
|
|
437
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
438
|
-
// @ts-ignore
|
|
439
|
-
return path.dirname(path.dirname(fileURLToPath(import.meta.url)));
|
|
440
|
+
return getSourceDirname();
|
|
440
441
|
}
|
|
441
442
|
#setupTimeoutTimer() {
|
|
442
443
|
const startTimeoutTimer = setTimeout(() => {
|
|
@@ -570,4 +571,4 @@ export class EggApplicationCore extends EggCore {
|
|
|
570
571
|
return context;
|
|
571
572
|
}
|
|
572
573
|
}
|
|
573
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lZ2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekIsT0FBTyxJQUFtRCxNQUFNLFdBQVcsQ0FBQztBQUM1RSxPQUFPLFNBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQTRDLE1BQU0sYUFBYSxDQUFDO0FBQ2hGLDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2IsT0FBTyxtQkFBbUIsRUFBRSxFQUFFLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixJQUFJLGFBQWEsRUFBeUIsTUFBTSxZQUFZLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sSUFBSSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLE9BQU8sWUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBSWpELE9BQU8sRUFBRSxNQUFNLElBQUksZUFBZSxFQUFjLE1BQU0sMkJBQTJCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUNMLFVBQVUsR0FDWCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsU0FBUyxHQUNWLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEs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
|
|
574
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lZ2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekIsT0FBTyxJQUFtRCxNQUFNLFdBQVcsQ0FBQztBQUM1RSxPQUFPLFNBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsT0FBTyxFQUNQLE9BQU8sSUFBSSxjQUFjLEVBQ3pCLFFBQVEsSUFBSSxlQUFlLEVBQzNCLE1BQU0sR0FDUCxNQUFNLGFBQWEsQ0FBQztBQU1yQiw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLE9BQU8sbUJBQW1CLEVBQUUsRUFBRSxLQUFLLElBQUksa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxhQUFhLEVBQWMsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLElBQUksY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsNkRBQTZEO0FBQzdELGFBQWE7QUFDYixPQUFPLFlBQVksTUFBTSx1QkFBdUIsQ0FBQztBQUdqRCxPQUFPLE9BQW1DLE1BQU0sMEJBQTBCLENBQUM7QUFFM0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxlQUFlLEVBQWMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsVUFBVSxHQUNYLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8s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
|