@eggjs/mock 7.0.0-beta.34 → 7.0.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.
Files changed (63) hide show
  1. package/dist/_virtual/rolldown_runtime.js +7 -0
  2. package/dist/app/extend/agent.d.ts +38 -34
  3. package/dist/app/extend/agent.js +48 -46
  4. package/dist/app/extend/application.d.ts +171 -167
  5. package/dist/app/extend/application.js +382 -442
  6. package/dist/app/middleware/cluster_app_mock.d.ts +5 -2
  7. package/dist/app/middleware/cluster_app_mock.js +95 -100
  8. package/dist/app.d.ts +9 -5
  9. package/dist/app.js +17 -18
  10. package/dist/bootstrap.d.ts +9 -5
  11. package/dist/bootstrap.js +11 -12
  12. package/dist/index.d.ts +20 -17
  13. package/dist/index.js +39 -78
  14. package/dist/inject_mocha.d.ts +1 -1
  15. package/dist/inject_mocha.js +27 -28
  16. package/dist/lib/agent_handler.d.ts +7 -3
  17. package/dist/lib/agent_handler.js +22 -20
  18. package/dist/lib/app.d.ts +7 -3
  19. package/dist/lib/app.js +246 -287
  20. package/dist/lib/app_handler.d.ts +9 -5
  21. package/dist/lib/app_handler.js +48 -61
  22. package/dist/lib/cluster.d.ts +122 -118
  23. package/dist/lib/cluster.js +278 -335
  24. package/dist/lib/context.d.ts +4 -1
  25. package/dist/lib/context.js +10 -11
  26. package/dist/lib/format_options.d.ts +9 -4
  27. package/dist/lib/format_options.js +60 -88
  28. package/dist/lib/inject_context.d.ts +8 -5
  29. package/dist/lib/inject_context.js +103 -123
  30. package/dist/lib/mock_agent.d.ts +8 -4
  31. package/dist/lib/mock_agent.js +42 -42
  32. package/dist/lib/mock_custom_loader.d.ts +4 -1
  33. package/dist/lib/mock_custom_loader.js +34 -33
  34. package/dist/lib/mock_http_server.d.ts +6 -2
  35. package/dist/lib/mock_http_server.js +16 -17
  36. package/dist/lib/mock_httpclient.d.ts +38 -34
  37. package/dist/lib/mock_httpclient.js +106 -142
  38. package/dist/lib/parallel/agent.d.ts +22 -18
  39. package/dist/lib/parallel/agent.js +106 -112
  40. package/dist/lib/parallel/app.d.ts +23 -19
  41. package/dist/lib/parallel/app.js +93 -106
  42. package/dist/lib/parallel/util.d.ts +5 -2
  43. package/dist/lib/parallel/util.js +56 -63
  44. package/dist/lib/prerequire.d.ts +1 -1
  45. package/dist/lib/prerequire.js +1 -25
  46. package/dist/lib/request_call_function.d.ts +1 -1
  47. package/dist/lib/request_call_function.js +34 -47
  48. package/dist/lib/restore.d.ts +4 -1
  49. package/dist/lib/restore.js +14 -11
  50. package/dist/lib/start-cluster.d.ts +1 -2
  51. package/dist/lib/start-cluster.js +15 -14
  52. package/dist/lib/supertest.d.ts +14 -9
  53. package/dist/lib/supertest.js +32 -36
  54. package/dist/lib/tmp/empty.d.ts +1 -1
  55. package/dist/lib/tmp/empty.js +1 -2
  56. package/dist/lib/types.d.ts +71 -67
  57. package/dist/lib/types.js +1 -2
  58. package/dist/lib/utils.d.ts +11 -8
  59. package/dist/lib/utils.js +34 -63
  60. package/dist/register.d.ts +11 -7
  61. package/dist/register.js +36 -40
  62. package/dist/typings/index.d.ts +1 -0
  63. package/package.json +36 -39
@@ -1,116 +1,110 @@
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';
1
+ import { rimraf, sleep } from "../utils.js";
6
2
  import { context } from "../context.js";
7
3
  import { formatOptions } from "../format_options.js";
8
- import { sleep, rimraf } from "../utils.js";
9
4
  import { setCustomLoader } from "../mock_custom_loader.js";
10
- const debug = debuglog('egg/mock/lib/parallel/agent');
11
- export class MockAgent extends Base {
12
- baseDir;
13
- __APP_INIT__ = false;
14
- #initOnListeners = new Set();
15
- #initOnceListeners = new Set();
16
- _instance;
17
- constructor(options) {
18
- super({ initMethod: '_init' });
19
- this.options = options;
20
- this.baseDir = this.options.baseDir;
21
- }
22
- async _init() {
23
- if (this.options.beforeInit) {
24
- await this.options.beforeInit(this);
25
- delete this.options.beforeInit;
26
- }
27
- if (this.options.clean !== false) {
28
- const logDir = path.join(this.options.baseDir, 'logs');
29
- try {
30
- await rimraf(logDir);
31
- }
32
- catch (err) {
33
- console.error(`remove log dir ${logDir} failed: ${err.stack}`);
34
- }
35
- const runDir = path.join(this.options.baseDir, 'run');
36
- try {
37
- await rimraf(runDir);
38
- }
39
- catch (err) {
40
- console.error(`remove run dir ${runDir} failed: ${err.stack}`);
41
- }
42
- }
43
- this.options.clusterPort = await detectPort();
44
- process.env.CLUSTER_PORT = String(this.options.clusterPort);
45
- debug('get clusterPort %s', this.options.clusterPort);
46
- const { Agent } = await importModule(this.options.framework);
47
- const agent = (this._instance = new Agent({ ...this.options }));
48
- // egg-mock plugin need to override egg context
49
- Object.assign(agent.context, context);
50
- setCustomLoader(agent);
51
- debug('agent instantiate');
52
- this.__APP_INIT__ = true;
53
- debug('this[APP_INIT] = true');
54
- this.#bindEvents();
55
- await agent.ready();
56
- const msg = {
57
- action: 'egg-ready',
58
- data: this.options,
59
- };
60
- agent.messenger.onMessage(msg);
61
- debug('agent ready');
62
- }
63
- #bindEvents() {
64
- debug('bind cache events to agent');
65
- for (const args of this.#initOnListeners) {
66
- debug('on(%s), use cache and pass to agent', args);
67
- this._instance.on(args[0], args[1]);
68
- this.removeListener(args[0], args[1]);
69
- }
70
- for (const args of this.#initOnceListeners) {
71
- debug('once(%s), use cache and pass to agent', args);
72
- this._instance.once(args[0], args[1]);
73
- this.removeListener(args[0], args[1]);
74
- }
75
- }
76
- on(...args) {
77
- if (this.__APP_INIT__) {
78
- debug('on(%s), pass to agent', args);
79
- this._instance.on(args[0], args[1]);
80
- }
81
- else {
82
- debug('on(%s), cache it because agent has not init', args);
83
- this.#initOnListeners.add(args);
84
- super.on(args[0], args[1]);
85
- }
86
- return this;
87
- }
88
- once(...args) {
89
- if (this.__APP_INIT__) {
90
- debug('once(%s), pass to agent', args);
91
- this._instance.once(args[0], args[1]);
92
- }
93
- else {
94
- debug('once(%s), cache it because agent has not init', args);
95
- this.#initOnceListeners.add(args);
96
- super.on(args[0], args[1]);
97
- }
98
- return this;
99
- }
100
- /**
101
- * close agent
102
- */
103
- async _close() {
104
- if (this._instance) {
105
- await this._instance.close();
106
- }
107
- else {
108
- // when agent init throws an exception, must wait for agent quit gracefully
109
- await sleep(200);
110
- }
111
- }
5
+ import path from "node:path";
6
+ import { debuglog } from "node:util";
7
+ import { importModule } from "@eggjs/utils";
8
+ import { detectPort } from "detect-port";
9
+ import { Base } from "sdk-base";
10
+
11
+ //#region src/lib/parallel/agent.ts
12
+ const debug = debuglog("egg/mock/lib/parallel/agent");
13
+ var MockAgent = class extends Base {
14
+ baseDir;
15
+ __APP_INIT__ = false;
16
+ #initOnListeners = /* @__PURE__ */ new Set();
17
+ #initOnceListeners = /* @__PURE__ */ new Set();
18
+ _instance;
19
+ constructor(options) {
20
+ super({ initMethod: "_init" });
21
+ this.options = options;
22
+ this.baseDir = this.options.baseDir;
23
+ }
24
+ async _init() {
25
+ if (this.options.beforeInit) {
26
+ await this.options.beforeInit(this);
27
+ delete this.options.beforeInit;
28
+ }
29
+ if (this.options.clean !== false) {
30
+ const logDir = path.join(this.options.baseDir, "logs");
31
+ try {
32
+ await rimraf(logDir);
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
+ } catch (err) {
40
+ console.error(`remove run dir ${runDir} failed: ${err.stack}`);
41
+ }
42
+ }
43
+ this.options.clusterPort = await detectPort();
44
+ process.env.CLUSTER_PORT = String(this.options.clusterPort);
45
+ debug("get clusterPort %s", this.options.clusterPort);
46
+ const { Agent } = await importModule(this.options.framework);
47
+ const agent = this._instance = new Agent({ ...this.options });
48
+ Object.assign(agent.context, context);
49
+ setCustomLoader(agent);
50
+ debug("agent instantiate");
51
+ this.__APP_INIT__ = true;
52
+ debug("this[APP_INIT] = true");
53
+ this.#bindEvents();
54
+ await agent.ready();
55
+ const msg = {
56
+ action: "egg-ready",
57
+ data: this.options
58
+ };
59
+ agent.messenger.onMessage(msg);
60
+ debug("agent ready");
61
+ }
62
+ #bindEvents() {
63
+ debug("bind cache events to agent");
64
+ for (const args of this.#initOnListeners) {
65
+ debug("on(%s), use cache and pass to agent", args);
66
+ this._instance.on(args[0], args[1]);
67
+ this.removeListener(args[0], args[1]);
68
+ }
69
+ for (const args of this.#initOnceListeners) {
70
+ debug("once(%s), use cache and pass to agent", args);
71
+ this._instance.once(args[0], args[1]);
72
+ this.removeListener(args[0], args[1]);
73
+ }
74
+ }
75
+ on(...args) {
76
+ if (this.__APP_INIT__) {
77
+ debug("on(%s), pass to agent", args);
78
+ this._instance.on(args[0], args[1]);
79
+ } else {
80
+ debug("on(%s), cache it because agent has not init", args);
81
+ this.#initOnListeners.add(args);
82
+ super.on(args[0], args[1]);
83
+ }
84
+ return this;
85
+ }
86
+ once(...args) {
87
+ if (this.__APP_INIT__) {
88
+ debug("once(%s), pass to agent", args);
89
+ this._instance.once(args[0], args[1]);
90
+ } else {
91
+ debug("once(%s), cache it because agent has not init", args);
92
+ this.#initOnceListeners.add(args);
93
+ super.on(args[0], args[1]);
94
+ }
95
+ return this;
96
+ }
97
+ /**
98
+ * close agent
99
+ */
100
+ async _close() {
101
+ if (this._instance) await this._instance.close();
102
+ else await sleep(200);
103
+ }
104
+ };
105
+ function createAgent(options) {
106
+ return new MockAgent(formatOptions(options));
112
107
  }
113
- export function createAgent(options) {
114
- return new MockAgent(formatOptions(options));
115
- }
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BhcmFsbGVsL2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUV0RCxNQUFNLE9BQU8sU0FBVSxTQUFRLElBQUk7SUFFakMsT0FBTyxDQUFTO0lBQ2hCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQztJQUNwQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBQ3RDLFNBQVMsQ0FBVztJQUVwQixZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1Qs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
108
+
109
+ //#endregion
110
+ export { MockAgent, createAgent };
@@ -1,20 +1,24 @@
1
- import { Base } from 'sdk-base';
2
- import { Application as EggApplication } from 'egg';
3
- import type { MockOptions, MockApplicationOptions } from '../types.ts';
4
- import { proxyApp } 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>;
1
+ import { MockApplicationOptions, MockOptions } from "../types.js";
2
+ import { proxyApp } from "./util.js";
3
+ import { Application } from "egg";
4
+ import { Base } from "sdk-base";
5
+
6
+ //#region src/lib/parallel/app.d.ts
7
+ declare class MockParallelApplication extends Base {
8
+ #private;
9
+ options: MockApplicationOptions;
10
+ baseDir: string;
11
+ __APP_INIT__: boolean;
12
+ _instance: Application;
13
+ constructor(options: MockApplicationOptions);
14
+ _init(): Promise<void>;
15
+ on(...args: any[]): this;
16
+ once(...args: any[]): this;
17
+ /**
18
+ * close app
19
+ */
20
+ _close(): Promise<void>;
19
21
  }
20
- export declare function createApp(initOptions: MockOptions): ReturnType<typeof proxyApp>;
22
+ declare function createApp(initOptions: MockOptions): ReturnType<typeof proxyApp>;
23
+ //#endregion
24
+ export { MockParallelApplication, createApp };
@@ -1,111 +1,98 @@
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';
1
+ import { createServer } from "../mock_http_server.js";
2
+ import { sleep } from "../utils.js";
5
3
  import { context } from "../context.js";
6
4
  import { formatOptions } from "../format_options.js";
7
- import { sleep } from "../utils.js";
8
5
  import { setCustomLoader } from "../mock_custom_loader.js";
9
- import { createServer } from "../mock_http_server.js";
10
6
  import { proxyApp } 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);
7
+ import { Application } from "egg";
8
+ import { debuglog } from "node:util";
9
+ import { importModule } from "@eggjs/utils";
10
+ import { Base } from "sdk-base";
11
+
12
+ //#region src/lib/parallel/app.ts
13
+ const debug = debuglog("egg/mock/lib/parallel/app");
14
+ var MockParallelApplication = class extends Base {
15
+ baseDir;
16
+ __APP_INIT__ = false;
17
+ #initOnListeners = /* @__PURE__ */ new Set();
18
+ #initOnceListeners = /* @__PURE__ */ new Set();
19
+ _instance;
20
+ constructor(options) {
21
+ super({ initMethod: "_init" });
22
+ this.options = options;
23
+ this.baseDir = options.baseDir;
24
+ }
25
+ async _init() {
26
+ if (this.options.beforeInit) {
27
+ await this.options.beforeInit(this);
28
+ delete this.options.beforeInit;
29
+ }
30
+ if (!this.options.clusterPort) this.options.clusterPort = parseInt(process.env.CLUSTER_PORT);
31
+ if (!this.options.clusterPort) throw new Error("cannot get env.CLUSTER_PORT, parallel run fail");
32
+ debug("get clusterPort %s", this.options.clusterPort);
33
+ const { Application: Application$1 } = await importModule(this.options.framework);
34
+ const app = this._instance = new Application$1({ ...this.options });
35
+ Object.assign(app.context, context);
36
+ setCustomLoader(app);
37
+ debug("app instantiate");
38
+ this.__APP_INIT__ = true;
39
+ debug("this[APP_INIT] = true");
40
+ this.#bindEvents();
41
+ debug("http server instantiate");
42
+ createServer(app);
43
+ await app.ready();
44
+ const msg = {
45
+ action: "egg-ready",
46
+ data: this.options
47
+ };
48
+ app.messenger.onMessage(msg);
49
+ debug("app ready");
50
+ }
51
+ #bindEvents() {
52
+ for (const args of this.#initOnListeners) {
53
+ debug("on(%s), use cache and pass to app", args);
54
+ this._instance.on(args[0], args[1]);
55
+ this.removeListener(args[0], args[1]);
56
+ }
57
+ for (const args of this.#initOnceListeners) {
58
+ debug("once(%s), use cache and pass to app", args);
59
+ this._instance.once(args[0], args[1]);
60
+ this.removeListener(args[0], args[1]);
61
+ }
62
+ }
63
+ on(...args) {
64
+ if (this.__APP_INIT__) {
65
+ debug("on(%s), pass to app", args);
66
+ this._instance.on(args[0], args[1]);
67
+ } else {
68
+ debug("on(%s), cache it because app has not init", args);
69
+ if (this.#initOnListeners) this.#initOnListeners.add(args);
70
+ super.on(args[0], args[1]);
71
+ }
72
+ return this;
73
+ }
74
+ once(...args) {
75
+ if (this.__APP_INIT__) {
76
+ debug("once(%s), pass to app", args);
77
+ this._instance.once(args[0], args[1]);
78
+ } else {
79
+ debug("once(%s), cache it because app has not init", args);
80
+ if (this.#initOnceListeners) this.#initOnceListeners.add(args);
81
+ super.on(args[0], args[1]);
82
+ }
83
+ return this;
84
+ }
85
+ /**
86
+ * close app
87
+ */
88
+ async _close() {
89
+ if (this._instance) await this._instance.close();
90
+ else await sleep(200);
91
+ }
92
+ };
93
+ function createApp(initOptions) {
94
+ return proxyApp(new MockParallelApplication(formatOptions(initOptions)));
110
95
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9wYXJhbGxlbC9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsSUFBSSxjQUFjLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFcEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLElBQUk7SUFFL0MsT0FBTyxDQUFTO0lBQ2hCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQztJQUNwQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBQ3RDLFNBQVMsQ0FBaUI7SUFFMUIsWUFBWSxPQUErQjtRQUN6QyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFP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
96
+
97
+ //#endregion
98
+ export { MockParallelApplication, createApp };
@@ -1,2 +1,5 @@
1
- export declare const MOCK_APP_METHOD: string[];
2
- export declare function proxyApp(app: any): any;
1
+ //#region src/lib/parallel/util.d.ts
2
+ declare const MOCK_APP_METHOD: string[];
3
+ declare function proxyApp(app: any): any;
4
+ //#endregion
5
+ export { MOCK_APP_METHOD, proxyApp };
@@ -1,65 +1,58 @@
1
- import { debuglog } from 'node:util';
2
1
  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 function proxyApp(app) {
6
- const proxyApp = new Proxy(app, {
7
- get(target, prop) {
8
- // don't delegate properties on MockAgent
9
- if (MOCK_APP_METHOD.includes(prop)) {
10
- return getProperty(target, prop);
11
- }
12
- if (!target.__APP_INIT__)
13
- throw new Error(`can't get ${prop} before ready`);
14
- // it's asynchronous when agent and app are loading,
15
- // so should get the properties after loader ready
16
- debug('proxy handler.get %s', prop);
17
- return target._instance[prop];
18
- },
19
- set(target, prop, value) {
20
- if (MOCK_APP_METHOD.includes(prop))
21
- return true;
22
- if (!target.__APP_INIT__)
23
- throw new Error(`can't set ${prop} before ready`);
24
- debug('proxy handler.set %s', prop);
25
- target._instance[prop] = value;
26
- return true;
27
- },
28
- defineProperty(target, prop, descriptor) {
29
- // can't define properties on MockAgent
30
- if (MOCK_APP_METHOD.includes(prop))
31
- return true;
32
- if (!target.__APP_INIT__)
33
- throw new Error(`can't defineProperty ${prop} before ready`);
34
- debug('proxy handler.defineProperty %s', prop);
35
- Object.defineProperty(target._instance, prop, descriptor);
36
- return true;
37
- },
38
- deleteProperty(target, prop) {
39
- // can't delete properties on MockAgent
40
- if (MOCK_APP_METHOD.includes(prop))
41
- return true;
42
- if (!target.__APP_INIT__)
43
- throw new Error(`can't delete ${prop} before ready`);
44
- debug('proxy handler.deleteProperty %s', prop);
45
- delete target._instance[prop];
46
- return true;
47
- },
48
- getOwnPropertyDescriptor(target, prop) {
49
- if (MOCK_APP_METHOD.includes(prop))
50
- return Object.getOwnPropertyDescriptor(target, prop);
51
- if (!target.__APP_INIT__)
52
- throw new Error(`can't getOwnPropertyDescriptor ${prop} before ready`);
53
- debug('proxy handler.getOwnPropertyDescriptor %s', prop);
54
- return Object.getOwnPropertyDescriptor(target._instance, prop);
55
- },
56
- getPrototypeOf(target) {
57
- if (!target.__APP_INIT__)
58
- throw new Error("can't getPrototypeOf before ready");
59
- debug('proxy handler.getPrototypeOf %s');
60
- return Object.getPrototypeOf(target._instance);
61
- },
62
- });
63
- return proxyApp;
2
+ import { debuglog } from "node:util";
3
+
4
+ //#region src/lib/parallel/util.ts
5
+ const debug = debuglog("egg/mock/lib/parallel/util");
6
+ const MOCK_APP_METHOD = [
7
+ "ready",
8
+ "isClosed",
9
+ "closed",
10
+ "close",
11
+ "on",
12
+ "once"
13
+ ];
14
+ function proxyApp(app) {
15
+ return new Proxy(app, {
16
+ get(target, prop) {
17
+ if (MOCK_APP_METHOD.includes(prop)) return getProperty(target, prop);
18
+ if (!target.__APP_INIT__) throw new Error(`can't get ${prop} before ready`);
19
+ debug("proxy handler.get %s", prop);
20
+ return target._instance[prop];
21
+ },
22
+ set(target, prop, value) {
23
+ if (MOCK_APP_METHOD.includes(prop)) return true;
24
+ if (!target.__APP_INIT__) 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
+ if (MOCK_APP_METHOD.includes(prop)) return true;
31
+ if (!target.__APP_INIT__) throw new Error(`can't defineProperty ${prop} before ready`);
32
+ debug("proxy handler.defineProperty %s", prop);
33
+ Object.defineProperty(target._instance, prop, descriptor);
34
+ return true;
35
+ },
36
+ deleteProperty(target, prop) {
37
+ if (MOCK_APP_METHOD.includes(prop)) return true;
38
+ if (!target.__APP_INIT__) throw new Error(`can't delete ${prop} before ready`);
39
+ debug("proxy handler.deleteProperty %s", prop);
40
+ delete target._instance[prop];
41
+ return true;
42
+ },
43
+ getOwnPropertyDescriptor(target, prop) {
44
+ if (MOCK_APP_METHOD.includes(prop)) return Object.getOwnPropertyDescriptor(target, prop);
45
+ if (!target.__APP_INIT__) throw new Error(`can't getOwnPropertyDescriptor ${prop} before ready`);
46
+ debug("proxy handler.getOwnPropertyDescriptor %s", prop);
47
+ return Object.getOwnPropertyDescriptor(target._instance, prop);
48
+ },
49
+ getPrototypeOf(target) {
50
+ if (!target.__APP_INIT__) throw new Error("can't getPrototypeOf before ready");
51
+ debug("proxy handler.getPrototypeOf %s");
52
+ return Object.getPrototypeOf(target._instance);
53
+ }
54
+ });
64
55
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGFyYWxsZWwvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFhLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUVoRyxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVE7SUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQzlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBWTtZQUN0Qix5Q0FBeUM7WUFDekMsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLGVBQWUsQ0FBQyxDQUFDO1lBQzVFLG9EQUFvRDtZQUNwRCxrREFBa0Q7WUFDbEQsS0FBSyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFZLEVBQUUsS0FBSztZQUM3QixJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxlQUFlLENBQUMsQ0FBQztZQUM1RSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFZLEVBQUUsVUFBVTtZQUM3Qyx1Q0FBdUM7WUFDdkMsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxlQUFlLENBQUMsQ0FBQztZQUN2RixLQUFLLENBQUMsaUNBQWlDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxjQUFjLENBQUMsTUFBTSxFQUFFLElBQVk7WUFDakMsdUNBQXVDO1lBQ3ZDLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksZUFBZSxDQUFDLENBQUM7WUFDL0UsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9DLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBWTtZQUMzQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxlQUFlLENBQUMsQ0FBQztZQUNqRyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsY0FBYyxDQUFDLE1BQU07WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUMvRSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztZQUN6QyxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7S0FDRixDQUFDLENBQUM7SUFDSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIn0=
56
+
57
+ //#endregion
58
+ export { MOCK_APP_METHOD, proxyApp };