deepv-code 1.0.182 → 1.0.183

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 (193) hide show
  1. package/bundle/dvcode.js +635 -635
  2. package/package.json +1 -1
  3. package/bundle/assets/help/README.md +0 -113
  4. package/bundle/assets/sounds/README.md +0 -74
  5. package/bundle/node_modules/undici/LICENSE +0 -21
  6. package/bundle/node_modules/undici/README.md +0 -472
  7. package/bundle/node_modules/undici/docs/docs/api/Agent.md +0 -83
  8. package/bundle/node_modules/undici/docs/docs/api/BalancedPool.md +0 -99
  9. package/bundle/node_modules/undici/docs/docs/api/CacheStorage.md +0 -30
  10. package/bundle/node_modules/undici/docs/docs/api/CacheStore.md +0 -151
  11. package/bundle/node_modules/undici/docs/docs/api/Client.md +0 -281
  12. package/bundle/node_modules/undici/docs/docs/api/ClientStats.md +0 -27
  13. package/bundle/node_modules/undici/docs/docs/api/Connector.md +0 -115
  14. package/bundle/node_modules/undici/docs/docs/api/ContentType.md +0 -57
  15. package/bundle/node_modules/undici/docs/docs/api/Cookies.md +0 -101
  16. package/bundle/node_modules/undici/docs/docs/api/Debug.md +0 -62
  17. package/bundle/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +0 -204
  18. package/bundle/node_modules/undici/docs/docs/api/Dispatcher.md +0 -1200
  19. package/bundle/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +0 -159
  20. package/bundle/node_modules/undici/docs/docs/api/Errors.md +0 -49
  21. package/bundle/node_modules/undici/docs/docs/api/EventSource.md +0 -45
  22. package/bundle/node_modules/undici/docs/docs/api/Fetch.md +0 -52
  23. package/bundle/node_modules/undici/docs/docs/api/H2CClient.md +0 -262
  24. package/bundle/node_modules/undici/docs/docs/api/MockAgent.md +0 -603
  25. package/bundle/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -197
  26. package/bundle/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -43
  27. package/bundle/node_modules/undici/docs/docs/api/MockClient.md +0 -77
  28. package/bundle/node_modules/undici/docs/docs/api/MockErrors.md +0 -12
  29. package/bundle/node_modules/undici/docs/docs/api/MockPool.md +0 -548
  30. package/bundle/node_modules/undici/docs/docs/api/Pool.md +0 -84
  31. package/bundle/node_modules/undici/docs/docs/api/PoolStats.md +0 -35
  32. package/bundle/node_modules/undici/docs/docs/api/ProxyAgent.md +0 -227
  33. package/bundle/node_modules/undici/docs/docs/api/RedirectHandler.md +0 -96
  34. package/bundle/node_modules/undici/docs/docs/api/RetryAgent.md +0 -45
  35. package/bundle/node_modules/undici/docs/docs/api/RetryHandler.md +0 -117
  36. package/bundle/node_modules/undici/docs/docs/api/Util.md +0 -25
  37. package/bundle/node_modules/undici/docs/docs/api/WebSocket.md +0 -85
  38. package/bundle/node_modules/undici/docs/docs/api/api-lifecycle.md +0 -91
  39. package/bundle/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -64
  40. package/bundle/node_modules/undici/docs/docs/best-practices/mocking-request.md +0 -190
  41. package/bundle/node_modules/undici/docs/docs/best-practices/proxy.md +0 -127
  42. package/bundle/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -20
  43. package/bundle/node_modules/undici/index-fetch.js +0 -35
  44. package/bundle/node_modules/undici/index.d.ts +0 -3
  45. package/bundle/node_modules/undici/index.js +0 -183
  46. package/bundle/node_modules/undici/lib/api/abort-signal.js +0 -59
  47. package/bundle/node_modules/undici/lib/api/api-connect.js +0 -110
  48. package/bundle/node_modules/undici/lib/api/api-pipeline.js +0 -252
  49. package/bundle/node_modules/undici/lib/api/api-request.js +0 -199
  50. package/bundle/node_modules/undici/lib/api/api-stream.js +0 -209
  51. package/bundle/node_modules/undici/lib/api/api-upgrade.js +0 -110
  52. package/bundle/node_modules/undici/lib/api/index.js +0 -7
  53. package/bundle/node_modules/undici/lib/api/readable.js +0 -558
  54. package/bundle/node_modules/undici/lib/api/util.js +0 -95
  55. package/bundle/node_modules/undici/lib/cache/memory-cache-store.js +0 -234
  56. package/bundle/node_modules/undici/lib/cache/sqlite-cache-store.js +0 -461
  57. package/bundle/node_modules/undici/lib/core/connect.js +0 -164
  58. package/bundle/node_modules/undici/lib/core/constants.js +0 -143
  59. package/bundle/node_modules/undici/lib/core/diagnostics.js +0 -196
  60. package/bundle/node_modules/undici/lib/core/errors.js +0 -244
  61. package/bundle/node_modules/undici/lib/core/request.js +0 -397
  62. package/bundle/node_modules/undici/lib/core/symbols.js +0 -68
  63. package/bundle/node_modules/undici/lib/core/tree.js +0 -160
  64. package/bundle/node_modules/undici/lib/core/util.js +0 -988
  65. package/bundle/node_modules/undici/lib/dispatcher/agent.js +0 -135
  66. package/bundle/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -206
  67. package/bundle/node_modules/undici/lib/dispatcher/client-h1.js +0 -1615
  68. package/bundle/node_modules/undici/lib/dispatcher/client-h2.js +0 -798
  69. package/bundle/node_modules/undici/lib/dispatcher/client.js +0 -614
  70. package/bundle/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -161
  71. package/bundle/node_modules/undici/lib/dispatcher/dispatcher.js +0 -48
  72. package/bundle/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -151
  73. package/bundle/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -159
  74. package/bundle/node_modules/undici/lib/dispatcher/h2c-client.js +0 -122
  75. package/bundle/node_modules/undici/lib/dispatcher/pool-base.js +0 -191
  76. package/bundle/node_modules/undici/lib/dispatcher/pool.js +0 -118
  77. package/bundle/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -275
  78. package/bundle/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
  79. package/bundle/node_modules/undici/lib/global.js +0 -32
  80. package/bundle/node_modules/undici/lib/handler/cache-handler.js +0 -448
  81. package/bundle/node_modules/undici/lib/handler/cache-revalidation-handler.js +0 -124
  82. package/bundle/node_modules/undici/lib/handler/decorator-handler.js +0 -67
  83. package/bundle/node_modules/undici/lib/handler/redirect-handler.js +0 -227
  84. package/bundle/node_modules/undici/lib/handler/retry-handler.js +0 -342
  85. package/bundle/node_modules/undici/lib/handler/unwrap-handler.js +0 -96
  86. package/bundle/node_modules/undici/lib/handler/wrap-handler.js +0 -95
  87. package/bundle/node_modules/undici/lib/interceptor/cache.js +0 -372
  88. package/bundle/node_modules/undici/lib/interceptor/dns.js +0 -432
  89. package/bundle/node_modules/undici/lib/interceptor/dump.js +0 -111
  90. package/bundle/node_modules/undici/lib/interceptor/redirect.js +0 -21
  91. package/bundle/node_modules/undici/lib/interceptor/response-error.js +0 -95
  92. package/bundle/node_modules/undici/lib/interceptor/retry.js +0 -19
  93. package/bundle/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  94. package/bundle/node_modules/undici/lib/llhttp/constants.d.ts +0 -97
  95. package/bundle/node_modules/undici/lib/llhttp/constants.js +0 -498
  96. package/bundle/node_modules/undici/lib/llhttp/constants.js.map +0 -1
  97. package/bundle/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -15
  98. package/bundle/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -15
  99. package/bundle/node_modules/undici/lib/llhttp/utils.d.ts +0 -2
  100. package/bundle/node_modules/undici/lib/llhttp/utils.js +0 -15
  101. package/bundle/node_modules/undici/lib/llhttp/utils.js.map +0 -1
  102. package/bundle/node_modules/undici/lib/mock/mock-agent.js +0 -224
  103. package/bundle/node_modules/undici/lib/mock/mock-call-history.js +0 -248
  104. package/bundle/node_modules/undici/lib/mock/mock-client.js +0 -64
  105. package/bundle/node_modules/undici/lib/mock/mock-errors.js +0 -19
  106. package/bundle/node_modules/undici/lib/mock/mock-interceptor.js +0 -209
  107. package/bundle/node_modules/undici/lib/mock/mock-pool.js +0 -64
  108. package/bundle/node_modules/undici/lib/mock/mock-symbols.js +0 -31
  109. package/bundle/node_modules/undici/lib/mock/mock-utils.js +0 -433
  110. package/bundle/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
  111. package/bundle/node_modules/undici/lib/util/cache.js +0 -368
  112. package/bundle/node_modules/undici/lib/util/date.js +0 -259
  113. package/bundle/node_modules/undici/lib/util/stats.js +0 -32
  114. package/bundle/node_modules/undici/lib/util/timers.js +0 -423
  115. package/bundle/node_modules/undici/lib/web/cache/cache.js +0 -862
  116. package/bundle/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
  117. package/bundle/node_modules/undici/lib/web/cache/util.js +0 -45
  118. package/bundle/node_modules/undici/lib/web/cookies/constants.js +0 -12
  119. package/bundle/node_modules/undici/lib/web/cookies/index.js +0 -199
  120. package/bundle/node_modules/undici/lib/web/cookies/parse.js +0 -322
  121. package/bundle/node_modules/undici/lib/web/cookies/util.js +0 -282
  122. package/bundle/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -399
  123. package/bundle/node_modules/undici/lib/web/eventsource/eventsource.js +0 -484
  124. package/bundle/node_modules/undici/lib/web/eventsource/util.js +0 -37
  125. package/bundle/node_modules/undici/lib/web/fetch/LICENSE +0 -21
  126. package/bundle/node_modules/undici/lib/web/fetch/body.js +0 -532
  127. package/bundle/node_modules/undici/lib/web/fetch/constants.js +0 -131
  128. package/bundle/node_modules/undici/lib/web/fetch/data-url.js +0 -744
  129. package/bundle/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +0 -46
  130. package/bundle/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -501
  131. package/bundle/node_modules/undici/lib/web/fetch/formdata.js +0 -263
  132. package/bundle/node_modules/undici/lib/web/fetch/global.js +0 -40
  133. package/bundle/node_modules/undici/lib/web/fetch/headers.js +0 -719
  134. package/bundle/node_modules/undici/lib/web/fetch/index.js +0 -2258
  135. package/bundle/node_modules/undici/lib/web/fetch/request.js +0 -1099
  136. package/bundle/node_modules/undici/lib/web/fetch/response.js +0 -636
  137. package/bundle/node_modules/undici/lib/web/fetch/util.js +0 -1782
  138. package/bundle/node_modules/undici/lib/web/fetch/webidl.js +0 -740
  139. package/bundle/node_modules/undici/lib/web/websocket/connection.js +0 -325
  140. package/bundle/node_modules/undici/lib/web/websocket/constants.js +0 -126
  141. package/bundle/node_modules/undici/lib/web/websocket/events.js +0 -331
  142. package/bundle/node_modules/undici/lib/web/websocket/frame.js +0 -138
  143. package/bundle/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -70
  144. package/bundle/node_modules/undici/lib/web/websocket/receiver.js +0 -454
  145. package/bundle/node_modules/undici/lib/web/websocket/sender.js +0 -109
  146. package/bundle/node_modules/undici/lib/web/websocket/stream/websocketerror.js +0 -83
  147. package/bundle/node_modules/undici/lib/web/websocket/stream/websocketstream.js +0 -485
  148. package/bundle/node_modules/undici/lib/web/websocket/util.js +0 -338
  149. package/bundle/node_modules/undici/lib/web/websocket/websocket.js +0 -686
  150. package/bundle/node_modules/undici/package.json +0 -149
  151. package/bundle/node_modules/undici/scripts/strip-comments.js +0 -10
  152. package/bundle/node_modules/undici/types/README.md +0 -6
  153. package/bundle/node_modules/undici/types/agent.d.ts +0 -35
  154. package/bundle/node_modules/undici/types/api.d.ts +0 -43
  155. package/bundle/node_modules/undici/types/balanced-pool.d.ts +0 -29
  156. package/bundle/node_modules/undici/types/cache-interceptor.d.ts +0 -172
  157. package/bundle/node_modules/undici/types/cache.d.ts +0 -36
  158. package/bundle/node_modules/undici/types/client-stats.d.ts +0 -15
  159. package/bundle/node_modules/undici/types/client.d.ts +0 -110
  160. package/bundle/node_modules/undici/types/connector.d.ts +0 -34
  161. package/bundle/node_modules/undici/types/content-type.d.ts +0 -21
  162. package/bundle/node_modules/undici/types/cookies.d.ts +0 -30
  163. package/bundle/node_modules/undici/types/diagnostics-channel.d.ts +0 -66
  164. package/bundle/node_modules/undici/types/dispatcher.d.ts +0 -281
  165. package/bundle/node_modules/undici/types/env-http-proxy-agent.d.ts +0 -21
  166. package/bundle/node_modules/undici/types/errors.d.ts +0 -171
  167. package/bundle/node_modules/undici/types/eventsource.d.ts +0 -61
  168. package/bundle/node_modules/undici/types/fetch.d.ts +0 -210
  169. package/bundle/node_modules/undici/types/formdata.d.ts +0 -108
  170. package/bundle/node_modules/undici/types/global-dispatcher.d.ts +0 -9
  171. package/bundle/node_modules/undici/types/global-origin.d.ts +0 -7
  172. package/bundle/node_modules/undici/types/h2c-client.d.ts +0 -75
  173. package/bundle/node_modules/undici/types/handlers.d.ts +0 -15
  174. package/bundle/node_modules/undici/types/header.d.ts +0 -160
  175. package/bundle/node_modules/undici/types/index.d.ts +0 -75
  176. package/bundle/node_modules/undici/types/interceptors.d.ts +0 -34
  177. package/bundle/node_modules/undici/types/mock-agent.d.ts +0 -68
  178. package/bundle/node_modules/undici/types/mock-call-history.d.ts +0 -111
  179. package/bundle/node_modules/undici/types/mock-client.d.ts +0 -25
  180. package/bundle/node_modules/undici/types/mock-errors.d.ts +0 -12
  181. package/bundle/node_modules/undici/types/mock-interceptor.d.ts +0 -93
  182. package/bundle/node_modules/undici/types/mock-pool.d.ts +0 -25
  183. package/bundle/node_modules/undici/types/patch.d.ts +0 -29
  184. package/bundle/node_modules/undici/types/pool-stats.d.ts +0 -19
  185. package/bundle/node_modules/undici/types/pool.d.ts +0 -41
  186. package/bundle/node_modules/undici/types/proxy-agent.d.ts +0 -29
  187. package/bundle/node_modules/undici/types/readable.d.ts +0 -68
  188. package/bundle/node_modules/undici/types/retry-agent.d.ts +0 -8
  189. package/bundle/node_modules/undici/types/retry-handler.d.ts +0 -116
  190. package/bundle/node_modules/undici/types/util.d.ts +0 -18
  191. package/bundle/node_modules/undici/types/utility.d.ts +0 -7
  192. package/bundle/node_modules/undici/types/webidl.d.ts +0 -266
  193. package/bundle/node_modules/undici/types/websocket.d.ts +0 -184
@@ -1,603 +0,0 @@
1
- # Class: MockAgent
2
-
3
- Extends: `undici.Dispatcher`
4
-
5
- A mocked Agent class that implements the Agent API. It allows one to intercept HTTP requests made through undici and return mocked responses instead.
6
-
7
- ## `new MockAgent([options])`
8
-
9
- Arguments:
10
-
11
- * **options** `MockAgentOptions` (optional) - It extends the `Agent` options.
12
-
13
- Returns: `MockAgent`
14
-
15
- ### Parameter: `MockAgentOptions`
16
-
17
- Extends: [`AgentOptions`](/docs/docs/api/Agent.md#parameter-agentoptions)
18
-
19
- * **agent** `Agent` (optional) - Default: `new Agent([options])` - a custom agent encapsulated by the MockAgent.
20
-
21
- * **ignoreTrailingSlash** `boolean` (optional) - Default: `false` - set the default value for `ignoreTrailingSlash` for interceptors.
22
-
23
- * **acceptNonStandardSearchParameters** `boolean` (optional) - Default: `false` - set to `true` if the matcher should also accept non standard search parameters such as multi-value items specified with `[]` (e.g. `param[]=1&param[]=2&param[]=3`) and multi-value items which values are comma separated (e.g. `param=1,2,3`).
24
-
25
- ### Example - Basic MockAgent instantiation
26
-
27
- This will instantiate the MockAgent. It will not do anything until registered as the agent to use with requests and mock interceptions are added.
28
-
29
- ```js
30
- import { MockAgent } from 'undici'
31
-
32
- const mockAgent = new MockAgent()
33
- ```
34
-
35
- ### Example - Basic MockAgent instantiation with custom agent
36
-
37
- ```js
38
- import { Agent, MockAgent } from 'undici'
39
-
40
- const agent = new Agent()
41
-
42
- const mockAgent = new MockAgent({ agent })
43
- ```
44
-
45
- ## Instance Methods
46
-
47
- ### `MockAgent.get(origin)`
48
-
49
- This method creates and retrieves MockPool or MockClient instances which can then be used to intercept HTTP requests. If the number of connections on the mock agent is set to 1, a MockClient instance is returned. Otherwise a MockPool instance is returned.
50
-
51
- For subsequent `MockAgent.get` calls on the same origin, the same mock instance will be returned.
52
-
53
- Arguments:
54
-
55
- * **origin** `string | RegExp | (value) => boolean` - a matcher for the pool origin to be retrieved from the MockAgent.
56
-
57
- | Matcher type | Condition to pass |
58
- |:------------:| -------------------------- |
59
- | `string` | Exact match against string |
60
- | `RegExp` | Regex must pass |
61
- | `Function` | Function must return true |
62
-
63
- Returns: `MockClient | MockPool`.
64
-
65
- | `MockAgentOptions` | Mock instance returned |
66
- | -------------------- | ---------------------- |
67
- | `connections === 1` | `MockClient` |
68
- | `connections` > `1` | `MockPool` |
69
-
70
- #### Example - Basic Mocked Request
71
-
72
- ```js
73
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
74
-
75
- const mockAgent = new MockAgent()
76
- setGlobalDispatcher(mockAgent)
77
-
78
- const mockPool = mockAgent.get('http://localhost:3000')
79
- mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
80
-
81
- const { statusCode, body } = await request('http://localhost:3000/foo')
82
-
83
- console.log('response received', statusCode) // response received 200
84
-
85
- for await (const data of body) {
86
- console.log('data', data.toString('utf8')) // data foo
87
- }
88
- ```
89
-
90
- #### Example - Basic Mocked Request with local mock agent dispatcher
91
-
92
- ```js
93
- import { MockAgent, request } from 'undici'
94
-
95
- const mockAgent = new MockAgent()
96
-
97
- const mockPool = mockAgent.get('http://localhost:3000')
98
- mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
99
-
100
- const {
101
- statusCode,
102
- body
103
- } = await request('http://localhost:3000/foo', { dispatcher: mockAgent })
104
-
105
- console.log('response received', statusCode) // response received 200
106
-
107
- for await (const data of body) {
108
- console.log('data', data.toString('utf8')) // data foo
109
- }
110
- ```
111
-
112
- #### Example - Basic Mocked Request with local mock pool dispatcher
113
-
114
- ```js
115
- import { MockAgent, request } from 'undici'
116
-
117
- const mockAgent = new MockAgent()
118
-
119
- const mockPool = mockAgent.get('http://localhost:3000')
120
- mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
121
-
122
- const {
123
- statusCode,
124
- body
125
- } = await request('http://localhost:3000/foo', { dispatcher: mockPool })
126
-
127
- console.log('response received', statusCode) // response received 200
128
-
129
- for await (const data of body) {
130
- console.log('data', data.toString('utf8')) // data foo
131
- }
132
- ```
133
-
134
- #### Example - Basic Mocked Request with local mock client dispatcher
135
-
136
- ```js
137
- import { MockAgent, request } from 'undici'
138
-
139
- const mockAgent = new MockAgent({ connections: 1 })
140
-
141
- const mockClient = mockAgent.get('http://localhost:3000')
142
- mockClient.intercept({ path: '/foo' }).reply(200, 'foo')
143
-
144
- const {
145
- statusCode,
146
- body
147
- } = await request('http://localhost:3000/foo', { dispatcher: mockClient })
148
-
149
- console.log('response received', statusCode) // response received 200
150
-
151
- for await (const data of body) {
152
- console.log('data', data.toString('utf8')) // data foo
153
- }
154
- ```
155
-
156
- #### Example - Basic Mocked requests with multiple intercepts
157
-
158
- ```js
159
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
160
-
161
- const mockAgent = new MockAgent()
162
- setGlobalDispatcher(mockAgent)
163
-
164
- const mockPool = mockAgent.get('http://localhost:3000')
165
- mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
166
- mockPool.intercept({ path: '/hello'}).reply(200, 'hello')
167
-
168
- const result1 = await request('http://localhost:3000/foo')
169
-
170
- console.log('response received', result1.statusCode) // response received 200
171
-
172
- for await (const data of result1.body) {
173
- console.log('data', data.toString('utf8')) // data foo
174
- }
175
-
176
- const result2 = await request('http://localhost:3000/hello')
177
-
178
- console.log('response received', result2.statusCode) // response received 200
179
-
180
- for await (const data of result2.body) {
181
- console.log('data', data.toString('utf8')) // data hello
182
- }
183
- ```
184
-
185
- #### Example - Mock different requests within the same file
186
-
187
- ```js
188
- const { MockAgent, setGlobalDispatcher } = require('undici');
189
- const agent = new MockAgent();
190
- agent.disableNetConnect();
191
- setGlobalDispatcher(agent);
192
- describe('Test', () => {
193
- it('200', async () => {
194
- const mockAgent = agent.get('http://test.com');
195
- // your test
196
- });
197
- it('200', async () => {
198
- const mockAgent = agent.get('http://testing.com');
199
- // your test
200
- });
201
- });
202
- ```
203
-
204
- #### Example - Mocked request with query body, headers and trailers
205
-
206
- ```js
207
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
208
-
209
- const mockAgent = new MockAgent()
210
- setGlobalDispatcher(mockAgent)
211
-
212
- const mockPool = mockAgent.get('http://localhost:3000')
213
-
214
- mockPool.intercept({
215
- path: '/foo?hello=there&see=ya',
216
- method: 'POST',
217
- body: 'form1=data1&form2=data2'
218
- }).reply(200, { foo: 'bar' }, {
219
- headers: { 'content-type': 'application/json' },
220
- trailers: { 'Content-MD5': 'test' }
221
- })
222
-
223
- const {
224
- statusCode,
225
- headers,
226
- trailers,
227
- body
228
- } = await request('http://localhost:3000/foo?hello=there&see=ya', {
229
- method: 'POST',
230
- body: 'form1=data1&form2=data2'
231
- })
232
-
233
- console.log('response received', statusCode) // response received 200
234
- console.log('headers', headers) // { 'content-type': 'application/json' }
235
-
236
- for await (const data of body) {
237
- console.log('data', data.toString('utf8')) // '{"foo":"bar"}'
238
- }
239
-
240
- console.log('trailers', trailers) // { 'content-md5': 'test' }
241
- ```
242
-
243
- #### Example - Mocked request with origin regex
244
-
245
- ```js
246
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
247
-
248
- const mockAgent = new MockAgent()
249
- setGlobalDispatcher(mockAgent)
250
-
251
- const mockPool = mockAgent.get(new RegExp('http://localhost:3000'))
252
- mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
253
-
254
- const {
255
- statusCode,
256
- body
257
- } = await request('http://localhost:3000/foo')
258
-
259
- console.log('response received', statusCode) // response received 200
260
-
261
- for await (const data of body) {
262
- console.log('data', data.toString('utf8')) // data foo
263
- }
264
- ```
265
-
266
- #### Example - Mocked request with origin function
267
-
268
- ```js
269
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
270
-
271
- const mockAgent = new MockAgent()
272
- setGlobalDispatcher(mockAgent)
273
-
274
- const mockPool = mockAgent.get((origin) => origin === 'http://localhost:3000')
275
- mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
276
-
277
- const {
278
- statusCode,
279
- body
280
- } = await request('http://localhost:3000/foo')
281
-
282
- console.log('response received', statusCode) // response received 200
283
-
284
- for await (const data of body) {
285
- console.log('data', data.toString('utf8')) // data foo
286
- }
287
- ```
288
-
289
- ### `MockAgent.close()`
290
-
291
- Closes the mock agent and waits for registered mock pools and clients to also close before resolving.
292
-
293
- Returns: `Promise<void>`
294
-
295
- #### Example - clean up after tests are complete
296
-
297
- ```js
298
- import { MockAgent, setGlobalDispatcher } from 'undici'
299
-
300
- const mockAgent = new MockAgent()
301
- setGlobalDispatcher(mockAgent)
302
-
303
- await mockAgent.close()
304
- ```
305
-
306
- ### `MockAgent.dispatch(options, handlers)`
307
-
308
- Implements [`Agent.dispatch(options, handlers)`](/docs/docs/api/Agent.md#parameter-agentdispatchoptions).
309
-
310
- ### `MockAgent.request(options[, callback])`
311
-
312
- See [`Dispatcher.request(options [, callback])`](/docs/docs/api/Dispatcher.md#dispatcherrequestoptions-callback).
313
-
314
- #### Example - MockAgent request
315
-
316
- ```js
317
- import { MockAgent } from 'undici'
318
-
319
- const mockAgent = new MockAgent()
320
-
321
- const mockPool = mockAgent.get('http://localhost:3000')
322
- mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
323
-
324
- const {
325
- statusCode,
326
- body
327
- } = await mockAgent.request({
328
- origin: 'http://localhost:3000',
329
- path: '/foo',
330
- method: 'GET'
331
- })
332
-
333
- console.log('response received', statusCode) // response received 200
334
-
335
- for await (const data of body) {
336
- console.log('data', data.toString('utf8')) // data foo
337
- }
338
- ```
339
-
340
- ### `MockAgent.deactivate()`
341
-
342
- This method disables mocking in MockAgent.
343
-
344
- Returns: `void`
345
-
346
- #### Example - Deactivate Mocking
347
-
348
- ```js
349
- import { MockAgent, setGlobalDispatcher } from 'undici'
350
-
351
- const mockAgent = new MockAgent()
352
- setGlobalDispatcher(mockAgent)
353
-
354
- mockAgent.deactivate()
355
- ```
356
-
357
- ### `MockAgent.activate()`
358
-
359
- This method enables mocking in a MockAgent instance. When instantiated, a MockAgent is automatically activated. Therefore, this method is only effective after `MockAgent.deactivate` has been called.
360
-
361
- Returns: `void`
362
-
363
- #### Example - Activate Mocking
364
-
365
- ```js
366
- import { MockAgent, setGlobalDispatcher } from 'undici'
367
-
368
- const mockAgent = new MockAgent()
369
- setGlobalDispatcher(mockAgent)
370
-
371
- mockAgent.deactivate()
372
- // No mocking will occur
373
-
374
- // Later
375
- mockAgent.activate()
376
- ```
377
-
378
- ### `MockAgent.enableNetConnect([host])`
379
-
380
- When requests are not matched in a MockAgent intercept, a real HTTP request is attempted. We can control this further through the use of `enableNetConnect`. This is achieved by defining host matchers so only matching requests will be attempted.
381
-
382
- When using a string, it should only include the **hostname and optionally, the port**. In addition, calling this method multiple times with a string will allow all HTTP requests that match these values.
383
-
384
- Arguments:
385
-
386
- * **host** `string | RegExp | (value) => boolean` - (optional)
387
-
388
- Returns: `void`
389
-
390
- #### Example - Allow all non-matching urls to be dispatched in a real HTTP request
391
-
392
- ```js
393
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
394
-
395
- const mockAgent = new MockAgent()
396
- setGlobalDispatcher(mockAgent)
397
-
398
- mockAgent.enableNetConnect()
399
-
400
- await request('http://example.com')
401
- // A real request is made
402
- ```
403
-
404
- #### Example - Allow requests matching a host string to make real requests
405
-
406
- ```js
407
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
408
-
409
- const mockAgent = new MockAgent()
410
- setGlobalDispatcher(mockAgent)
411
-
412
- mockAgent.enableNetConnect('example-1.com')
413
- mockAgent.enableNetConnect('example-2.com:8080')
414
-
415
- await request('http://example-1.com')
416
- // A real request is made
417
-
418
- await request('http://example-2.com:8080')
419
- // A real request is made
420
-
421
- await request('http://example-3.com')
422
- // Will throw
423
- ```
424
-
425
- #### Example - Allow requests matching a host regex to make real requests
426
-
427
- ```js
428
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
429
-
430
- const mockAgent = new MockAgent()
431
- setGlobalDispatcher(mockAgent)
432
-
433
- mockAgent.enableNetConnect(new RegExp('example.com'))
434
-
435
- await request('http://example.com')
436
- // A real request is made
437
- ```
438
-
439
- #### Example - Allow requests matching a host function to make real requests
440
-
441
- ```js
442
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
443
-
444
- const mockAgent = new MockAgent()
445
- setGlobalDispatcher(mockAgent)
446
-
447
- mockAgent.enableNetConnect((value) => value === 'example.com')
448
-
449
- await request('http://example.com')
450
- // A real request is made
451
- ```
452
-
453
- ### `MockAgent.disableNetConnect()`
454
-
455
- This method causes all requests to throw when requests are not matched in a MockAgent intercept.
456
-
457
- Returns: `void`
458
-
459
- #### Example - Disable all non-matching requests by throwing an error for each
460
-
461
- ```js
462
- import { MockAgent, request } from 'undici'
463
-
464
- const mockAgent = new MockAgent()
465
-
466
- mockAgent.disableNetConnect()
467
-
468
- await request('http://example.com')
469
- // Will throw
470
- ```
471
-
472
- ### `MockAgent.pendingInterceptors()`
473
-
474
- This method returns any pending interceptors registered on a mock agent. A pending interceptor meets one of the following criteria:
475
-
476
- - Is registered with neither `.times(<number>)` nor `.persist()`, and has not been invoked;
477
- - Is persistent (i.e., registered with `.persist()`) and has not been invoked;
478
- - Is registered with `.times(<number>)` and has not been invoked `<number>` of times.
479
-
480
- Returns: `PendingInterceptor[]` (where `PendingInterceptor` is a `MockDispatch` with an additional `origin: string`)
481
-
482
- #### Example - List all pending interceptors
483
-
484
- ```js
485
- const agent = new MockAgent()
486
- agent.disableNetConnect()
487
-
488
- agent
489
- .get('https://example.com')
490
- .intercept({ method: 'GET', path: '/' })
491
- .reply(200)
492
-
493
- const pendingInterceptors = agent.pendingInterceptors()
494
- // Returns [
495
- // {
496
- // timesInvoked: 0,
497
- // times: 1,
498
- // persist: false,
499
- // consumed: false,
500
- // pending: true,
501
- // path: '/',
502
- // method: 'GET',
503
- // body: undefined,
504
- // headers: undefined,
505
- // data: {
506
- // error: null,
507
- // statusCode: 200,
508
- // data: '',
509
- // headers: {},
510
- // trailers: {}
511
- // },
512
- // origin: 'https://example.com'
513
- // }
514
- // ]
515
- ```
516
-
517
- ### `MockAgent.assertNoPendingInterceptors([options])`
518
-
519
- This method throws if the mock agent has any pending interceptors. A pending interceptor meets one of the following criteria:
520
-
521
- - Is registered with neither `.times(<number>)` nor `.persist()`, and has not been invoked;
522
- - Is persistent (i.e., registered with `.persist()`) and has not been invoked;
523
- - Is registered with `.times(<number>)` and has not been invoked `<number>` of times.
524
-
525
- #### Example - Check that there are no pending interceptors
526
-
527
- ```js
528
- const agent = new MockAgent()
529
- agent.disableNetConnect()
530
-
531
- agent
532
- .get('https://example.com')
533
- .intercept({ method: 'GET', path: '/' })
534
- .reply(200)
535
-
536
- agent.assertNoPendingInterceptors()
537
- // Throws an UndiciError with the following message:
538
- //
539
- // 1 interceptor is pending:
540
- //
541
- // ┌─────────┬────────┬───────────────────────┬──────┬─────────────┬────────────┬─────────────┬───────────┐
542
- // │ (index) │ Method │ Origin │ Path │ Status code │ Persistent │ Invocations │ Remaining │
543
- // ├─────────┼────────┼───────────────────────┼──────┼─────────────┼────────────┼─────────────┼───────────┤
544
- // │ 0 │ 'GET' │ 'https://example.com' │ '/' │ 200 │ '❌' │ 0 │ 1 │
545
- // └─────────┴────────┴───────────────────────┴──────┴─────────────┴────────────┴─────────────┴───────────┘
546
- ```
547
-
548
- #### Example - access call history on MockAgent
549
-
550
- You can register every call made within a MockAgent to be able to retrieve the body, headers and so on.
551
-
552
- This is not enabled by default.
553
-
554
- ```js
555
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
556
-
557
- const mockAgent = new MockAgent({ enableCallHistory: true })
558
- setGlobalDispatcher(mockAgent)
559
-
560
- await request('http://example.com', { query: { item: 1 }})
561
-
562
- mockAgent.getCallHistory()?.firstCall()
563
- // Returns
564
- // MockCallHistoryLog {
565
- // body: undefined,
566
- // headers: undefined,
567
- // method: 'GET',
568
- // origin: 'http://example.com',
569
- // fullUrl: 'http://example.com/?item=1',
570
- // path: '/',
571
- // searchParams: { item: '1' },
572
- // protocol: 'http:',
573
- // host: 'example.com',
574
- // port: ''
575
- // }
576
- ```
577
-
578
- #### Example - clear call history
579
-
580
- ```js
581
- const mockAgent = new MockAgent()
582
-
583
- mockAgent.clearAllCallHistory()
584
- ```
585
-
586
- #### Example - call history instance class method
587
-
588
- ```js
589
- const mockAgent = new MockAgent()
590
-
591
- const mockAgentHistory = mockAgent.getCallHistory()
592
-
593
- mockAgentHistory?.calls() // returns an array of MockCallHistoryLogs
594
- mockAgentHistory?.firstCall() // returns the first MockCallHistoryLogs or undefined
595
- mockAgentHistory?.lastCall() // returns the last MockCallHistoryLogs or undefined
596
- mockAgentHistory?.nthCall(3) // returns the third MockCallHistoryLogs or undefined
597
- mockAgentHistory?.filterCalls({ path: '/endpoint', hash: '#hash-value' }) // returns an Array of MockCallHistoryLogs WHERE path === /endpoint OR hash === #hash-value
598
- mockAgentHistory?.filterCalls({ path: '/endpoint', hash: '#hash-value' }, { operator: 'AND' }) // returns an Array of MockCallHistoryLogs WHERE path === /endpoint AND hash === #hash-value
599
- mockAgentHistory?.filterCalls(/"data": "{}"/) // returns an Array of MockCallHistoryLogs where any value match regexp
600
- mockAgentHistory?.filterCalls('application/json') // returns an Array of MockCallHistoryLogs where any value === 'application/json'
601
- mockAgentHistory?.filterCalls((log) => log.path === '/endpoint') // returns an Array of MockCallHistoryLogs when given function returns true
602
- mockAgentHistory?.clear() // clear the history
603
- ```