@eggjs/mock 7.0.0-beta.20 → 7.0.0-beta.21
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/app/extend/agent.d.ts +33 -38
- package/dist/app/extend/agent.js +46 -5
- package/dist/app/extend/application.d.ts +171 -5
- package/dist/app/extend/application.js +445 -9
- package/dist/app/middleware/cluster_app_mock.d.ts +2 -5
- package/dist/app/middleware/cluster_app_mock.js +99 -96
- package/dist/app.d.ts +5 -9
- package/dist/app.js +18 -17
- package/dist/bootstrap.d.ts +5 -15
- package/dist/bootstrap.js +13 -29
- package/dist/index.d.ts +77 -10
- package/dist/index.js +90 -22
- package/dist/inject_mocha.d.ts +1 -1
- package/dist/inject_mocha.js +35 -23
- package/dist/lib/agent_handler.d.ts +3 -10
- package/dist/lib/agent_handler.js +24 -9
- package/dist/lib/app.d.ts +3 -6
- package/dist/lib/app.js +291 -14
- package/dist/lib/app_handler.d.ts +5 -6
- package/dist/lib/app_handler.js +69 -21
- package/dist/lib/cluster.d.ts +121 -6
- package/dist/lib/cluster.js +340 -7
- package/dist/lib/context.d.ts +1 -4
- package/dist/lib/context.js +11 -3
- package/dist/lib/format_options.d.ts +2 -7
- package/dist/lib/format_options.js +93 -4
- package/dist/lib/inject_context.d.ts +1 -4
- package/dist/lib/inject_context.js +126 -22
- package/dist/lib/mock_agent.d.ts +4 -8
- package/dist/lib/mock_agent.js +45 -3
- package/dist/lib/mock_custom_loader.d.ts +1 -4
- package/dist/lib/mock_custom_loader.js +34 -3
- package/dist/lib/mock_http_server.d.ts +2 -6
- package/dist/lib/mock_http_server.js +18 -3
- package/dist/lib/mock_httpclient.d.ts +36 -2
- package/dist/lib/mock_httpclient.js +146 -4
- package/dist/lib/parallel/agent.d.ts +20 -5
- package/dist/lib/parallel/agent.js +117 -8
- package/dist/lib/parallel/app.d.ts +19 -24
- package/dist/lib/parallel/app.js +111 -9
- package/dist/lib/parallel/util.d.ts +3 -2
- package/dist/lib/parallel/util.js +66 -4
- package/dist/lib/prerequire.d.ts +1 -1
- package/dist/lib/prerequire.js +25 -1
- package/dist/lib/request_call_function.d.ts +1 -1
- package/dist/lib/request_call_function.js +47 -34
- package/dist/lib/restore.d.ts +1 -2
- package/dist/lib/restore.js +13 -9
- package/dist/lib/start-cluster.d.ts +2 -1
- package/dist/lib/start-cluster.js +14 -15
- package/dist/lib/supertest.d.ts +11 -2
- package/dist/lib/supertest.js +40 -5
- package/dist/lib/tmp/empty.d.ts +1 -1
- package/dist/lib/tmp/empty.js +2 -1
- package/dist/lib/types.d.ts +72 -3
- package/dist/lib/types.js +2 -3
- package/dist/lib/utils.d.ts +8 -11
- package/dist/lib/utils.js +69 -3
- package/dist/register.d.ts +7 -11
- package/dist/register.js +41 -55
- package/package.json +7 -7
- package/dist/agent-BKYkjoCx.js +0 -111
- package/dist/agent-CHCe8tnW.d.ts +0 -24
- package/dist/agent-DZ_fHoxJ.js +0 -48
- package/dist/agent_handler-DeUtoRVT.js +0 -26
- package/dist/app-6Bn3F5Uw.js +0 -252
- package/dist/app-CoypamK1.js +0 -99
- package/dist/app-l47a-gqT.d.ts +0 -7
- package/dist/app_handler-CkiK6fyC.js +0 -55
- package/dist/app_handler-Gp5J9X-v.d.ts +0 -9
- package/dist/application-BPpvw5dg.d.ts +0 -175
- package/dist/application-LrKwuOKn.js +0 -385
- package/dist/cluster-CA_hr9eV.js +0 -283
- package/dist/cluster-RTfUwmUd.d.ts +0 -126
- package/dist/context-BIduDy1M.js +0 -10
- package/dist/format_options-LRnReKde.js +0 -65
- package/dist/index-BtBMDZg8.d.ts +0 -78
- package/dist/inject_context-BxpcF-ds.js +0 -106
- package/dist/inject_mocha-BVf8v6El.js +0 -38
- package/dist/inject_mocha-Daf1Aj8M.d.ts +0 -1
- package/dist/mock_agent-CxT7Q0_N.js +0 -45
- package/dist/mock_custom_loader-f_tHRojG.js +0 -35
- package/dist/mock_http_server-De0r07gr.js +0 -17
- package/dist/mock_httpclient-1EgQkMxi.d.ts +0 -40
- package/dist/mock_httpclient-B6UVI7GS.js +0 -110
- package/dist/restore-BL0cE0KG.d.ts +0 -4
- package/dist/restore-CVQYXquh.js +0 -16
- package/dist/src-D22EjdGo.js +0 -47
- package/dist/supertest-BIds28yL.d.ts +0 -16
- package/dist/supertest-Cg412Los.js +0 -39
- package/dist/types-CPNMyF89.js +0 -1
- package/dist/types-CjZ-JeCo.d.ts +0 -75
- package/dist/typings/index.d.ts +0 -1
- package/dist/util-1xYBaaoh.d.ts +0 -6
- package/dist/util-BpppqTXv.js +0 -59
- package/dist/utils-MhP_Krx1.js +0 -40
|
@@ -1,8 +1,117 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { Base } from 'sdk-base';
|
|
4
|
+
import { detectPort } from 'detect-port';
|
|
5
|
+
import { importModule } from '@eggjs/utils';
|
|
6
|
+
import { context } from "../context.js";
|
|
7
|
+
import { formatOptions } from "../format_options.js";
|
|
8
|
+
import { sleep, rimraf } from "../utils.js";
|
|
9
|
+
import { setCustomLoader } from "../mock_custom_loader.js";
|
|
10
|
+
import { APP_INIT } from "./util.js";
|
|
11
|
+
const debug = debuglog('egg/mock/lib/parallel/agent');
|
|
12
|
+
export class MockAgent extends Base {
|
|
13
|
+
baseDir;
|
|
14
|
+
[APP_INIT] = false;
|
|
15
|
+
#initOnListeners = new Set();
|
|
16
|
+
#initOnceListeners = new Set();
|
|
17
|
+
_instance;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super({ initMethod: '_init' });
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.baseDir = this.options.baseDir;
|
|
22
|
+
}
|
|
23
|
+
async _init() {
|
|
24
|
+
if (this.options.beforeInit) {
|
|
25
|
+
await this.options.beforeInit(this);
|
|
26
|
+
delete this.options.beforeInit;
|
|
27
|
+
}
|
|
28
|
+
if (this.options.clean !== false) {
|
|
29
|
+
const logDir = path.join(this.options.baseDir, 'logs');
|
|
30
|
+
try {
|
|
31
|
+
await rimraf(logDir);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
console.error(`remove log dir ${logDir} failed: ${err.stack}`);
|
|
35
|
+
}
|
|
36
|
+
const runDir = path.join(this.options.baseDir, 'run');
|
|
37
|
+
try {
|
|
38
|
+
await rimraf(runDir);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.error(`remove run dir ${runDir} failed: ${err.stack}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this.options.clusterPort = await detectPort();
|
|
45
|
+
process.env.CLUSTER_PORT = String(this.options.clusterPort);
|
|
46
|
+
debug('get clusterPort %s', this.options.clusterPort);
|
|
47
|
+
const { Agent } = await importModule(this.options.framework);
|
|
48
|
+
const agent = (this._instance = new Agent({ ...this.options }));
|
|
49
|
+
// egg-mock plugin need to override egg context
|
|
50
|
+
Object.assign(agent.context, context);
|
|
51
|
+
setCustomLoader(agent);
|
|
52
|
+
debug('agent instantiate');
|
|
53
|
+
this[APP_INIT] = true;
|
|
54
|
+
debug('this[APP_INIT] = true');
|
|
55
|
+
this.#bindEvents();
|
|
56
|
+
await agent.ready();
|
|
57
|
+
const msg = {
|
|
58
|
+
action: 'egg-ready',
|
|
59
|
+
data: this.options,
|
|
60
|
+
};
|
|
61
|
+
agent.messenger.onMessage(msg);
|
|
62
|
+
debug('agent ready');
|
|
63
|
+
}
|
|
64
|
+
#bindEvents() {
|
|
65
|
+
debug('bind cache events to agent');
|
|
66
|
+
for (const args of this.#initOnListeners) {
|
|
67
|
+
debug('on(%s), use cache and pass to agent', args);
|
|
68
|
+
this._instance.on(args[0], args[1]);
|
|
69
|
+
this.removeListener(args[0], args[1]);
|
|
70
|
+
}
|
|
71
|
+
for (const args of this.#initOnceListeners) {
|
|
72
|
+
debug('once(%s), use cache and pass to agent', args);
|
|
73
|
+
this._instance.once(args[0], args[1]);
|
|
74
|
+
this.removeListener(args[0], args[1]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
on(...args) {
|
|
78
|
+
if (this[APP_INIT]) {
|
|
79
|
+
debug('on(%s), pass to agent', args);
|
|
80
|
+
this._instance.on(args[0], args[1]);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
debug('on(%s), cache it because agent has not init', args);
|
|
84
|
+
this.#initOnListeners.add(args);
|
|
85
|
+
super.on(args[0], args[1]);
|
|
86
|
+
}
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
once(...args) {
|
|
90
|
+
if (this[APP_INIT]) {
|
|
91
|
+
debug('once(%s), pass to agent', args);
|
|
92
|
+
this._instance.once(args[0], args[1]);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
debug('once(%s), cache it because agent has not init', args);
|
|
96
|
+
this.#initOnceListeners.add(args);
|
|
97
|
+
super.on(args[0], args[1]);
|
|
98
|
+
}
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* close agent
|
|
103
|
+
*/
|
|
104
|
+
async _close() {
|
|
105
|
+
if (this._instance) {
|
|
106
|
+
await this._instance.close();
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// when agent init throws an exception, must wait for agent quit gracefully
|
|
110
|
+
await sleep(200);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export function createAgent(options) {
|
|
115
|
+
return new MockAgent(formatOptions(options));
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BhcmFsbGVsL2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBRXRELE1BQU0sT0FBTyxTQUFVLFNBQVEsSUFBSTtJQUVqQyxPQUFPLENBQVM7SUFDaEIsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbkIsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQztJQUNwQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBQ3RDLFNBQVMsQ0FBVztJQUVwQixZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8s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
|
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* close app
|
|
20
|
-
*/
|
|
21
|
-
_close(): Promise<void>;
|
|
1
|
+
import { Base } from 'sdk-base';
|
|
2
|
+
import { Application as EggApplication } from 'egg';
|
|
3
|
+
import type { MockOptions, MockApplicationOptions } from '../types.ts';
|
|
4
|
+
import { APP_INIT } from './util.ts';
|
|
5
|
+
export declare class MockParallelApplication extends Base {
|
|
6
|
+
#private;
|
|
7
|
+
options: MockApplicationOptions;
|
|
8
|
+
baseDir: string;
|
|
9
|
+
[APP_INIT]: boolean;
|
|
10
|
+
_instance: EggApplication;
|
|
11
|
+
constructor(options: MockApplicationOptions);
|
|
12
|
+
_init(): Promise<void>;
|
|
13
|
+
on(...args: any[]): this;
|
|
14
|
+
once(...args: any[]): this;
|
|
15
|
+
/**
|
|
16
|
+
* close app
|
|
17
|
+
*/
|
|
18
|
+
_close(): Promise<void>;
|
|
22
19
|
}
|
|
23
|
-
declare function createApp(initOptions: MockOptions): any;
|
|
24
|
-
//#endregion
|
|
25
|
-
export { MockParallelApplication, createApp };
|
|
20
|
+
export declare function createApp(initOptions: MockOptions): any;
|
package/dist/lib/parallel/app.js
CHANGED
|
@@ -1,9 +1,111 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import "
|
|
6
|
-
import "
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
import { Base } from 'sdk-base';
|
|
3
|
+
import { importModule } from '@eggjs/utils';
|
|
4
|
+
import { Application as EggApplication } from 'egg';
|
|
5
|
+
import { context } from "../context.js";
|
|
6
|
+
import { formatOptions } from "../format_options.js";
|
|
7
|
+
import { sleep } from "../utils.js";
|
|
8
|
+
import { setCustomLoader } from "../mock_custom_loader.js";
|
|
9
|
+
import { createServer } from "../mock_http_server.js";
|
|
10
|
+
import { proxyApp, APP_INIT } from "./util.js";
|
|
11
|
+
const debug = debuglog('egg/mock/lib/parallel/app');
|
|
12
|
+
export class MockParallelApplication extends Base {
|
|
13
|
+
baseDir;
|
|
14
|
+
[APP_INIT] = false;
|
|
15
|
+
#initOnListeners = new Set();
|
|
16
|
+
#initOnceListeners = new Set();
|
|
17
|
+
_instance;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super({ initMethod: '_init' });
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.baseDir = options.baseDir;
|
|
22
|
+
}
|
|
23
|
+
async _init() {
|
|
24
|
+
if (this.options.beforeInit) {
|
|
25
|
+
await this.options.beforeInit(this);
|
|
26
|
+
delete this.options.beforeInit;
|
|
27
|
+
}
|
|
28
|
+
if (!this.options.clusterPort) {
|
|
29
|
+
this.options.clusterPort = parseInt(process.env.CLUSTER_PORT);
|
|
30
|
+
}
|
|
31
|
+
if (!this.options.clusterPort) {
|
|
32
|
+
throw new Error('cannot get env.CLUSTER_PORT, parallel run fail');
|
|
33
|
+
}
|
|
34
|
+
debug('get clusterPort %s', this.options.clusterPort);
|
|
35
|
+
const { Application } = await importModule(this.options.framework);
|
|
36
|
+
const app = (this._instance = new Application({ ...this.options }));
|
|
37
|
+
// egg-mock plugin need to override egg context
|
|
38
|
+
Object.assign(app.context, context);
|
|
39
|
+
setCustomLoader(app);
|
|
40
|
+
debug('app instantiate');
|
|
41
|
+
this[APP_INIT] = true;
|
|
42
|
+
debug('this[APP_INIT] = true');
|
|
43
|
+
this.#bindEvents();
|
|
44
|
+
debug('http server instantiate');
|
|
45
|
+
createServer(app);
|
|
46
|
+
await app.ready();
|
|
47
|
+
const msg = {
|
|
48
|
+
action: 'egg-ready',
|
|
49
|
+
data: this.options,
|
|
50
|
+
};
|
|
51
|
+
app.messenger.onMessage(msg);
|
|
52
|
+
debug('app ready');
|
|
53
|
+
}
|
|
54
|
+
#bindEvents() {
|
|
55
|
+
for (const args of this.#initOnListeners) {
|
|
56
|
+
debug('on(%s), use cache and pass to app', args);
|
|
57
|
+
this._instance.on(args[0], args[1]);
|
|
58
|
+
this.removeListener(args[0], args[1]);
|
|
59
|
+
}
|
|
60
|
+
for (const args of this.#initOnceListeners) {
|
|
61
|
+
debug('once(%s), use cache and pass to app', args);
|
|
62
|
+
this._instance.once(args[0], args[1]);
|
|
63
|
+
this.removeListener(args[0], args[1]);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
on(...args) {
|
|
67
|
+
if (this[APP_INIT]) {
|
|
68
|
+
debug('on(%s), pass to app', args);
|
|
69
|
+
this._instance.on(args[0], args[1]);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
debug('on(%s), cache it because app has not init', args);
|
|
73
|
+
if (this.#initOnListeners) {
|
|
74
|
+
this.#initOnListeners.add(args);
|
|
75
|
+
}
|
|
76
|
+
super.on(args[0], args[1]);
|
|
77
|
+
}
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
once(...args) {
|
|
81
|
+
if (this[APP_INIT]) {
|
|
82
|
+
debug('once(%s), pass to app', args);
|
|
83
|
+
this._instance.once(args[0], args[1]);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
debug('once(%s), cache it because app has not init', args);
|
|
87
|
+
if (this.#initOnceListeners) {
|
|
88
|
+
this.#initOnceListeners.add(args);
|
|
89
|
+
}
|
|
90
|
+
super.on(args[0], args[1]);
|
|
91
|
+
}
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* close app
|
|
96
|
+
*/
|
|
97
|
+
async _close() {
|
|
98
|
+
if (this._instance) {
|
|
99
|
+
await this._instance.close();
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// when app init throws an exception, must wait for app quit gracefully
|
|
103
|
+
await sleep(200);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export function createApp(initOptions) {
|
|
108
|
+
const app = new MockParallelApplication(formatOptions(initOptions));
|
|
109
|
+
return proxyApp(app);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9wYXJhbGxlbC9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsSUFBSSxjQUFjLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRS9DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXBELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxJQUFJO0lBRS9DLE9BQU8sQ0FBUztJQUNoQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuQixnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBQ3BDLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFTLENBQUM7SUFDdEMsU0FBUyxDQUFpQjtJQUUxQixZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFhLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxLQUFLLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQTJDLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFM0csTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXBFLCtDQUErQztRQUMvQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXJCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2pDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQixNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVsQixNQUFNLEdBQUcsR0FBRztZQUNWLE1BQU0sRUFBRSxXQUFXO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTztTQUNuQixDQUFDO1FBQ0QsR0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1QsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNDLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxFQUFFLENBQUMsR0FBRyxJQUFXO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLDJDQUEyQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbkIsS0FBSyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyw2Q0FBNkMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLHVFQUF1RTtZQUN2RSxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxXQUF3QjtJQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMifQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
export declare const MOCK_APP_METHOD: string[];
|
|
2
|
+
export declare const APP_INIT: unique symbol;
|
|
3
|
+
export declare function proxyApp(app: any): any;
|
|
@@ -1,4 +1,66 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
import { getProperty } from "../utils.js";
|
|
3
|
+
const debug = debuglog('egg/mock/lib/parallel/util');
|
|
4
|
+
export const MOCK_APP_METHOD = ['ready', 'isClosed', 'closed', 'close', 'on', 'once'];
|
|
5
|
+
export const APP_INIT = Symbol('appInit');
|
|
6
|
+
export function proxyApp(app) {
|
|
7
|
+
const proxyApp = new Proxy(app, {
|
|
8
|
+
get(target, prop) {
|
|
9
|
+
// don't delegate properties on MockAgent
|
|
10
|
+
if (MOCK_APP_METHOD.includes(prop)) {
|
|
11
|
+
return getProperty(target, prop);
|
|
12
|
+
}
|
|
13
|
+
if (!target[APP_INIT])
|
|
14
|
+
throw new Error(`can't get ${prop} before ready`);
|
|
15
|
+
// it's asynchronous when agent and app are loading,
|
|
16
|
+
// so should get the properties after loader ready
|
|
17
|
+
debug('proxy handler.get %s', prop);
|
|
18
|
+
return target._instance[prop];
|
|
19
|
+
},
|
|
20
|
+
set(target, prop, value) {
|
|
21
|
+
if (MOCK_APP_METHOD.includes(prop))
|
|
22
|
+
return true;
|
|
23
|
+
if (!target[APP_INIT])
|
|
24
|
+
throw new Error(`can't set ${prop} before ready`);
|
|
25
|
+
debug('proxy handler.set %s', prop);
|
|
26
|
+
target._instance[prop] = value;
|
|
27
|
+
return true;
|
|
28
|
+
},
|
|
29
|
+
defineProperty(target, prop, descriptor) {
|
|
30
|
+
// can't define properties on MockAgent
|
|
31
|
+
if (MOCK_APP_METHOD.includes(prop))
|
|
32
|
+
return true;
|
|
33
|
+
if (!target[APP_INIT])
|
|
34
|
+
throw new Error(`can't defineProperty ${prop} before ready`);
|
|
35
|
+
debug('proxy handler.defineProperty %s', prop);
|
|
36
|
+
Object.defineProperty(target._instance, prop, descriptor);
|
|
37
|
+
return true;
|
|
38
|
+
},
|
|
39
|
+
deleteProperty(target, prop) {
|
|
40
|
+
// can't delete properties on MockAgent
|
|
41
|
+
if (MOCK_APP_METHOD.includes(prop))
|
|
42
|
+
return true;
|
|
43
|
+
if (!target[APP_INIT])
|
|
44
|
+
throw new Error(`can't delete ${prop} before ready`);
|
|
45
|
+
debug('proxy handler.deleteProperty %s', prop);
|
|
46
|
+
delete target._instance[prop];
|
|
47
|
+
return true;
|
|
48
|
+
},
|
|
49
|
+
getOwnPropertyDescriptor(target, prop) {
|
|
50
|
+
if (MOCK_APP_METHOD.includes(prop))
|
|
51
|
+
return Object.getOwnPropertyDescriptor(target, prop);
|
|
52
|
+
if (!target[APP_INIT])
|
|
53
|
+
throw new Error(`can't getOwnPropertyDescriptor ${prop} before ready`);
|
|
54
|
+
debug('proxy handler.getOwnPropertyDescriptor %s', prop);
|
|
55
|
+
return Object.getOwnPropertyDescriptor(target._instance, prop);
|
|
56
|
+
},
|
|
57
|
+
getPrototypeOf(target) {
|
|
58
|
+
if (!target[APP_INIT])
|
|
59
|
+
throw new Error("can't getPrototypeOf before ready");
|
|
60
|
+
debug('proxy handler.getPrototypeOf %s');
|
|
61
|
+
return Object.getPrototypeOf(target._instance);
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
return proxyApp;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGFyYWxsZWwvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUV0RixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDOUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFZO1lBQ3RCLHlDQUF5QztZQUN6QyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxlQUFlLENBQUMsQ0FBQztZQUN6RSxvREFBb0Q7WUFDcEQsa0RBQWtEO1lBQ2xELEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBWSxFQUFFLEtBQUs7WUFDN0IsSUFBSSxlQUFl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
|
package/dist/lib/prerequire.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {};
|
package/dist/lib/prerequire.js
CHANGED
|
@@ -1 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
// const debug = require('util').debuglog('egg-mock/prerequire');
|
|
2
|
+
// const path = require('path');
|
|
3
|
+
// const { existsSync } = require('fs');
|
|
4
|
+
// const globby = require('globby');
|
|
5
|
+
export {};
|
|
6
|
+
// const cwd = process.cwd();
|
|
7
|
+
// const dirs = [];
|
|
8
|
+
// if (existsSync(path.join(cwd, 'app'))) {
|
|
9
|
+
// dirs.push('app/**/*.js');
|
|
10
|
+
// }
|
|
11
|
+
// // avoid Error: ENOENT: no such file or directory, scandir
|
|
12
|
+
// if (existsSync(path.join(cwd, 'config'))) {
|
|
13
|
+
// dirs.push('config/**/*.js');
|
|
14
|
+
// }
|
|
15
|
+
// const files = globby.sync(dirs, { cwd });
|
|
16
|
+
// for (const file of files) {
|
|
17
|
+
// const filepath = path.join(cwd, file);
|
|
18
|
+
// try {
|
|
19
|
+
// debug('%s prerequire %s', process.pid, filepath);
|
|
20
|
+
// require(filepath);
|
|
21
|
+
// } catch (err) {
|
|
22
|
+
// debug('prerequire error %s', err.message);
|
|
23
|
+
// }
|
|
24
|
+
// }
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVxdWlyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcHJlcmVxdWlyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpRUFBaUU7QUFDakUsZ0NBQWdDO0FBQ2hDLHdDQUF3QztBQUN4QyxvQ0FBb0M7O0FBRXBDLDZCQUE2QjtBQUM3QixtQkFBbUI7QUFDbkIsMkNBQTJDO0FBQzNDLDhCQUE4QjtBQUM5QixJQUFJO0FBQ0osNkRBQTZEO0FBQzdELDhDQUE4QztBQUM5QyxpQ0FBaUM7QUFDakMsSUFBSTtBQUNKLDRDQUE0QztBQUU1Qyw4QkFBOEI7QUFDOUIsMkNBQTJDO0FBQzNDLFVBQVU7QUFDVix3REFBd0Q7QUFDeEQseUJBQXlCO0FBQ3pCLG9CQUFvQjtBQUNwQixpREFBaUQ7QUFDakQsTUFBTTtBQUNOLElBQUkifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {};
|
|
@@ -1,37 +1,50 @@
|
|
|
1
|
-
import httpClient from
|
|
2
|
-
|
|
3
|
-
//#region src/lib/request_call_function.ts
|
|
1
|
+
import httpClient from 'urllib';
|
|
4
2
|
const { port, method, args, property, needResult } = JSON.parse(process.argv[2]);
|
|
5
3
|
const url = `http://127.0.0.1:${port}/__egg_mock_call_function`;
|
|
6
|
-
httpClient
|
|
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
|
-
|
|
4
|
+
httpClient
|
|
5
|
+
.request(url, {
|
|
6
|
+
method: 'POST',
|
|
7
|
+
data: {
|
|
8
|
+
method,
|
|
9
|
+
args,
|
|
10
|
+
property,
|
|
11
|
+
needResult,
|
|
12
|
+
},
|
|
13
|
+
contentType: 'json',
|
|
14
|
+
dataType: 'json',
|
|
15
|
+
})
|
|
16
|
+
.then(({ data }) => {
|
|
17
|
+
if (!data.success) {
|
|
18
|
+
// console.log('POST %s error, method: %s, args: %j, result data: %j',
|
|
19
|
+
// url, method, args, data);
|
|
20
|
+
if (data.error) {
|
|
21
|
+
console.error(data.error);
|
|
22
|
+
}
|
|
23
|
+
else if (data.message) {
|
|
24
|
+
const err = new Error(data.message);
|
|
25
|
+
err.stack = data.stack;
|
|
26
|
+
console.error(err);
|
|
27
|
+
}
|
|
28
|
+
process.exit(2);
|
|
29
|
+
}
|
|
30
|
+
if (data.result) {
|
|
31
|
+
console.log('%j', data.result);
|
|
32
|
+
}
|
|
33
|
+
process.exit(0);
|
|
34
|
+
})
|
|
35
|
+
.catch(err => {
|
|
36
|
+
// ignore ECONNREFUSED error on mockRestore
|
|
37
|
+
if (method === 'mockRestore' && err.message.includes('ECONNREFUSED')) {
|
|
38
|
+
process.exit(0);
|
|
39
|
+
}
|
|
40
|
+
console.error('POST %s error, method: %s, args: %j', url, method, args);
|
|
41
|
+
console.error(err.stack);
|
|
42
|
+
// ignore all error on mockRestore
|
|
43
|
+
if (method === 'mockRestore') {
|
|
44
|
+
process.exit(0);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
34
49
|
});
|
|
35
|
-
|
|
36
|
-
//#endregion
|
|
37
|
-
export { };
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdF9jYWxsX2Z1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9yZXF1ZXN0X2NhbGxfZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sUUFBUSxDQUFDO0FBRWhDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakYsTUFBTSxHQUFHLEdBQUcsb0JBQW9CLElBQUksMkJBQTJCLENBQUM7QUFFaEUsVUFBVTtLQUNQLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFDWixNQUFNLEVBQUUsTUFBTTtJQUNkLElBQUksRUFBRTtRQUNKLE1BQU07UUFDTixJQUFJO1FBQ0osUUFBUTtRQUNSLFVBQVU7S0FDWDtJQUNELFdBQVcsRUFBRSxNQUFNO0lBQ25CLFFBQVEsRUFBRSxNQUFNO0NBQ2pCLENBQUM7S0FDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7SUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixzRUFBc0U7UUFDdEUsOEJBQThCO1FBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQztLQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUNYLDJDQUEyQztJQUMzQyxJQUFJLE1BQU0sS0FBSyxhQUFhLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFekIsa0NBQWtDO0lBQ2xDLElBQUksTUFBTSxLQUFLLGFBQWEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyJ9
|
package/dist/lib/restore.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { restore };
|
|
1
|
+
export declare function restore(): Promise<void>;
|
package/dist/lib/restore.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import "
|
|
4
|
-
import "
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
import { restore as mmRestore } from 'mm';
|
|
3
|
+
import { restoreMockAgent } from "./mock_agent.js";
|
|
4
|
+
import { restore as clusterRestore } from "./cluster.js";
|
|
5
|
+
const debug = debuglog('egg/mock/lib/restore');
|
|
6
|
+
export async function restore() {
|
|
7
|
+
// keep mm.restore execute in the current event loop
|
|
8
|
+
mmRestore();
|
|
9
|
+
await clusterRestore();
|
|
10
|
+
await restoreMockAgent();
|
|
11
|
+
debug('restore all');
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxPQUFPLElBQUksU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLElBQUksY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTztJQUMzQixvREFBb0Q7SUFDcEQsU0FBUyxFQUFFLENBQUM7SUFDWixNQUFNLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztJQUN6QixLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDdkIsQ0FBQyJ9
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export {};
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import assert from
|
|
3
|
-
import { debuglog } from
|
|
4
|
-
import { importModule } from
|
|
5
|
-
import { isAsyncFunction } from
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
import assert from 'node:assert';
|
|
3
|
+
import { debuglog } from 'node:util';
|
|
4
|
+
import { importModule } from '@eggjs/utils';
|
|
5
|
+
import { isAsyncFunction } from 'is-type-of';
|
|
6
|
+
const debug = debuglog('egg/mock/lib/start-cluster');
|
|
7
|
+
// if (process.env.EGG_BIN_PREREQUIRE) {
|
|
8
|
+
// require('./prerequire');
|
|
9
|
+
// }
|
|
9
10
|
async function main() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
const options = JSON.parse(process.argv[2]);
|
|
12
|
+
debug('startCluster with options: %o', options);
|
|
13
|
+
const { startCluster } = await importModule(options.framework);
|
|
14
|
+
assert(isAsyncFunction(startCluster), `framework(${options.framework}) should export startCluster as an async function`);
|
|
15
|
+
await startCluster(options);
|
|
15
16
|
}
|
|
16
17
|
main();
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { };
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc3RhcnQtY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRXJELHdDQUF3QztBQUN4Qyw2QkFBNkI7QUFDN0IsSUFBSTtBQUVKLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sQ0FDSixlQUFlLENBQUMsWUFBWSxDQUFDLEVBQzdCLGFBQWEsT0FBTyxDQUFDLFNBQVMsbURBQW1ELENBQ2xGLENBQUM7SUFDRixNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMifQ==
|
package/dist/lib/supertest.d.ts
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { Request, Test } from '@eggjs/supertest';
|
|
2
|
+
/**
|
|
3
|
+
* Test against the given `app`,
|
|
4
|
+
* returning a new `Test`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class EggTestRequest extends Request {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(app: any);
|
|
9
|
+
protected _testRequest(method: string, url: string): Test;
|
|
10
|
+
}
|
|
11
|
+
export declare function request(app: any): EggTestRequest;
|