@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,11 +1,10 @@
1
- export const context = {
2
- runInBackground(scope) {
3
- const taskName = scope._name || scope.name;
4
- if (taskName) {
5
- scope._name = taskName;
6
- }
7
- const promise = this._runInBackground(scope);
8
- this.app._backgroundTasks.push(promise);
9
- },
10
- };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsZUFBZSxDQUFDLEtBQVU7UUFDeEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzNDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDSyxDQUFDIn0=
1
+ //#region src/lib/context.ts
2
+ const context = { runInBackground(scope) {
3
+ const taskName = scope._name || scope.name;
4
+ if (taskName) scope._name = taskName;
5
+ const promise = this._runInBackground(scope);
6
+ this.app._backgroundTasks.push(promise);
7
+ } };
8
+
9
+ //#endregion
10
+ export { context };
@@ -1,5 +1,10 @@
1
- import type { MockOptions, MockApplicationOptions } from './types.ts';
1
+ import { MockApplicationOptions, MockOptions } from "./types.js";
2
+
3
+ //#region src/lib/format_options.d.ts
4
+
2
5
  /**
3
- * format the options
4
- */
5
- export declare function formatOptions(initOptions?: MockOptions): MockApplicationOptions;
6
+ * format the options
7
+ */
8
+ declare function formatOptions(initOptions?: MockOptions): MockApplicationOptions;
9
+ //#endregion
10
+ export { formatOptions };
@@ -1,93 +1,65 @@
1
- import { debuglog } from 'node:util';
2
- import path from 'node:path';
3
- import { mm, isMocked } from 'mm';
4
- import { getFrameworkPath } from '@eggjs/utils';
5
- import { readJSONSync } from 'utility';
6
1
  import { getSourceDirname } from "./utils.js";
7
- const debug = debuglog('egg/mock/lib/format_options');
2
+ import path from "node:path";
3
+ import { readJSONSync } from "utility";
4
+ import { isMocked, mm } from "mm";
5
+ import { debuglog } from "node:util";
6
+ import { getFrameworkPath } from "@eggjs/utils";
7
+
8
+ //#region src/lib/format_options.ts
9
+ const debug = debuglog("egg/mock/lib/format_options");
8
10
  /**
9
- * format the options
10
- */
11
- export function formatOptions(initOptions) {
12
- const options = {
13
- baseDir: process.cwd(),
14
- cache: true,
15
- coverage: true,
16
- clean: true,
17
- ...initOptions,
18
- };
19
- // relative path to test/fixtures
20
- // ```js
21
- // formatOptions({ baseDir: 'app' }); // baseDir => $PWD/test/fixtures/app
22
- // ```
23
- if (!path.isAbsolute(options.baseDir)) {
24
- options.baseDir = path.join(process.cwd(), 'test/fixtures', options.baseDir);
25
- }
26
- let framework = initOptions?.framework ?? initOptions?.customEgg;
27
- // test for framework
28
- if (framework === true) {
29
- framework = process.cwd();
30
- // disable plugin test when framework test
31
- options.plugin = false;
32
- }
33
- else {
34
- if (!framework) {
35
- framework = '';
36
- }
37
- // it will throw when framework is not found
38
- framework = getFrameworkPath({ framework, baseDir: options.baseDir });
39
- }
40
- options.framework = options.customEgg = framework;
41
- const plugins = (options.plugins = options.plugins || {});
42
- // add self as a plugin
43
- let pluginPath = path.join(getSourceDirname(), '..');
44
- // for dist directory
45
- // convert `/eggjs/mock/dist` to `/eggjs/mock`
46
- if (pluginPath.endsWith('/dist') || pluginPath.endsWith('\\dist')) {
47
- pluginPath = path.join(pluginPath, '..');
48
- }
49
- plugins['egg-mock'] = {
50
- enable: true,
51
- path: pluginPath,
52
- };
53
- // test for plugin
54
- if (options.plugin !== false) {
55
- // add self to plugin list
56
- const pluginPath = process.cwd();
57
- const pkgPath = path.join(pluginPath, 'package.json');
58
- const pluginName = getPluginName(pkgPath);
59
- if (options.plugin && !pluginName) {
60
- throw new Error(`should set "eggPlugin" property in ${pkgPath}`);
61
- }
62
- if (pluginName) {
63
- plugins[pluginName] = {
64
- enable: true,
65
- path: pluginPath,
66
- };
67
- }
68
- }
69
- // mock HOME as baseDir, but ignore if it has been mocked
70
- const env = process.env.EGG_SERVER_ENV;
71
- if (!isMocked(process.env, 'HOME') && (env === 'default' || env === 'test' || env === 'prod')) {
72
- mm(process.env, 'HOME', options.baseDir);
73
- }
74
- // disable cache after call mm.env(),
75
- // otherwise it will use cache and won't load again.
76
- if (process.env.EGG_MOCK_SERVER_ENV) {
77
- options.cache = false;
78
- }
79
- debug('[formatOptions] options: %j', options);
80
- return options;
11
+ * format the options
12
+ */
13
+ function formatOptions(initOptions) {
14
+ const options = {
15
+ baseDir: process.cwd(),
16
+ cache: true,
17
+ coverage: true,
18
+ clean: true,
19
+ ...initOptions
20
+ };
21
+ if (!path.isAbsolute(options.baseDir)) options.baseDir = path.join(process.cwd(), "test/fixtures", options.baseDir);
22
+ let framework = initOptions?.framework ?? initOptions?.customEgg;
23
+ if (framework === true) {
24
+ framework = process.cwd();
25
+ options.plugin = false;
26
+ } else {
27
+ if (!framework) framework = "";
28
+ framework = getFrameworkPath({
29
+ framework,
30
+ baseDir: options.baseDir
31
+ });
32
+ }
33
+ options.framework = options.customEgg = framework;
34
+ const plugins = options.plugins = options.plugins || {};
35
+ let pluginPath = path.join(getSourceDirname(), "..");
36
+ if (pluginPath.endsWith("/dist") || pluginPath.endsWith("\\dist")) pluginPath = path.join(pluginPath, "..");
37
+ plugins["egg-mock"] = {
38
+ enable: true,
39
+ path: pluginPath
40
+ };
41
+ if (options.plugin !== false) {
42
+ const pluginPath$1 = process.cwd();
43
+ const pkgPath = path.join(pluginPath$1, "package.json");
44
+ const pluginName = getPluginName(pkgPath);
45
+ if (options.plugin && !pluginName) throw new Error(`should set "eggPlugin" property in ${pkgPath}`);
46
+ if (pluginName) plugins[pluginName] = {
47
+ enable: true,
48
+ path: pluginPath$1
49
+ };
50
+ }
51
+ const env = process.env.EGG_SERVER_ENV;
52
+ if (!isMocked(process.env, "HOME") && (env === "default" || env === "test" || env === "prod")) mm(process.env, "HOME", options.baseDir);
53
+ if (process.env.EGG_MOCK_SERVER_ENV) options.cache = false;
54
+ debug("[formatOptions] options: %j", options);
55
+ return options;
81
56
  }
82
57
  function getPluginName(pkgPath) {
83
- try {
84
- const pkg = readJSONSync(pkgPath);
85
- if (pkg.eggPlugin?.name) {
86
- return pkg.eggPlugin.name;
87
- }
88
- }
89
- catch {
90
- // ignore
91
- }
58
+ try {
59
+ const pkg = readJSONSync(pkgPath);
60
+ if (pkg.eggPlugin?.name) return pkg.eggPlugin.name;
61
+ } catch {}
92
62
  }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0X29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2Zvcm1hdF9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUV0RDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBeUI7SUFDckQsTUFBTSxPQUFPLEdBQUc7UUFDZCxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN0QixLQUFLLEVBQUUsSUFBSTtRQUNYLFFBQVEsRUFBRSxJQUFJO1FBQ2QsS0FBSyxFQUFFLElBQUk7UUFDWCxHQUFHLFdBQVc7S0FDVyxDQUFDO0lBRTVCLGlDQUFpQztJQUNqQyxRQUFRO0lBQ1IsMEVBQTBFO0lBQzFFLE1BQU07SUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELElBQUksU0FBUyxHQUFHLFdBQVcsRUFBRSxTQUFTLElBQUksV0FBVyxFQUFFLFNBQVMsQ0FBQztJQUNq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
63
+
64
+ //#endregion
65
+ export { formatOptions };
@@ -1,6 +1,9 @@
1
+ //#region src/lib/inject_context.d.ts
1
2
  /**
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;
3
+ * Monkey patch the mocha instance with egg context.
4
+ *
5
+ * @param {Function} mocha - the module of mocha
6
+ */
7
+ declare function injectContext(mocha: any): void;
8
+ //#endregion
9
+ export { injectContext };
@@ -1,126 +1,106 @@
1
- import { debuglog } from 'node:util';
2
- import assert from 'node:assert';
3
1
  import { getApp } from "./app_handler.js";
4
- const debug = debuglog('egg/mock/lib/inject_context');
5
- const MOCHA_SUITE_APP = Symbol.for('mocha#suite#app');
2
+ import assert from "node:assert";
3
+ import { debuglog } from "node:util";
4
+
5
+ //#region src/lib/inject_context.ts
6
+ const debug = debuglog("egg/mock/lib/inject_context");
7
+ const MOCHA_SUITE_APP = Symbol.for("mocha#suite#app");
6
8
  /**
7
- * Monkey patch the mocha instance with egg context.
8
- *
9
- * @param {Function} mocha - the module of mocha
10
- */
11
- export function injectContext(mocha) {
12
- if (mocha._injectContextLoaded) {
13
- debug('mocha already injected context, skip it');
14
- return;
15
- }
16
- const { Runner } = mocha;
17
- const runSuite = Runner.prototype.runSuite;
18
- const runTests = Runner.prototype.runTests;
19
- function getTestTitle(suite, test) {
20
- const suiteTitle = suite.root ? 'root suite' : suite.title;
21
- if (!test) {
22
- return `"${suiteTitle}"`;
23
- }
24
- return `"${suiteTitle} - ${test.title}"`;
25
- }
26
- // Inject ctx for before/after.
27
- Runner.prototype.runSuite = async function (suite, fn) {
28
- debug('run suite: %s', suite.title);
29
- let app;
30
- const self = this;
31
- try {
32
- app = await getApp(suite);
33
- debug('get app: %s', !!app);
34
- await app.ready();
35
- }
36
- catch {
37
- // 可能 app.ready 时报错,不使用失败的 app
38
- app = null;
39
- }
40
- if (!app) {
41
- // app 不存在,直接跳过,在 beforeEach 的 hook 中会报错
42
- // 确保不打乱 mocha 的顺序,防止 mocha 内部状态错误
43
- return runSuite.call(self, suite, fn);
44
- }
45
- let errSuite;
46
- try {
47
- suite.ctx[MOCHA_SUITE_APP] = app;
48
- const mockContextFun = app.mockModuleContextScope || app.mockContextScope;
49
- await mockContextFun.call(app, async function () {
50
- await new Promise((resolve) => {
51
- runSuite.call(self, suite, (aErrSuite) => {
52
- errSuite = aErrSuite;
53
- resolve();
54
- });
55
- });
56
- });
57
- }
58
- catch (err) {
59
- // mockContext 失败后动态注册一个 beforeAll hook
60
- // 快速失败,直接阻塞后续用例
61
- suite.beforeAll('egg-mock-mock-ctx-failed', async () => {
62
- throw err;
63
- });
64
- return runSuite.call(self, suite, (aErrSuite) => {
65
- return fn(aErrSuite);
66
- });
67
- }
68
- return fn(errSuite);
69
- };
70
- // Inject ctx for beforeEach/it/afterEach.
71
- // And ctx with before/after is not same as beforeEach/it/afterEach.
72
- Runner.prototype.runTests = async function (suite, fn) {
73
- const tests = suite.tests.slice();
74
- if (!tests.length) {
75
- return runTests.call(this, suite, fn);
76
- }
77
- const app = suite.ctx[MOCHA_SUITE_APP];
78
- const self = this;
79
- if (!app) {
80
- return runTests.call(self, suite, fn);
81
- }
82
- function done(errSuite) {
83
- suite.tests = tests;
84
- return fn(errSuite);
85
- }
86
- async function next(i) {
87
- const test = tests[i];
88
- if (!test) {
89
- return done();
90
- }
91
- suite.tests = [test];
92
- let app;
93
- try {
94
- app = await getApp(suite, test);
95
- assert(app, `not found app for test ${getTestTitle(suite, test)}`);
96
- await app.ready();
97
- }
98
- catch (err) {
99
- self.fail(test, err);
100
- return next(i + 1);
101
- }
102
- try {
103
- const mockContextFun = app.mockModuleContextScope || app.mockContextScope;
104
- await mockContextFun.call(app, async function () {
105
- return await new Promise((resolve) => {
106
- runTests.call(self, suite, () => {
107
- return resolve();
108
- });
109
- });
110
- });
111
- }
112
- catch (err) {
113
- self.fail(test, err);
114
- return next(i + 1);
115
- }
116
- return next(i + 1);
117
- }
118
- next(0).catch((err) => {
119
- self.fail(suite, err);
120
- done(suite);
121
- });
122
- };
123
- mocha._injectContextLoaded = true;
124
- debug('inject context success');
9
+ * Monkey patch the mocha instance with egg context.
10
+ *
11
+ * @param {Function} mocha - the module of mocha
12
+ */
13
+ function injectContext(mocha) {
14
+ if (mocha._injectContextLoaded) {
15
+ debug("mocha already injected context, skip it");
16
+ return;
17
+ }
18
+ const { Runner } = mocha;
19
+ const runSuite = Runner.prototype.runSuite;
20
+ const runTests = Runner.prototype.runTests;
21
+ function getTestTitle(suite, test) {
22
+ const suiteTitle = suite.root ? "root suite" : suite.title;
23
+ if (!test) return `"${suiteTitle}"`;
24
+ return `"${suiteTitle} - ${test.title}"`;
25
+ }
26
+ Runner.prototype.runSuite = async function(suite, fn) {
27
+ debug("run suite: %s", suite.title);
28
+ let app;
29
+ const self = this;
30
+ try {
31
+ app = await getApp(suite);
32
+ debug("get app: %s", !!app);
33
+ await app.ready();
34
+ } catch {
35
+ app = null;
36
+ }
37
+ if (!app) return runSuite.call(self, suite, fn);
38
+ let errSuite;
39
+ try {
40
+ suite.ctx[MOCHA_SUITE_APP] = app;
41
+ await (app.mockModuleContextScope || app.mockContextScope).call(app, async function() {
42
+ await new Promise((resolve) => {
43
+ runSuite.call(self, suite, (aErrSuite) => {
44
+ errSuite = aErrSuite;
45
+ resolve();
46
+ });
47
+ });
48
+ });
49
+ } catch (err) {
50
+ suite.beforeAll("egg-mock-mock-ctx-failed", async () => {
51
+ throw err;
52
+ });
53
+ return runSuite.call(self, suite, (aErrSuite) => {
54
+ return fn(aErrSuite);
55
+ });
56
+ }
57
+ return fn(errSuite);
58
+ };
59
+ Runner.prototype.runTests = async function(suite, fn) {
60
+ const tests = suite.tests.slice();
61
+ if (!tests.length) return runTests.call(this, suite, fn);
62
+ const app = suite.ctx[MOCHA_SUITE_APP];
63
+ const self = this;
64
+ if (!app) return runTests.call(self, suite, fn);
65
+ function done(errSuite) {
66
+ suite.tests = tests;
67
+ return fn(errSuite);
68
+ }
69
+ async function next(i) {
70
+ const test = tests[i];
71
+ if (!test) return done();
72
+ suite.tests = [test];
73
+ let app$1;
74
+ try {
75
+ app$1 = await getApp(suite, test);
76
+ assert(app$1, `not found app for test ${getTestTitle(suite, test)}`);
77
+ await app$1.ready();
78
+ } catch (err) {
79
+ self.fail(test, err);
80
+ return next(i + 1);
81
+ }
82
+ try {
83
+ await (app$1.mockModuleContextScope || app$1.mockContextScope).call(app$1, async function() {
84
+ return await new Promise((resolve) => {
85
+ runTests.call(self, suite, () => {
86
+ return resolve();
87
+ });
88
+ });
89
+ });
90
+ } catch (err) {
91
+ self.fail(test, err);
92
+ return next(i + 1);
93
+ }
94
+ return next(i + 1);
95
+ }
96
+ next(0).catch((err) => {
97
+ self.fail(suite, err);
98
+ done(suite);
99
+ });
100
+ };
101
+ mocha._injectContextLoaded = true;
102
+ debug("inject context success");
125
103
  }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0X2NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2luamVjdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUV0RCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFdEQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9CLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztJQUN6QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUUzQyxTQUFTLFlBQVksQ0FBQyxLQUFVLEVBQUUsSUFBUztRQUN6QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDM0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxJQUFJLFVBQVUsR0FBRyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksVUFBVSxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUMzQyxDQUFDO0lBRUQsK0JBQStCO0lBQy9C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
104
+
105
+ //#endregion
106
+ export { injectContext };
@@ -1,5 +1,9 @@
1
- import { MockAgent, HttpClient } from 'urllib';
2
- export declare function getMockAgent(app?: {
3
- httpClient?: HttpClient;
1
+ import { HttpClient, MockAgent } from "urllib";
2
+
3
+ //#region src/lib/mock_agent.d.ts
4
+ declare function getMockAgent(app?: {
5
+ httpClient?: HttpClient;
4
6
  }): MockAgent;
5
- export declare function restoreMockAgent(): Promise<void>;
7
+ declare function restoreMockAgent(): Promise<void>;
8
+ //#endregion
9
+ export { getMockAgent, restoreMockAgent };
@@ -1,45 +1,45 @@
1
- import { debuglog } from 'node:util';
2
- import { MockAgent, setGlobalDispatcher, getGlobalDispatcher, Dispatcher, HttpClient } from 'urllib';
3
- const debug = debuglog('egg/mock/lib/mock_agent');
1
+ import { debuglog } from "node:util";
2
+ import { Dispatcher, HttpClient, MockAgent, getGlobalDispatcher, setGlobalDispatcher } from "urllib";
3
+
4
+ //#region src/lib/mock_agent.ts
5
+ const debug = debuglog("egg/mock/lib/mock_agent");
4
6
  globalThis.__mockAgent = null;
5
- globalThis.__httpClientDispatchers = new Map();
6
- export function getMockAgent(app) {
7
- debug('getMockAgent');
8
- if (!globalThis.__globalDispatcher) {
9
- globalThis.__globalDispatcher = getGlobalDispatcher();
10
- debug('create global dispatcher');
11
- }
12
- if (app?.httpClient && !globalThis.__httpClientDispatchers.has(app.httpClient)) {
13
- globalThis.__httpClientDispatchers.set(app.httpClient, app.httpClient.getDispatcher());
14
- debug('add new httpClient, size: %d', globalThis.__httpClientDispatchers.size);
15
- }
16
- if (!globalThis.__mockAgent) {
17
- globalThis.__mockAgent = new MockAgent();
18
- setGlobalDispatcher(globalThis.__mockAgent);
19
- if (typeof app?.httpClient?.setDispatcher === 'function') {
20
- app.httpClient.setDispatcher(globalThis.__mockAgent);
21
- }
22
- debug('create new mockAgent');
23
- }
24
- return globalThis.__mockAgent;
7
+ globalThis.__httpClientDispatchers = /* @__PURE__ */ new Map();
8
+ function getMockAgent(app) {
9
+ debug("getMockAgent");
10
+ if (!globalThis.__globalDispatcher) {
11
+ globalThis.__globalDispatcher = getGlobalDispatcher();
12
+ debug("create global dispatcher");
13
+ }
14
+ if (app?.httpClient && !globalThis.__httpClientDispatchers.has(app.httpClient)) {
15
+ globalThis.__httpClientDispatchers.set(app.httpClient, app.httpClient.getDispatcher());
16
+ debug("add new httpClient, size: %d", globalThis.__httpClientDispatchers.size);
17
+ }
18
+ if (!globalThis.__mockAgent) {
19
+ globalThis.__mockAgent = new MockAgent();
20
+ setGlobalDispatcher(globalThis.__mockAgent);
21
+ if (typeof app?.httpClient?.setDispatcher === "function") app.httpClient.setDispatcher(globalThis.__mockAgent);
22
+ debug("create new mockAgent");
23
+ }
24
+ return globalThis.__mockAgent;
25
25
  }
26
- export async function restoreMockAgent() {
27
- debug('restoreMockAgent start');
28
- if (globalThis.__globalDispatcher) {
29
- setGlobalDispatcher(globalThis.__globalDispatcher);
30
- debug('restore global dispatcher');
31
- }
32
- debug('restore httpClient, size: %d', globalThis.__httpClientDispatchers.size);
33
- for (const [httpClient, dispatcher] of globalThis.__httpClientDispatchers) {
34
- httpClient.setDispatcher(dispatcher);
35
- }
36
- globalThis.__httpClientDispatchers.clear();
37
- if (globalThis.__mockAgent) {
38
- const agent = globalThis.__mockAgent;
39
- globalThis.__mockAgent = null;
40
- await agent.close();
41
- debug('close mockAgent');
42
- }
43
- debug('restoreMockAgent end');
26
+ async function restoreMockAgent() {
27
+ debug("restoreMockAgent start");
28
+ if (globalThis.__globalDispatcher) {
29
+ setGlobalDispatcher(globalThis.__globalDispatcher);
30
+ debug("restore global dispatcher");
31
+ }
32
+ debug("restore httpClient, size: %d", globalThis.__httpClientDispatchers.size);
33
+ for (const [httpClient$1, dispatcher] of globalThis.__httpClientDispatchers) httpClient$1.setDispatcher(dispatcher);
34
+ globalThis.__httpClientDispatchers.clear();
35
+ if (globalThis.__mockAgent) {
36
+ const agent = globalThis.__mockAgent;
37
+ globalThis.__mockAgent = null;
38
+ await agent.close();
39
+ debug("close mockAgent");
40
+ }
41
+ debug("restoreMockAgent end");
44
42
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbW9ja19hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVyRyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQVFsRCxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUM5QixVQUFVLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7QUFFdkUsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFpQztJQUM1RCxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RELEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLEdBQUcsRUFBRSxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQy9FLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDdkYsS0FBSyxDQUFDLDhCQUE4QixFQUFFLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QixVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFDekMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLElBQUksT0FBTyxHQUFHLEVBQUUsVUFBVSxFQUFFLGFBQWEsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN6RCxHQUFHLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCO0lBQ3BDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2hDLElBQUksVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbEMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbkQsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxVQUFVLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0UsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQzFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQyxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ3JDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUNoQyxDQUFDIn0=
43
+
44
+ //#endregion
45
+ export { getMockAgent, restoreMockAgent };
@@ -1 +1,4 @@
1
- export declare function setCustomLoader(app: any): void;
1
+ //#region src/lib/mock_custom_loader.d.ts
2
+ declare function setCustomLoader(app: any): void;
3
+ //#endregion
4
+ export { setCustomLoader };