@eggjs/mock 6.0.7 → 6.1.0-beta.11

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 (214) hide show
  1. package/README.md +36 -57
  2. package/README.zh_CN.md +31 -51
  3. package/dist/_virtual/rolldown_runtime.js +7 -0
  4. package/dist/app/extend/agent.d.ts +39 -0
  5. package/dist/app/extend/agent.js +48 -0
  6. package/dist/app/extend/application.d.ts +175 -0
  7. package/dist/app/extend/application.js +385 -0
  8. package/dist/app/middleware/cluster_app_mock.d.ts +6 -0
  9. package/dist/app/middleware/cluster_app_mock.js +97 -0
  10. package/dist/app.d.ts +10 -0
  11. package/dist/app.js +17 -0
  12. package/dist/bootstrap.d.ts +9 -0
  13. package/dist/bootstrap.js +14 -0
  14. package/dist/index.d.ts +81 -0
  15. package/dist/index.js +47 -0
  16. package/dist/inject_mocha.d.ts +1 -0
  17. package/dist/inject_mocha.js +34 -0
  18. package/dist/lib/agent_handler.d.ts +7 -0
  19. package/dist/lib/agent_handler.js +26 -0
  20. package/dist/lib/app.d.ts +7 -0
  21. package/dist/lib/app.js +251 -0
  22. package/dist/lib/app_handler.d.ts +9 -0
  23. package/dist/lib/app_handler.js +56 -0
  24. package/dist/lib/cluster.d.ts +126 -0
  25. package/dist/lib/cluster.js +283 -0
  26. package/dist/lib/context.d.ts +4 -0
  27. package/dist/lib/context.js +10 -0
  28. package/dist/lib/format_options.d.ts +10 -0
  29. package/dist/lib/format_options.js +65 -0
  30. package/dist/lib/inject_context.d.ts +9 -0
  31. package/dist/lib/inject_context.js +106 -0
  32. package/dist/lib/mock_agent.d.ts +9 -0
  33. package/dist/lib/mock_agent.js +45 -0
  34. package/dist/lib/mock_custom_loader.d.ts +4 -0
  35. package/dist/lib/mock_custom_loader.js +35 -0
  36. package/dist/lib/mock_http_server.d.ts +6 -0
  37. package/dist/lib/mock_http_server.js +17 -0
  38. package/dist/lib/mock_httpclient.d.ts +40 -0
  39. package/dist/lib/mock_httpclient.js +110 -0
  40. package/dist/lib/parallel/agent.d.ts +24 -0
  41. package/dist/lib/parallel/agent.js +111 -0
  42. package/dist/lib/parallel/app.d.ts +24 -0
  43. package/dist/lib/parallel/app.js +99 -0
  44. package/dist/lib/parallel/util.d.ts +6 -0
  45. package/dist/lib/parallel/util.js +59 -0
  46. package/dist/lib/prerequire.d.ts +1 -0
  47. package/dist/lib/prerequire.js +1 -0
  48. package/dist/lib/request_call_function.d.ts +1 -0
  49. package/dist/lib/request_call_function.js +37 -0
  50. package/dist/lib/restore.d.ts +4 -0
  51. package/dist/lib/restore.js +16 -0
  52. package/dist/lib/start-cluster.d.ts +1 -0
  53. package/dist/lib/start-cluster.js +19 -0
  54. package/dist/lib/supertest.d.ts +16 -0
  55. package/dist/lib/supertest.js +39 -0
  56. package/dist/lib/tmp/empty.d.ts +1 -0
  57. package/dist/lib/tmp/empty.js +1 -0
  58. package/{src/lib/types.ts → dist/lib/types.d.ts} +12 -29
  59. package/dist/lib/types.js +1 -0
  60. package/dist/lib/utils.d.ts +12 -0
  61. package/dist/lib/utils.js +40 -0
  62. package/dist/register.d.ts +10 -0
  63. package/dist/register.js +40 -0
  64. package/dist/typings/index.d.ts +1 -0
  65. package/package.json +69 -98
  66. package/dist/commonjs/app/extend/agent.d.ts +0 -34
  67. package/dist/commonjs/app/extend/agent.js +0 -49
  68. package/dist/commonjs/app/extend/application.d.ts +0 -172
  69. package/dist/commonjs/app/extend/application.js +0 -450
  70. package/dist/commonjs/app/middleware/cluster_app_mock.d.ts +0 -3
  71. package/dist/commonjs/app/middleware/cluster_app_mock.js +0 -101
  72. package/dist/commonjs/app.d.ts +0 -6
  73. package/dist/commonjs/app.js +0 -20
  74. package/dist/commonjs/bootstrap.d.ts +0 -5
  75. package/dist/commonjs/bootstrap.js +0 -59
  76. package/dist/commonjs/index.d.ts +0 -77
  77. package/dist/commonjs/index.js +0 -114
  78. package/dist/commonjs/lib/agent_handler.d.ts +0 -3
  79. package/dist/commonjs/lib/agent_handler.js +0 -28
  80. package/dist/commonjs/lib/app.d.ts +0 -3
  81. package/dist/commonjs/lib/app.js +0 -301
  82. package/dist/commonjs/lib/app_handler.d.ts +0 -5
  83. package/dist/commonjs/lib/app_handler.js +0 -71
  84. package/dist/commonjs/lib/cluster.d.ts +0 -114
  85. package/dist/commonjs/lib/cluster.js +0 -337
  86. package/dist/commonjs/lib/context.d.ts +0 -1
  87. package/dist/commonjs/lib/context.js +0 -16
  88. package/dist/commonjs/lib/format_options.d.ts +0 -5
  89. package/dist/commonjs/lib/format_options.js +0 -100
  90. package/dist/commonjs/lib/inject_context.d.ts +0 -6
  91. package/dist/commonjs/lib/inject_context.js +0 -132
  92. package/dist/commonjs/lib/mock_agent.d.ts +0 -5
  93. package/dist/commonjs/lib/mock_agent.js +0 -49
  94. package/dist/commonjs/lib/mock_custom_loader.d.ts +0 -1
  95. package/dist/commonjs/lib/mock_custom_loader.js +0 -37
  96. package/dist/commonjs/lib/mock_http_server.d.ts +0 -2
  97. package/dist/commonjs/lib/mock_http_server.js +0 -24
  98. package/dist/commonjs/lib/mock_httpclient.d.ts +0 -36
  99. package/dist/commonjs/lib/mock_httpclient.js +0 -147
  100. package/dist/commonjs/lib/parallel/agent.d.ts +0 -20
  101. package/dist/commonjs/lib/parallel/agent.js +0 -125
  102. package/dist/commonjs/lib/parallel/app.d.ts +0 -20
  103. package/dist/commonjs/lib/parallel/app.js +0 -115
  104. package/dist/commonjs/lib/parallel/util.d.ts +0 -3
  105. package/dist/commonjs/lib/parallel/util.js +0 -77
  106. package/dist/commonjs/lib/prerequire.d.ts +0 -1
  107. package/dist/commonjs/lib/prerequire.js +0 -26
  108. package/dist/commonjs/lib/request_call_function.d.ts +0 -1
  109. package/dist/commonjs/lib/request_call_function.js +0 -52
  110. package/dist/commonjs/lib/restore.d.ts +0 -1
  111. package/dist/commonjs/lib/restore.js +0 -16
  112. package/dist/commonjs/lib/start-cluster.d.ts +0 -2
  113. package/dist/commonjs/lib/start-cluster.js +0 -23
  114. package/dist/commonjs/lib/supertest.d.ts +0 -11
  115. package/dist/commonjs/lib/supertest.js +0 -48
  116. package/dist/commonjs/lib/tmp/empty.d.ts +0 -1
  117. package/dist/commonjs/lib/tmp/empty.js +0 -3
  118. package/dist/commonjs/lib/types.d.ts +0 -68
  119. package/dist/commonjs/lib/types.js +0 -3
  120. package/dist/commonjs/lib/utils.d.ts +0 -9
  121. package/dist/commonjs/lib/utils.js +0 -80
  122. package/dist/commonjs/package.json +0 -3
  123. package/dist/commonjs/register.d.ts +0 -8
  124. package/dist/commonjs/register.js +0 -80
  125. package/dist/esm/app/extend/agent.d.ts +0 -34
  126. package/dist/esm/app/extend/agent.js +0 -46
  127. package/dist/esm/app/extend/application.d.ts +0 -172
  128. package/dist/esm/app/extend/application.js +0 -444
  129. package/dist/esm/app/middleware/cluster_app_mock.d.ts +0 -3
  130. package/dist/esm/app/middleware/cluster_app_mock.js +0 -99
  131. package/dist/esm/app.d.ts +0 -6
  132. package/dist/esm/app.js +0 -17
  133. package/dist/esm/bootstrap.d.ts +0 -5
  134. package/dist/esm/bootstrap.js +0 -15
  135. package/dist/esm/index.d.ts +0 -77
  136. package/dist/esm/index.js +0 -91
  137. package/dist/esm/lib/agent_handler.d.ts +0 -3
  138. package/dist/esm/lib/agent_handler.js +0 -24
  139. package/dist/esm/lib/app.d.ts +0 -3
  140. package/dist/esm/lib/app.js +0 -295
  141. package/dist/esm/lib/app_handler.d.ts +0 -5
  142. package/dist/esm/lib/app_handler.js +0 -65
  143. package/dist/esm/lib/cluster.d.ts +0 -114
  144. package/dist/esm/lib/cluster.js +0 -328
  145. package/dist/esm/lib/context.d.ts +0 -1
  146. package/dist/esm/lib/context.js +0 -13
  147. package/dist/esm/lib/format_options.d.ts +0 -5
  148. package/dist/esm/lib/format_options.js +0 -94
  149. package/dist/esm/lib/inject_context.d.ts +0 -6
  150. package/dist/esm/lib/inject_context.js +0 -126
  151. package/dist/esm/lib/mock_agent.d.ts +0 -5
  152. package/dist/esm/lib/mock_agent.js +0 -45
  153. package/dist/esm/lib/mock_custom_loader.d.ts +0 -1
  154. package/dist/esm/lib/mock_custom_loader.js +0 -34
  155. package/dist/esm/lib/mock_http_server.d.ts +0 -2
  156. package/dist/esm/lib/mock_http_server.js +0 -18
  157. package/dist/esm/lib/mock_httpclient.d.ts +0 -36
  158. package/dist/esm/lib/mock_httpclient.js +0 -144
  159. package/dist/esm/lib/parallel/agent.d.ts +0 -20
  160. package/dist/esm/lib/parallel/agent.js +0 -117
  161. package/dist/esm/lib/parallel/app.d.ts +0 -20
  162. package/dist/esm/lib/parallel/app.js +0 -110
  163. package/dist/esm/lib/parallel/util.d.ts +0 -3
  164. package/dist/esm/lib/parallel/util.js +0 -73
  165. package/dist/esm/lib/prerequire.d.ts +0 -1
  166. package/dist/esm/lib/prerequire.js +0 -25
  167. package/dist/esm/lib/request_call_function.d.ts +0 -1
  168. package/dist/esm/lib/request_call_function.js +0 -47
  169. package/dist/esm/lib/restore.d.ts +0 -1
  170. package/dist/esm/lib/restore.js +0 -13
  171. package/dist/esm/lib/start-cluster.d.ts +0 -2
  172. package/dist/esm/lib/start-cluster.js +0 -18
  173. package/dist/esm/lib/supertest.d.ts +0 -11
  174. package/dist/esm/lib/supertest.js +0 -40
  175. package/dist/esm/lib/tmp/empty.d.ts +0 -1
  176. package/dist/esm/lib/tmp/empty.js +0 -2
  177. package/dist/esm/lib/types.d.ts +0 -68
  178. package/dist/esm/lib/types.js +0 -2
  179. package/dist/esm/lib/utils.d.ts +0 -9
  180. package/dist/esm/lib/utils.js +0 -69
  181. package/dist/esm/package.json +0 -3
  182. package/dist/esm/register.d.ts +0 -8
  183. package/dist/esm/register.js +0 -75
  184. package/dist/package.json +0 -4
  185. package/src/app/extend/agent.ts +0 -57
  186. package/src/app/extend/application.ts +0 -512
  187. package/src/app/middleware/cluster_app_mock.ts +0 -102
  188. package/src/app.ts +0 -18
  189. package/src/bootstrap.ts +0 -25
  190. package/src/index.ts +0 -112
  191. package/src/lib/agent_handler.ts +0 -28
  192. package/src/lib/app.ts +0 -314
  193. package/src/lib/app_handler.ts +0 -77
  194. package/src/lib/cluster.ts +0 -363
  195. package/src/lib/context.ts +0 -14
  196. package/src/lib/format_options.ts +0 -103
  197. package/src/lib/inject_context.ts +0 -134
  198. package/src/lib/mock_agent.ts +0 -57
  199. package/src/lib/mock_custom_loader.ts +0 -36
  200. package/src/lib/mock_http_server.ts +0 -19
  201. package/src/lib/mock_httpclient.ts +0 -183
  202. package/src/lib/parallel/agent.ts +0 -128
  203. package/src/lib/parallel/app.ts +0 -123
  204. package/src/lib/parallel/util.ts +0 -66
  205. package/src/lib/prerequire.ts +0 -25
  206. package/src/lib/request_call_function.ts +0 -49
  207. package/src/lib/restore.ts +0 -14
  208. package/src/lib/start-cluster.ts +0 -23
  209. package/src/lib/supertest.ts +0 -45
  210. package/src/lib/tmp/.gitkeep +0 -0
  211. package/src/lib/tmp/empty.ts +0 -0
  212. package/src/lib/utils.ts +0 -82
  213. package/src/register.ts +0 -80
  214. package/src/typings/index.d.ts +0 -4
@@ -1,6 +0,0 @@
1
- /**
2
- * Monkey patch the mocha instance with egg context.
3
- *
4
- * @param {Function} mocha - the module of mocha
5
- */
6
- export declare function injectContext(mocha: any): void;
@@ -1,132 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.injectContext = injectContext;
7
- const node_util_1 = require("node:util");
8
- const node_assert_1 = __importDefault(require("node:assert"));
9
- const app_handler_js_1 = require("./app_handler.js");
10
- const MOCHA_SUITE_APP = Symbol.for('mocha#suite#app');
11
- const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/inject_context');
12
- /**
13
- * Monkey patch the mocha instance with egg context.
14
- *
15
- * @param {Function} mocha - the module of mocha
16
- */
17
- function injectContext(mocha) {
18
- if (mocha._injectContextLoaded) {
19
- debug('mocha already injected context, skip it');
20
- return;
21
- }
22
- const { Runner } = mocha;
23
- const runSuite = Runner.prototype.runSuite;
24
- const runTests = Runner.prototype.runTests;
25
- function getTestTitle(suite, test) {
26
- const suiteTitle = suite.root ? 'root suite' : suite.title;
27
- if (!test) {
28
- return `"${suiteTitle}"`;
29
- }
30
- return `"${suiteTitle} - ${test.title}"`;
31
- }
32
- // Inject ctx for before/after.
33
- Runner.prototype.runSuite = async function (suite, fn) {
34
- debug('run suite: %s', suite.title);
35
- let app;
36
- const self = this;
37
- try {
38
- app = await (0, app_handler_js_1.getApp)(suite);
39
- debug('get app: %s', !!app);
40
- await app.ready();
41
- }
42
- catch {
43
- // 可能 app.ready 时报错,不使用失败的 app
44
- app = null;
45
- }
46
- if (!app) {
47
- // app 不存在,直接跳过,在 beforeEach 的 hook 中会报错
48
- // 确保不打乱 mocha 的顺序,防止 mocha 内部状态错误
49
- return runSuite.call(self, suite, fn);
50
- }
51
- let errSuite;
52
- try {
53
- suite.ctx[MOCHA_SUITE_APP] = app;
54
- const mockContextFun = app.mockModuleContextScope || app.mockContextScope;
55
- await mockContextFun.call(app, async function () {
56
- await new Promise(resolve => {
57
- runSuite.call(self, suite, (aErrSuite) => {
58
- errSuite = aErrSuite;
59
- resolve();
60
- });
61
- });
62
- });
63
- }
64
- catch (err) {
65
- // mockContext 失败后动态注册一个 beforeAll hook
66
- // 快速失败,直接阻塞后续用例
67
- suite.beforeAll('egg-mock-mock-ctx-failed', async () => {
68
- throw err;
69
- });
70
- return runSuite.call(self, suite, (aErrSuite) => {
71
- return fn(aErrSuite);
72
- });
73
- }
74
- return fn(errSuite);
75
- };
76
- // Inject ctx for beforeEach/it/afterEach.
77
- // And ctx with before/after is not same as beforeEach/it/afterEach.
78
- Runner.prototype.runTests = async function (suite, fn) {
79
- const tests = suite.tests.slice();
80
- if (!tests.length) {
81
- return runTests.call(this, suite, fn);
82
- }
83
- const app = suite.ctx[MOCHA_SUITE_APP];
84
- const self = this;
85
- if (!app) {
86
- return runTests.call(self, suite, fn);
87
- }
88
- function done(errSuite) {
89
- suite.tests = tests;
90
- return fn(errSuite);
91
- }
92
- async function next(i) {
93
- const test = tests[i];
94
- if (!test) {
95
- return done();
96
- }
97
- suite.tests = [test];
98
- let app;
99
- try {
100
- app = await (0, app_handler_js_1.getApp)(suite, test);
101
- (0, node_assert_1.default)(app, `not found app for test ${getTestTitle(suite, test)}`);
102
- await app.ready();
103
- }
104
- catch (err) {
105
- self.fail(test, err);
106
- return next(i + 1);
107
- }
108
- try {
109
- const mockContextFun = app.mockModuleContextScope || app.mockContextScope;
110
- await mockContextFun.call(app, async function () {
111
- return await new Promise(resolve => {
112
- runTests.call(self, suite, () => {
113
- return resolve();
114
- });
115
- });
116
- });
117
- }
118
- catch (err) {
119
- self.fail(test, err);
120
- return next(i + 1);
121
- }
122
- return next(i + 1);
123
- }
124
- next(0).catch(err => {
125
- self.fail(suite, err);
126
- done(suite);
127
- });
128
- };
129
- mocha._injectContextLoaded = true;
130
- debug('inject context success');
131
- }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0X2NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luamVjdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBYUEsc0NBd0hDO0FBcklELHlDQUFxQztBQUNyQyw4REFBaUM7QUFDakMscURBQTBDO0FBRTFDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUV0RCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUV6RDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQVU7SUFDdEMsSUFBSSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMvQixLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUNqRCxPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDekIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFFM0MsU0FBUyxZQUFZLENBQUMsS0FBVSxFQUFFLElBQVM7UUFDekMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxVQUFVLEdBQUcsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxJQUFJLFVBQVUsTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7SUFDM0MsQ0FBQztJQUVELCtCQUErQjtJQUMvQixNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxLQUFLLFdBQVUsS0FBVSxFQUFFLEVB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
@@ -1,5 +0,0 @@
1
- import { MockAgent, HttpClient } from 'urllib';
2
- export declare function getMockAgent(app?: {
3
- httpClient?: HttpClient;
4
- }): MockAgent<MockAgent.Options>;
5
- export declare function restoreMockAgent(): Promise<void>;
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMockAgent = getMockAgent;
4
- exports.restoreMockAgent = restoreMockAgent;
5
- const node_util_1 = require("node:util");
6
- const urllib_1 = require("urllib");
7
- const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/mock_agent');
8
- globalThis.__mockAgent = null;
9
- globalThis.__httpClientDispatchers = new Map();
10
- function getMockAgent(app) {
11
- debug('getMockAgent');
12
- if (!globalThis.__globalDispatcher) {
13
- globalThis.__globalDispatcher = (0, urllib_1.getGlobalDispatcher)();
14
- debug('create global dispatcher');
15
- }
16
- if (app?.httpClient && !globalThis.__httpClientDispatchers.has(app.httpClient)) {
17
- globalThis.__httpClientDispatchers.set(app.httpClient, app.httpClient.getDispatcher());
18
- debug('add new httpClient, size: %d', globalThis.__httpClientDispatchers.size);
19
- }
20
- if (!globalThis.__mockAgent) {
21
- globalThis.__mockAgent = new urllib_1.MockAgent();
22
- (0, urllib_1.setGlobalDispatcher)(globalThis.__mockAgent);
23
- if (typeof app?.httpClient?.setDispatcher === 'function') {
24
- app.httpClient.setDispatcher(globalThis.__mockAgent);
25
- }
26
- debug('create new mockAgent');
27
- }
28
- return globalThis.__mockAgent;
29
- }
30
- async function restoreMockAgent() {
31
- debug('restoreMockAgent start');
32
- if (globalThis.__globalDispatcher) {
33
- (0, urllib_1.setGlobalDispatcher)(globalThis.__globalDispatcher);
34
- debug('restore global dispatcher');
35
- }
36
- debug('restore httpClient, size: %d', globalThis.__httpClientDispatchers.size);
37
- for (const [httpClient, dispatcher] of globalThis.__httpClientDispatchers) {
38
- httpClient.setDispatcher(dispatcher);
39
- }
40
- globalThis.__httpClientDispatchers.clear();
41
- if (globalThis.__mockAgent) {
42
- const agent = globalThis.__mockAgent;
43
- globalThis.__mockAgent = null;
44
- await agent.close();
45
- debug('close mockAgent');
46
- }
47
- debug('restoreMockAgent end');
48
- }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbW9ja19hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxvQ0FtQkM7QUFFRCw0Q0FrQkM7QUF4REQseUNBQXFDO0FBQ3JDLG1DQUdnQjtBQUVoQixNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsNEJBQTRCLENBQUMsQ0FBQztBQVFyRCxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUM5QixVQUFVLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7QUFFdkUsU0FBZ0IsWUFBWSxDQUFDLEdBQWlDO0lBQzVELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkMsVUFBVSxDQUFDLGtCQUFrQixHQUFHLElBQUEsNEJBQW1CLEdBQUUsQ0FBQztRQUN0RCxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxHQUFHLEVBQUUsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUMvRSxVQUFVLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxVQUFVLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUNELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLGtCQUFTLEVBQUUsQ0FBQztRQUN6QyxJQUFBLDRCQUFtQixFQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxJQUFJLE9BQU8sR0FBRyxFQUFFLFVBQVUsRUFBRSxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDekQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDO0FBQ2hDLENBQUM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCO0lBQ3BDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2hDLElBQUksVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbEMsSUFBQSw0QkFBbUIsRUFBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLDhCQUE4QixFQUFFLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRSxLQUFLLE1BQU0sQ0FBRSxVQUFVLEVBQUUsVUFBVSxDQUFFLElBQUksVUFBVSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDNUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNDLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDckMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==
@@ -1 +0,0 @@
1
- export declare function setCustomLoader(app: any): void;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setCustomLoader = setCustomLoader;
4
- const node_util_1 = require("node:util");
5
- const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/mock_custom_loader');
6
- function setCustomLoader(app) {
7
- const customLoader = app.config.customLoader;
8
- if (!customLoader)
9
- return;
10
- for (const field of Object.keys(customLoader)) {
11
- const loaderConfig = Object.assign({}, customLoader[field]);
12
- loaderConfig.field = field;
13
- addMethod(loaderConfig);
14
- }
15
- function addMethod(loaderConfig) {
16
- const field = loaderConfig.field;
17
- const appMethodName = 'mock' + field.replace(/^[a-z]/i, s => s.toUpperCase());
18
- if (app[appMethodName]) {
19
- app.coreLogger.warn('Can\'t override app.%s', appMethodName);
20
- return;
21
- }
22
- debug('[addMethod] %s => %j', appMethodName, loaderConfig);
23
- app[appMethodName] = function (service, methodName, fn) {
24
- if (typeof service === 'string') {
25
- const arr = service.split('.');
26
- service = loaderConfig.inject === 'ctx' ? this[field + 'Classes'] : this[field];
27
- for (const key of arr) {
28
- service = service[key];
29
- }
30
- service = service.prototype || service;
31
- }
32
- this._mockFn(service, methodName, fn);
33
- return this;
34
- };
35
- }
36
- }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19jdXN0b21fbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tb2NrX2N1c3RvbV9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSwwQ0ErQkM7QUFuQ0QseUNBQXFDO0FBRXJDLE1BQU0sS0FBSyxHQUFHLElBQUEsb0JBQVEsRUFBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBRTdELFNBQWdCLGVBQWUsQ0FBQyxHQUFRO0lBQ3RDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQzdDLElBQUksQ0FBQyxZQUFZO1FBQUUsT0FBTztJQUUxQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RCxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMzQixTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFNBQVMsU0FBUyxDQUFDLFlBQWlCO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFlLENBQUM7UUFDM0MsTUFBTSxhQUFhLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN2QixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUM3RCxPQUFPO1FBQ1QsQ0FBQztRQUNELEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0QsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVMsT0FBWSxFQUFFLFVBQWtCLEVBQUUsRUFBTztZQUNyRSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixPQUFPLEdBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEYsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7WUFDekMsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIn0=
@@ -1,2 +0,0 @@
1
- import { Server } from 'node:http';
2
- export declare function createServer(app: any): Server;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createServer = createServer;
7
- const node_http_1 = __importDefault(require("node:http"));
8
- const SERVER = Symbol('http_server');
9
- function createServer(app) {
10
- let server = app[SERVER] || app.callback();
11
- if (typeof server === 'function') {
12
- server = node_http_1.default.createServer(server);
13
- // cache server, avoid create many times
14
- app[SERVER] = server;
15
- if (!app.server) {
16
- app.server = server;
17
- }
18
- // emit server event just like egg-cluster does
19
- // https://github.com/eggjs/egg-cluster/blob/master/lib/app_worker.js#L52
20
- app.emit('server', server);
21
- }
22
- return server;
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19odHRwX3NlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbW9ja19odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLG9DQWNDO0FBbEJELDBEQUF5QztBQUV6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFckMsU0FBZ0IsWUFBWSxDQUFDLEdBQVE7SUFDbkMsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxtQkFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyx3Q0FBd0M7UUFDeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLENBQUM7UUFDRCwrQ0FBK0M7UUFDL0MseUVBQXlFO1FBQ3pFLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIn0=
@@ -1,36 +0,0 @@
1
- import type { Dispatcher, Headers, BodyInit } from 'urllib';
2
- export interface MockResultOptions {
3
- data: string | Buffer | Record<string, any>;
4
- /**
5
- * http status
6
- */
7
- status?: number;
8
- /**
9
- * response header
10
- */
11
- headers?: Record<string, string>;
12
- /**
13
- * delay the associated reply by a set amount in ms
14
- */
15
- delay?: number;
16
- /**
17
- * any matching request will always reply with the defined response indefinitely
18
- */
19
- persist?: boolean;
20
- /**
21
- * any matching request will reply with the defined response a fixed amount of times
22
- */
23
- repeats?: number;
24
- }
25
- export type ResultObject = MockResultOptions;
26
- export interface MockResponseCallbackOptions {
27
- path: string;
28
- method: string;
29
- headers?: Headers | Record<string, string>;
30
- origin?: string;
31
- body?: BodyInit | Dispatcher.DispatchOptions['body'] | null;
32
- maxRedirections?: number;
33
- }
34
- export type MockResultFunction = (url: string, options: MockResponseCallbackOptions) => MockResultOptions | string;
35
- export declare function createMockHttpClient(app: any): (mockUrl: string | RegExp, mockMethod: string | string[] | MockResultOptions | MockResultFunction, mockResult?: MockResultOptions | MockResultFunction | string) => void;
36
- export type MockHttpClientMethod = ReturnType<typeof createMockHttpClient>;
@@ -1,147 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMockHttpClient = createMockHttpClient;
4
- const mm_1 = require("mm");
5
- const extend2_1 = require("extend2");
6
- const mock_agent_js_1 = require("./mock_agent.js");
7
- function normalizeResult(result) {
8
- if (typeof result === 'string') {
9
- result = { data: result };
10
- }
11
- if (!result.status) {
12
- result.status = 200;
13
- }
14
- result.data = result.data || '';
15
- if (Buffer.isBuffer(result.data)) {
16
- // do nothing
17
- }
18
- else if (typeof result.data === 'object') {
19
- // json
20
- result.data = Buffer.from(JSON.stringify(result.data));
21
- }
22
- else if (typeof result.data === 'string') {
23
- // string
24
- result.data = Buffer.from(result.data);
25
- }
26
- else {
27
- throw new Error('`mockResult.data` must be buffer, string or json');
28
- }
29
- result.headers = result.headers ?? {};
30
- return result;
31
- }
32
- const MOCK_CONFIGS = Symbol('MOCK_CONFIGS');
33
- const MOCK_CONFIG_INDEX = Symbol('MOCK_CONFIG_INDEX');
34
- function createMockHttpClient(app) {
35
- /**
36
- * mock httpclient
37
- * @function mockHttpclient
38
- * @param {String} mockUrl - url
39
- * @param {String|Array} mockMethod - http method, default is '*'
40
- * @param {Object|Function} mockResult - you data
41
- * - data - buffer / string / json
42
- * - status - http status
43
- * - headers - response header
44
- * - delay - delay the associated reply by a set amount in ms.
45
- * - persist - any matching request will always reply with the defined response indefinitely, default is true
46
- * - repeats - number, any matching request will reply with the defined response a fixed amount of times
47
- */
48
- return function mockHttpClient(mockUrl, mockMethod, mockResult) {
49
- let mockMethods = mockMethod;
50
- if (!mockResult) {
51
- // app.mockHttpclient(mockUrl, mockResult)
52
- mockResult = mockMethod;
53
- mockMethods = ['*'];
54
- }
55
- if (!Array.isArray(mockMethods)) {
56
- mockMethods = [mockMethods];
57
- }
58
- mockMethods = mockMethods.map(method => (method || 'GET').toUpperCase());
59
- // use MockAgent on undici
60
- let mockConfigs = app[MOCK_CONFIGS];
61
- if (!mockConfigs) {
62
- mockConfigs = [];
63
- (0, mm_1.mm)(app, MOCK_CONFIGS, mockConfigs);
64
- }
65
- let mockConfigIndex = -1;
66
- let origin = mockUrl;
67
- let originMethod;
68
- const pathname = mockUrl;
69
- let pathMethod;
70
- if (typeof mockUrl === 'string') {
71
- const urlObject = new URL(mockUrl);
72
- origin = urlObject.origin;
73
- const originalPathname = urlObject.pathname;
74
- pathMethod = path => {
75
- if (path === originalPathname)
76
- return true;
77
- // should match /foo?a=1 including query
78
- if (path.includes('?'))
79
- return path.startsWith(originalPathname);
80
- return false;
81
- };
82
- }
83
- else if (mockUrl instanceof RegExp) {
84
- let requestOrigin = '';
85
- originMethod = value => {
86
- requestOrigin = value;
87
- return true;
88
- };
89
- pathMethod = path => {
90
- for (const config of mockConfigs) {
91
- if (config.mockUrl.test(`${requestOrigin}${path}`)) {
92
- (0, mm_1.mm)(app, MOCK_CONFIG_INDEX, config.mockConfigIndex);
93
- return true;
94
- }
95
- }
96
- return false;
97
- };
98
- mockConfigIndex = mockConfigs.length;
99
- mockConfigs.push({ mockUrl, mockResult, mockConfigIndex });
100
- }
101
- const mockPool = originMethod
102
- ? (0, mock_agent_js_1.getMockAgent)(app).get(originMethod)
103
- : (0, mock_agent_js_1.getMockAgent)(app).get(originMethod ?? origin);
104
- // persist default is true
105
- let persist = true;
106
- if (typeof mockResult === 'object' && typeof mockResult.persist === 'boolean') {
107
- persist = mockResult.persist;
108
- }
109
- mockMethods.forEach(function (method) {
110
- const mockScope = mockPool.intercept({
111
- path: pathMethod ?? pathname,
112
- method: method === '*' ? () => true : method,
113
- }).reply(options => {
114
- // not support mockResult as an async function
115
- const requestUrl = `${options.origin}${options.path}`;
116
- let mockRequestResult;
117
- if (mockConfigIndex >= 0) {
118
- mockResult = mockConfigs[app[MOCK_CONFIG_INDEX]].mockResult;
119
- mockRequestResult = typeof mockResult === 'function' ? mockResult(requestUrl, options) : mockResult;
120
- }
121
- else {
122
- mockRequestResult = typeof mockResult === 'function' ? mockResult(requestUrl, options) : mockResult;
123
- }
124
- const result = (0, extend2_1.extend)(true, {}, normalizeResult(mockRequestResult));
125
- return {
126
- statusCode: result.status,
127
- data: result.data,
128
- responseOptions: {
129
- headers: result.headers,
130
- },
131
- };
132
- });
133
- if (typeof mockResult === 'object') {
134
- if (mockResult.delay && mockResult.delay > 0) {
135
- mockScope.delay(mockResult.delay);
136
- }
137
- }
138
- if (persist) {
139
- mockScope.persist();
140
- }
141
- else if (typeof mockResult === 'object' && mockResult.repeats && mockResult.repeats > 0) {
142
- mockScope.times(mockResult.repeats);
143
- }
144
- });
145
- };
146
- }
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19odHRwY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tb2NrX2h0dHBjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1RUEsb0RBNkdDO0FBcExELDJCQUF3QjtBQUN4QixxQ0FBaUM7QUFFakMsbURBQStDO0FBd0MvQyxTQUFTLGVBQWUsQ0FBQyxNQUFrQztJQUN6RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNoQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakMsYUFBYTtJQUNmLENBQUM7U0FBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxPQUFPO1FBQ1AsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztTQUFNLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNDLFNBQVM7UUFDVCxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ3RF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
@@ -1,20 +0,0 @@
1
- import { Base } from 'sdk-base';
2
- import type { EggCore } from '@eggjs/core';
3
- import { MockOptions, MockApplicationOptions } from '../types.js';
4
- import { APP_INIT } from './util.js';
5
- export declare class MockAgent extends Base {
6
- #private;
7
- options: MockApplicationOptions;
8
- baseDir: string;
9
- [APP_INIT]: boolean;
10
- _instance: EggCore;
11
- constructor(options: MockApplicationOptions);
12
- _init(): Promise<void>;
13
- on(...args: any[]): this;
14
- once(...args: any[]): this;
15
- /**
16
- * close agent
17
- */
18
- _close(): Promise<void>;
19
- }
20
- export declare function createAgent(options: MockOptions): MockAgent;
@@ -1,125 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MockAgent = void 0;
7
- exports.createAgent = createAgent;
8
- const node_util_1 = require("node:util");
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const sdk_base_1 = require("sdk-base");
11
- const detect_port_1 = require("detect-port");
12
- const utils_1 = require("@eggjs/utils");
13
- const context_js_1 = require("../context.js");
14
- const format_options_js_1 = require("../format_options.js");
15
- const utils_js_1 = require("../utils.js");
16
- const mock_custom_loader_js_1 = require("../mock_custom_loader.js");
17
- const util_js_1 = require("./util.js");
18
- const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/parallel/agent');
19
- class MockAgent extends sdk_base_1.Base {
20
- baseDir;
21
- [util_js_1.APP_INIT] = false;
22
- #initOnListeners = new Set();
23
- #initOnceListeners = new Set();
24
- _instance;
25
- constructor(options) {
26
- super({ initMethod: '_init' });
27
- this.options = options;
28
- this.baseDir = this.options.baseDir;
29
- }
30
- async _init() {
31
- if (this.options.beforeInit) {
32
- await this.options.beforeInit(this);
33
- delete this.options.beforeInit;
34
- }
35
- if (this.options.clean !== false) {
36
- const logDir = node_path_1.default.join(this.options.baseDir, 'logs');
37
- try {
38
- await (0, utils_js_1.rimraf)(logDir);
39
- }
40
- catch (err) {
41
- console.error(`remove log dir ${logDir} failed: ${err.stack}`);
42
- }
43
- const runDir = node_path_1.default.join(this.options.baseDir, 'run');
44
- try {
45
- await (0, utils_js_1.rimraf)(runDir);
46
- }
47
- catch (err) {
48
- console.error(`remove run dir ${runDir} failed: ${err.stack}`);
49
- }
50
- }
51
- this.options.clusterPort = await (0, detect_port_1.detectPort)();
52
- process.env.CLUSTER_PORT = String(this.options.clusterPort);
53
- debug('get clusterPort %s', this.options.clusterPort);
54
- const { Agent } = await (0, utils_1.importModule)(this.options.framework);
55
- const agent = this._instance = new Agent({ ...this.options });
56
- // egg-mock plugin need to override egg context
57
- Object.assign(agent.context, context_js_1.context);
58
- (0, mock_custom_loader_js_1.setCustomLoader)(agent);
59
- debug('agent instantiate');
60
- this[util_js_1.APP_INIT] = true;
61
- debug('this[APP_INIT] = true');
62
- this.#bindEvents();
63
- await agent.ready();
64
- const msg = {
65
- action: 'egg-ready',
66
- data: this.options,
67
- };
68
- agent.messenger.onMessage(msg);
69
- debug('agent ready');
70
- }
71
- #bindEvents() {
72
- debug('bind cache events to agent');
73
- for (const args of this.#initOnListeners) {
74
- debug('on(%s), use cache and pass to agent', args);
75
- this._instance.on(args[0], args[1]);
76
- this.removeListener(args[0], args[1]);
77
- }
78
- for (const args of this.#initOnceListeners) {
79
- debug('once(%s), use cache and pass to agent', args);
80
- this._instance.once(args[0], args[1]);
81
- this.removeListener(args[0], args[1]);
82
- }
83
- }
84
- on(...args) {
85
- if (this[util_js_1.APP_INIT]) {
86
- debug('on(%s), pass to agent', args);
87
- this._instance.on(args[0], args[1]);
88
- }
89
- else {
90
- debug('on(%s), cache it because agent has not init', args);
91
- this.#initOnListeners.add(args);
92
- super.on(args[0], args[1]);
93
- }
94
- return this;
95
- }
96
- once(...args) {
97
- if (this[util_js_1.APP_INIT]) {
98
- debug('once(%s), pass to agent', args);
99
- this._instance.once(args[0], args[1]);
100
- }
101
- else {
102
- debug('once(%s), cache it because agent has not init', args);
103
- this.#initOnceListeners.add(args);
104
- super.on(args[0], args[1]);
105
- }
106
- return this;
107
- }
108
- /**
109
- * close agent
110
- */
111
- async _close() {
112
- if (this._instance) {
113
- await this._instance.close();
114
- }
115
- else {
116
- // when agent init throws an exception, must wait for agent quit gracefully
117
- await (0, utils_js_1.sleep)(200);
118
- }
119
- }
120
- }
121
- exports.MockAgent = MockAgent;
122
- function createAgent(options) {
123
- return new MockAgent((0, format_options_js_1.formatOptions)(options));
124
- }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BhcmFsbGVsL2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQTZIQSxrQ0FFQztBQS9IRCx5Q0FBcUM7QUFDckMsMERBQTZCO0FBQzdCLHVDQUFnQztBQUNoQyw2Q0FBeUM7QUFDekMsd0NBQTRDO0FBRTVDLDhDQUF3QztBQUN4Qyw0REFBcUQ7QUFFckQsMENBQTRDO0FBQzVDLG9FQUEyRDtBQUMzRCx1Q0FBcUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFFekQsTUFBYSxTQUFVLFNBQVEsZUFBSTtJQUVqQyxPQUFPLENBQVM7SUFDaEIsQ0FBQyxrQkFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFTLENBQUM7SUFDcEMsa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQztJQUN0QyxTQUFTLENBQVU7SUFFbkIsWUFBWSxPQUErQjtRQUN6QyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMs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
@@ -1,20 +0,0 @@
1
- import { Base } from 'sdk-base';
2
- import type { EggCore } from '@eggjs/core';
3
- import { MockOptions, MockApplicationOptions } from '../types.js';
4
- import { APP_INIT } from './util.js';
5
- export declare class MockParallelApplication extends Base {
6
- #private;
7
- options: MockApplicationOptions;
8
- baseDir: string;
9
- [APP_INIT]: boolean;
10
- _instance: EggCore;
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>;
19
- }
20
- export declare function createApp(initOptions: MockOptions): any;