@eggjs/mock 6.0.7 → 6.1.0-beta.3

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 (212) hide show
  1. package/README.md +35 -56
  2. package/README.zh_CN.md +30 -50
  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 +176 -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 +48 -0
  16. package/dist/lib/agent_handler.d.ts +7 -0
  17. package/dist/lib/agent_handler.js +26 -0
  18. package/dist/lib/app.d.ts +7 -0
  19. package/dist/lib/app.js +251 -0
  20. package/dist/lib/app_handler.d.ts +9 -0
  21. package/dist/lib/app_handler.js +56 -0
  22. package/dist/lib/cluster.d.ts +126 -0
  23. package/dist/lib/cluster.js +283 -0
  24. package/dist/lib/context.d.ts +4 -0
  25. package/dist/lib/context.js +13 -0
  26. package/dist/lib/format_options.d.ts +10 -0
  27. package/dist/lib/format_options.js +65 -0
  28. package/dist/lib/inject_context.d.ts +9 -0
  29. package/dist/lib/inject_context.js +106 -0
  30. package/dist/lib/mock_agent.d.ts +9 -0
  31. package/dist/lib/mock_agent.js +45 -0
  32. package/dist/lib/mock_custom_loader.d.ts +4 -0
  33. package/dist/lib/mock_custom_loader.js +35 -0
  34. package/dist/lib/mock_http_server.d.ts +6 -0
  35. package/dist/lib/mock_http_server.js +17 -0
  36. package/dist/lib/mock_httpclient.d.ts +40 -0
  37. package/dist/lib/mock_httpclient.js +110 -0
  38. package/dist/lib/parallel/agent.d.ts +24 -0
  39. package/dist/lib/parallel/agent.js +111 -0
  40. package/dist/lib/parallel/app.d.ts +24 -0
  41. package/dist/lib/parallel/app.js +98 -0
  42. package/dist/lib/parallel/util.d.ts +6 -0
  43. package/dist/lib/parallel/util.js +59 -0
  44. package/dist/lib/prerequire.d.ts +1 -0
  45. package/dist/lib/prerequire.js +1 -0
  46. package/dist/lib/request_call_function.d.ts +1 -0
  47. package/dist/lib/request_call_function.js +37 -0
  48. package/dist/lib/restore.d.ts +4 -0
  49. package/dist/lib/restore.js +16 -0
  50. package/dist/lib/start-cluster.d.ts +1 -0
  51. package/dist/lib/start-cluster.js +19 -0
  52. package/dist/lib/supertest.d.ts +16 -0
  53. package/dist/lib/supertest.js +39 -0
  54. package/dist/lib/tmp/empty.d.ts +1 -0
  55. package/dist/lib/tmp/empty.js +1 -0
  56. package/{src/lib/types.ts → dist/lib/types.d.ts} +12 -29
  57. package/dist/lib/types.js +1 -0
  58. package/dist/lib/utils.d.ts +12 -0
  59. package/dist/lib/utils.js +40 -0
  60. package/dist/register.d.ts +12 -0
  61. package/dist/register.js +65 -0
  62. package/dist/typings/index.d.ts +1 -0
  63. package/package.json +68 -100
  64. package/dist/commonjs/app/extend/agent.d.ts +0 -34
  65. package/dist/commonjs/app/extend/agent.js +0 -49
  66. package/dist/commonjs/app/extend/application.d.ts +0 -172
  67. package/dist/commonjs/app/extend/application.js +0 -450
  68. package/dist/commonjs/app/middleware/cluster_app_mock.d.ts +0 -3
  69. package/dist/commonjs/app/middleware/cluster_app_mock.js +0 -101
  70. package/dist/commonjs/app.d.ts +0 -6
  71. package/dist/commonjs/app.js +0 -20
  72. package/dist/commonjs/bootstrap.d.ts +0 -5
  73. package/dist/commonjs/bootstrap.js +0 -59
  74. package/dist/commonjs/index.d.ts +0 -77
  75. package/dist/commonjs/index.js +0 -114
  76. package/dist/commonjs/lib/agent_handler.d.ts +0 -3
  77. package/dist/commonjs/lib/agent_handler.js +0 -28
  78. package/dist/commonjs/lib/app.d.ts +0 -3
  79. package/dist/commonjs/lib/app.js +0 -301
  80. package/dist/commonjs/lib/app_handler.d.ts +0 -5
  81. package/dist/commonjs/lib/app_handler.js +0 -71
  82. package/dist/commonjs/lib/cluster.d.ts +0 -114
  83. package/dist/commonjs/lib/cluster.js +0 -337
  84. package/dist/commonjs/lib/context.d.ts +0 -1
  85. package/dist/commonjs/lib/context.js +0 -16
  86. package/dist/commonjs/lib/format_options.d.ts +0 -5
  87. package/dist/commonjs/lib/format_options.js +0 -100
  88. package/dist/commonjs/lib/inject_context.d.ts +0 -6
  89. package/dist/commonjs/lib/inject_context.js +0 -132
  90. package/dist/commonjs/lib/mock_agent.d.ts +0 -5
  91. package/dist/commonjs/lib/mock_agent.js +0 -49
  92. package/dist/commonjs/lib/mock_custom_loader.d.ts +0 -1
  93. package/dist/commonjs/lib/mock_custom_loader.js +0 -37
  94. package/dist/commonjs/lib/mock_http_server.d.ts +0 -2
  95. package/dist/commonjs/lib/mock_http_server.js +0 -24
  96. package/dist/commonjs/lib/mock_httpclient.d.ts +0 -36
  97. package/dist/commonjs/lib/mock_httpclient.js +0 -147
  98. package/dist/commonjs/lib/parallel/agent.d.ts +0 -20
  99. package/dist/commonjs/lib/parallel/agent.js +0 -125
  100. package/dist/commonjs/lib/parallel/app.d.ts +0 -20
  101. package/dist/commonjs/lib/parallel/app.js +0 -115
  102. package/dist/commonjs/lib/parallel/util.d.ts +0 -3
  103. package/dist/commonjs/lib/parallel/util.js +0 -77
  104. package/dist/commonjs/lib/prerequire.d.ts +0 -1
  105. package/dist/commonjs/lib/prerequire.js +0 -26
  106. package/dist/commonjs/lib/request_call_function.d.ts +0 -1
  107. package/dist/commonjs/lib/request_call_function.js +0 -52
  108. package/dist/commonjs/lib/restore.d.ts +0 -1
  109. package/dist/commonjs/lib/restore.js +0 -16
  110. package/dist/commonjs/lib/start-cluster.d.ts +0 -2
  111. package/dist/commonjs/lib/start-cluster.js +0 -23
  112. package/dist/commonjs/lib/supertest.d.ts +0 -11
  113. package/dist/commonjs/lib/supertest.js +0 -48
  114. package/dist/commonjs/lib/tmp/empty.d.ts +0 -1
  115. package/dist/commonjs/lib/tmp/empty.js +0 -3
  116. package/dist/commonjs/lib/types.d.ts +0 -68
  117. package/dist/commonjs/lib/types.js +0 -3
  118. package/dist/commonjs/lib/utils.d.ts +0 -9
  119. package/dist/commonjs/lib/utils.js +0 -80
  120. package/dist/commonjs/package.json +0 -3
  121. package/dist/commonjs/register.d.ts +0 -8
  122. package/dist/commonjs/register.js +0 -80
  123. package/dist/esm/app/extend/agent.d.ts +0 -34
  124. package/dist/esm/app/extend/agent.js +0 -46
  125. package/dist/esm/app/extend/application.d.ts +0 -172
  126. package/dist/esm/app/extend/application.js +0 -444
  127. package/dist/esm/app/middleware/cluster_app_mock.d.ts +0 -3
  128. package/dist/esm/app/middleware/cluster_app_mock.js +0 -99
  129. package/dist/esm/app.d.ts +0 -6
  130. package/dist/esm/app.js +0 -17
  131. package/dist/esm/bootstrap.d.ts +0 -5
  132. package/dist/esm/bootstrap.js +0 -15
  133. package/dist/esm/index.d.ts +0 -77
  134. package/dist/esm/index.js +0 -91
  135. package/dist/esm/lib/agent_handler.d.ts +0 -3
  136. package/dist/esm/lib/agent_handler.js +0 -24
  137. package/dist/esm/lib/app.d.ts +0 -3
  138. package/dist/esm/lib/app.js +0 -295
  139. package/dist/esm/lib/app_handler.d.ts +0 -5
  140. package/dist/esm/lib/app_handler.js +0 -65
  141. package/dist/esm/lib/cluster.d.ts +0 -114
  142. package/dist/esm/lib/cluster.js +0 -328
  143. package/dist/esm/lib/context.d.ts +0 -1
  144. package/dist/esm/lib/context.js +0 -13
  145. package/dist/esm/lib/format_options.d.ts +0 -5
  146. package/dist/esm/lib/format_options.js +0 -94
  147. package/dist/esm/lib/inject_context.d.ts +0 -6
  148. package/dist/esm/lib/inject_context.js +0 -126
  149. package/dist/esm/lib/mock_agent.d.ts +0 -5
  150. package/dist/esm/lib/mock_agent.js +0 -45
  151. package/dist/esm/lib/mock_custom_loader.d.ts +0 -1
  152. package/dist/esm/lib/mock_custom_loader.js +0 -34
  153. package/dist/esm/lib/mock_http_server.d.ts +0 -2
  154. package/dist/esm/lib/mock_http_server.js +0 -18
  155. package/dist/esm/lib/mock_httpclient.d.ts +0 -36
  156. package/dist/esm/lib/mock_httpclient.js +0 -144
  157. package/dist/esm/lib/parallel/agent.d.ts +0 -20
  158. package/dist/esm/lib/parallel/agent.js +0 -117
  159. package/dist/esm/lib/parallel/app.d.ts +0 -20
  160. package/dist/esm/lib/parallel/app.js +0 -110
  161. package/dist/esm/lib/parallel/util.d.ts +0 -3
  162. package/dist/esm/lib/parallel/util.js +0 -73
  163. package/dist/esm/lib/prerequire.d.ts +0 -1
  164. package/dist/esm/lib/prerequire.js +0 -25
  165. package/dist/esm/lib/request_call_function.d.ts +0 -1
  166. package/dist/esm/lib/request_call_function.js +0 -47
  167. package/dist/esm/lib/restore.d.ts +0 -1
  168. package/dist/esm/lib/restore.js +0 -13
  169. package/dist/esm/lib/start-cluster.d.ts +0 -2
  170. package/dist/esm/lib/start-cluster.js +0 -18
  171. package/dist/esm/lib/supertest.d.ts +0 -11
  172. package/dist/esm/lib/supertest.js +0 -40
  173. package/dist/esm/lib/tmp/empty.d.ts +0 -1
  174. package/dist/esm/lib/tmp/empty.js +0 -2
  175. package/dist/esm/lib/types.d.ts +0 -68
  176. package/dist/esm/lib/types.js +0 -2
  177. package/dist/esm/lib/utils.d.ts +0 -9
  178. package/dist/esm/lib/utils.js +0 -69
  179. package/dist/esm/package.json +0 -3
  180. package/dist/esm/register.d.ts +0 -8
  181. package/dist/esm/register.js +0 -75
  182. package/dist/package.json +0 -4
  183. package/src/app/extend/agent.ts +0 -57
  184. package/src/app/extend/application.ts +0 -512
  185. package/src/app/middleware/cluster_app_mock.ts +0 -102
  186. package/src/app.ts +0 -18
  187. package/src/bootstrap.ts +0 -25
  188. package/src/index.ts +0 -112
  189. package/src/lib/agent_handler.ts +0 -28
  190. package/src/lib/app.ts +0 -314
  191. package/src/lib/app_handler.ts +0 -77
  192. package/src/lib/cluster.ts +0 -363
  193. package/src/lib/context.ts +0 -14
  194. package/src/lib/format_options.ts +0 -103
  195. package/src/lib/inject_context.ts +0 -134
  196. package/src/lib/mock_agent.ts +0 -57
  197. package/src/lib/mock_custom_loader.ts +0 -36
  198. package/src/lib/mock_http_server.ts +0 -19
  199. package/src/lib/mock_httpclient.ts +0 -183
  200. package/src/lib/parallel/agent.ts +0 -128
  201. package/src/lib/parallel/app.ts +0 -123
  202. package/src/lib/parallel/util.ts +0 -66
  203. package/src/lib/prerequire.ts +0 -25
  204. package/src/lib/request_call_function.ts +0 -49
  205. package/src/lib/restore.ts +0 -14
  206. package/src/lib/start-cluster.ts +0 -23
  207. package/src/lib/supertest.ts +0 -45
  208. package/src/lib/tmp/.gitkeep +0 -0
  209. package/src/lib/tmp/empty.ts +0 -0
  210. package/src/lib/utils.ts +0 -82
  211. package/src/register.ts +0 -80
  212. package/src/typings/index.d.ts +0 -4
@@ -1,328 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- import path from 'node:path';
3
- import os from 'node:os';
4
- import childProcess from 'node:child_process';
5
- import { once } from 'node:events';
6
- import { Coffee } from 'coffee';
7
- import { Ready } from 'get-ready';
8
- import { request as supertestRequest } from './supertest.js';
9
- import { sleep, rimrafSync, getSourceDirname } from './utils.js';
10
- import { formatOptions } from './format_options.js';
11
- const debug = debuglog('@eggjs/mock/lib/cluster');
12
- const clusters = new Map();
13
- const serverBin = path.join(getSourceDirname(), 'lib/start-cluster.js');
14
- const requestCallFunctionFile = path.join(getSourceDirname(), 'lib/request_call_function.js');
15
- let masterPort = 17000;
16
- /**
17
- * A cluster version of egg.Application, you can test with supertest
18
- * @example
19
- * ```js
20
- * const mm = require('mm');
21
- * const request = require('supertest');
22
- *
23
- * describe('ClusterApplication', () => {
24
- * let app;
25
- * before(function (done) {
26
- * app = mm.cluster({ baseDir });
27
- * app.ready(done);
28
- * });
29
- *
30
- * after(function () {
31
- * app.close();
32
- * });
33
- *
34
- * it('should 200', function (done) {
35
- * request(app.callback())
36
- * .get('/')
37
- * .expect(200, done);
38
- * });
39
- * });
40
- */
41
- export class ClusterApplication extends Coffee {
42
- options;
43
- port;
44
- baseDir;
45
- closed;
46
- /**
47
- * @class
48
- * @param {Object} options
49
- * - {String} baseDir - The directory of the application
50
- * - {Object} plugins - Custom you plugins
51
- * - {String} framework - The directory of the egg framework
52
- * - {Boolean} [cache=true] - Cache application based on baseDir
53
- * - {Boolean} [coverage=true] - Switch on process coverage, but it'll be slower
54
- * - {Boolean} [clean=true] - Remove $baseDir/logs
55
- * - {Object} [opt] - opt pass to coffee, such as { execArgv: ['--debug'] }
56
- * ```
57
- */
58
- constructor(options) {
59
- const opt = options.opt;
60
- delete options.opt;
61
- // incremental port
62
- options.port = options.port ?? ++masterPort;
63
- // Set 1 worker when test
64
- if (!options.workers) {
65
- options.workers = 1;
66
- }
67
- const args = [JSON.stringify(options)];
68
- debug('fork %s, args: %s, opt: %j', serverBin, args.join(' '), opt);
69
- super({
70
- method: 'fork',
71
- cmd: serverBin,
72
- args,
73
- opt,
74
- });
75
- Ready.mixin(this);
76
- this.port = options.port;
77
- this.baseDir = options.baseDir;
78
- // print stdout and stderr when DEBUG, otherwise stderr.
79
- this.debug(process.env.DEBUG ? 0 : 2);
80
- // disable coverage
81
- if (options.coverage === false) {
82
- this.coverage(false);
83
- }
84
- process.nextTick(() => {
85
- this.proc.on('message', (msg) => {
86
- // 'egg-ready' and { action: 'egg-ready' }
87
- const action = msg && msg.action ? msg.action : msg;
88
- switch (action) {
89
- case 'egg-ready':
90
- this.emit('close', 0);
91
- break;
92
- case 'app-worker-died':
93
- case 'agent-worker-died':
94
- this.emit('close', 1);
95
- break;
96
- default:
97
- // ignore it
98
- break;
99
- }
100
- });
101
- });
102
- this.end(() => this.ready(true));
103
- }
104
- /**
105
- * the process that forked
106
- * @member {ChildProcess}
107
- */
108
- get process() {
109
- return this.proc;
110
- }
111
- /**
112
- * Compatible API for supertest
113
- */
114
- callback() {
115
- return this;
116
- }
117
- /**
118
- * Compatible API for supertest
119
- * @member {String} url
120
- * @private
121
- */
122
- get url() {
123
- return 'http://127.0.0.1:' + this.port;
124
- }
125
- /**
126
- * Compatible API for supertest
127
- */
128
- address() {
129
- return {
130
- port: this.port,
131
- };
132
- }
133
- /**
134
- * Compatible API for supertest
135
- */
136
- listen() {
137
- return this;
138
- }
139
- /**
140
- * kill the process
141
- */
142
- async close() {
143
- this.closed = true;
144
- const proc = this.proc;
145
- const baseDir = this.baseDir;
146
- if (proc.connected) {
147
- proc.kill('SIGTERM');
148
- await once(proc, 'exit');
149
- }
150
- clusters.delete(baseDir);
151
- debug('delete cluster cache %s, remain %s', baseDir, [...clusters.keys()]);
152
- if (os.platform() === 'win32') {
153
- await sleep(1000);
154
- }
155
- }
156
- get isClosed() {
157
- return this.closed;
158
- }
159
- // mock app.router.pathFor(name) api
160
- get router() {
161
- const self = this;
162
- return {
163
- pathFor(url) {
164
- return self._callFunctionOnAppWorker('pathFor', [url], 'router', true);
165
- },
166
- };
167
- }
168
- /**
169
- * get app[property] value in app worker
170
- */
171
- getAppInstanceProperty(property) {
172
- return this._callFunctionOnAppWorker('__getter__', [], property, true);
173
- }
174
- /**
175
- * collection logger message, then can be use on `expectLog()`
176
- * it's different from `app.expectLog()`, only support string params.
177
- *
178
- * @param {String} [logger] - logger instance name, default is `logger`
179
- * @function ClusterApplication#expectLog
180
- */
181
- mockLog(logger) {
182
- logger = logger ?? 'logger';
183
- this._callFunctionOnAppWorker('mockLog', [logger], null, true);
184
- }
185
- /**
186
- * expect str in the logger
187
- * it's different from `app.expectLog()`, only support string params.
188
- *
189
- * @param {String} str - test str
190
- * @param {String} [logger] - logger instance name, default is `logger`
191
- * @function ClusterApplication#expectLog
192
- */
193
- expectLog(str, logger) {
194
- logger = logger ?? 'logger';
195
- this._callFunctionOnAppWorker('expectLog', [str, logger], null, true);
196
- }
197
- /**
198
- * not expect str in the logger
199
- * it's different from `app.notExpectLog()`, only support string params.
200
- *
201
- * @param {String} str - test str
202
- * @param {String} [logger] - logger instance name, default is `logger`
203
- * @function ClusterApplication#notExpectLog
204
- */
205
- notExpectLog(str, logger) {
206
- logger = logger ?? 'logger';
207
- this._callFunctionOnAppWorker('notExpectLog', [str, logger], null, true);
208
- }
209
- httpRequest() {
210
- return supertestRequest(this);
211
- }
212
- _callFunctionOnAppWorker(method, args = [], property = undefined, needResult = false) {
213
- for (let i = 0; i < args.length; i++) {
214
- const arg = args[i];
215
- if (typeof arg === 'function') {
216
- args[i] = {
217
- __egg_mock_type: 'function',
218
- value: arg.toString(),
219
- };
220
- }
221
- else if (arg instanceof Error) {
222
- const errObject = {
223
- __egg_mock_type: 'error',
224
- name: arg.name,
225
- message: arg.message,
226
- stack: arg.stack,
227
- };
228
- for (const key in arg) {
229
- if (key !== 'name' && key !== 'message' && key !== 'stack') {
230
- errObject[key] = arg[key];
231
- }
232
- }
233
- args[i] = errObject;
234
- }
235
- }
236
- const data = {
237
- port: this.port,
238
- method,
239
- args,
240
- property,
241
- needResult,
242
- };
243
- const child = childProcess.spawnSync(process.execPath, [
244
- requestCallFunctionFile,
245
- JSON.stringify(data),
246
- ], {
247
- stdio: 'pipe',
248
- });
249
- // if (child.stderr && child.stderr.length > 0) {
250
- // console.error(child.stderr.toString());
251
- // }
252
- let result;
253
- if (child.stdout && child.stdout.length > 0) {
254
- if (needResult) {
255
- result = JSON.parse(child.stdout.toString());
256
- }
257
- else {
258
- console.error(child.stdout.toString());
259
- }
260
- }
261
- if (child.status !== 0) {
262
- throw new Error(child.stderr.toString());
263
- }
264
- if (child.error) {
265
- throw child.error;
266
- }
267
- return result;
268
- }
269
- }
270
- export function createCluster(initOptions) {
271
- const options = formatOptions(initOptions);
272
- if (options.cache && clusters.has(options.baseDir)) {
273
- const clusterApp = clusters.get(options.baseDir);
274
- // return cache when it hasn't been killed
275
- if (!clusterApp.isClosed) {
276
- return clusterApp;
277
- }
278
- // delete the cache when it's closed
279
- clusters.delete(options.baseDir);
280
- }
281
- if (options.clean !== false) {
282
- const logDir = path.join(options.baseDir, 'logs');
283
- try {
284
- rimrafSync(logDir);
285
- }
286
- catch (err) {
287
- console.error(`remove log dir ${logDir} failed: ${err.stack}`);
288
- }
289
- const runDir = path.join(options.baseDir, 'run');
290
- try {
291
- rimrafSync(runDir);
292
- }
293
- catch (err) {
294
- console.error(`remove run dir ${runDir} failed: ${err.stack}`);
295
- }
296
- }
297
- let clusterApp = new ClusterApplication(options);
298
- clusterApp = new Proxy(clusterApp, {
299
- get(target, prop) {
300
- debug('proxy handler.get %s', prop);
301
- // proxy mockXXX function to app worker
302
- const method = prop;
303
- if (typeof method === 'string' && /^mock\w+$/.test(method) && target[method] === undefined) {
304
- return function mockProxy(...args) {
305
- return target._callFunctionOnAppWorker(method, args, null, true);
306
- };
307
- }
308
- return target[prop];
309
- },
310
- });
311
- clusters.set(options.baseDir, clusterApp);
312
- return clusterApp;
313
- }
314
- // export to let mm.restore() worked
315
- export async function restore() {
316
- for (const clusterApp of clusters.values()) {
317
- // will proxy to app.mockRestore()
318
- await clusterApp.mockRestore();
319
- }
320
- }
321
- // ensure to close App process on test exit.
322
- process.on('exit', () => {
323
- for (const clusterApp of clusters.values()) {
324
- debug('on exit close clusterApp, port: %s', clusterApp.port);
325
- clusterApp.close();
326
- }
327
- });
328
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdwRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUVsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLDhCQUE4QixDQUFDLENBQUM7QUFDOUYsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBRXZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsTUFBTTtJQUU1QyxPQUFPLENBQWdDO0lBQ3ZDLElBQUks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
@@ -1 +0,0 @@
1
- export declare const context: any;
@@ -1,13 +0,0 @@
1
- import { utils } from '@eggjs/core';
2
- export const context = {
3
- runInBackground(scope) {
4
- /* istanbul ignore next */
5
- const taskName = scope._name || scope.name || utils.getCalleeFromStack(true);
6
- if (taskName) {
7
- scope._name = taskName;
8
- }
9
- const promise = this._runInBackground(scope);
10
- this.app._backgroundTasks.push(promise);
11
- },
12
- };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNyQixlQUFlLENBQUMsS0FBVTtRQUN4QiwwQkFBMEI7UUFDMUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsS0FBSyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0ssQ0FBQyJ9
@@ -1,5 +0,0 @@
1
- import { MockOptions, MockApplicationOptions } from './types.js';
2
- /**
3
- * format the options
4
- */
5
- export declare function formatOptions(initOptions?: MockOptions): MockApplicationOptions;
@@ -1,94 +0,0 @@
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
- import { getSourceDirname } from './utils.js';
7
- const debug = debuglog('@eggjs/mock/lib/format_options');
8
- /**
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') &&
72
- (env === 'default' || env === 'test' || env === 'prod')) {
73
- mm(process.env, 'HOME', options.baseDir);
74
- }
75
- // disable cache after call mm.env(),
76
- // otherwise it will use cache and won't load again.
77
- if (process.env.EGG_MOCK_SERVER_ENV) {
78
- options.cache = false;
79
- }
80
- debug('format options: %j', options);
81
- return options;
82
- }
83
- function getPluginName(pkgPath) {
84
- try {
85
- const pkg = readJSONSync(pkgPath);
86
- if (pkg.eggPlugin?.name) {
87
- return pkg.eggPlugin.name;
88
- }
89
- }
90
- catch (_) {
91
- // ignore
92
- }
93
- }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0X29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2Zvcm1hdF9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBeUI7SUFDckQsTUFBTSxPQUFPLEdBQUc7UUFDZCxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN0QixLQUFLLEVBQUUsSUFBSTtRQUNYLFFBQVEsRUFBRSxJQUFJO1FBQ2QsS0FBSyxFQUFFLElBQUk7UUFDWCxHQUFHLFdBQVc7S0FDVyxDQUFDO0lBRTVCLGlDQUFpQztJQUNqQyxRQUFRO0lBQ1IsMEVBQTBFO0lBQzFFLE1BQU07SUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELElBQUksU0FBUyxHQUFHLFdBQVcsRUFBRSxTQUFTLElBQUksV0FBVyxFQUFFLFNBQVMsQ0FBQztJ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
@@ -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,126 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- import assert from 'node:assert';
3
- import { getApp } from './app_handler.js';
4
- const MOCHA_SUITE_APP = Symbol.for('mocha#suite#app');
5
- const debug = debuglog('@eggjs/mock/lib/inject_context');
6
- /**
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');
125
- }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0X2NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luamVjdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFdEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFFekQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9CLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztJQUN6QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUUzQyxTQUFTLFlBQVksQ0FBQyxLQUFVLEVBQUUsSUFBUztRQUN6QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDM0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxJQUFJLFVBQVUsR0FBRyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksVUFBVSxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUMzQyxDQUFDO0lBRUQsK0JBQStCO0lB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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,45 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- import { MockAgent, setGlobalDispatcher, getGlobalDispatcher, } from 'urllib';
3
- const debug = debuglog('@eggjs/mock/lib/mock_agent');
4
- 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;
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');
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbW9ja19hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFDTCxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEdBRXBELE1BQU0sUUFBUSxDQUFDO0FBRWhCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBUXJELFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQzlCLFVBQVUsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztBQUV2RSxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQWlDO0lBQzVELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkMsVUFBVSxDQUFDLGtCQUFrQixHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFDdEQsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDL0UsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN2RixLQUFLLENBQUMsOEJBQThCLEVBQUUsVUFBVSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6QyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsSUFBSSxPQUFPLEdBQUcsRUFBRSxVQUFVLEVBQUUsYUFBYSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3pELEdBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0I7SUFDcEMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDaEMsSUFBSSxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNsQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLDhCQUE4QixFQUFFLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRSxLQUFLLE1BQU0sQ0FBRSxVQUFVLEVBQUUsVUFBVSxDQUFFLElBQUksVUFBVSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDNUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNDLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDckMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==
@@ -1 +0,0 @@
1
- export declare function setCustomLoader(app: any): void;