msw 2.14.3 → 2.14.4
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.
- package/lib/core/{HttpResponse-aGiIzO91.d.ts → HttpResponse-BFS34nkx.d.ts} +16 -0
- package/lib/core/{HttpResponse-CxHR1nNN.d.mts → HttpResponse-CQwYpuKo.d.mts} +16 -0
- package/lib/core/HttpResponse.d.mts +1 -1
- package/lib/core/HttpResponse.d.ts +1 -1
- package/lib/core/experimental/compat.d.mts +1 -1
- package/lib/core/experimental/compat.d.ts +1 -1
- package/lib/core/experimental/define-network.d.mts +1 -1
- package/lib/core/experimental/define-network.d.ts +1 -1
- package/lib/core/experimental/frames/http-frame.d.mts +1 -1
- package/lib/core/experimental/frames/http-frame.d.ts +1 -1
- package/lib/core/experimental/frames/network-frame.d.mts +1 -1
- package/lib/core/experimental/frames/network-frame.d.ts +1 -1
- package/lib/core/experimental/frames/websocket-frame.d.mts +1 -1
- package/lib/core/experimental/frames/websocket-frame.d.ts +1 -1
- package/lib/core/experimental/handlers-controller.d.mts +1 -1
- package/lib/core/experimental/handlers-controller.d.ts +1 -1
- package/lib/core/experimental/index.d.mts +1 -1
- package/lib/core/experimental/index.d.ts +1 -1
- package/lib/core/experimental/on-unhandled-frame.d.mts +1 -1
- package/lib/core/experimental/on-unhandled-frame.d.ts +1 -1
- package/lib/core/experimental/setup-api.d.mts +1 -1
- package/lib/core/experimental/setup-api.d.ts +1 -1
- package/lib/core/experimental/sources/interceptor-source.d.mts +1 -1
- package/lib/core/experimental/sources/interceptor-source.d.ts +1 -1
- package/lib/core/experimental/sources/network-source.d.mts +1 -1
- package/lib/core/experimental/sources/network-source.d.ts +1 -1
- package/lib/core/getResponse.d.mts +1 -1
- package/lib/core/getResponse.d.ts +1 -1
- package/lib/core/graphql.d.mts +1 -1
- package/lib/core/graphql.d.ts +1 -1
- package/lib/core/handlers/GraphQLHandler.d.mts +1 -1
- package/lib/core/handlers/GraphQLHandler.d.ts +1 -1
- package/lib/core/handlers/HttpHandler.d.mts +1 -1
- package/lib/core/handlers/HttpHandler.d.ts +1 -1
- package/lib/core/handlers/RequestHandler.d.mts +1 -1
- package/lib/core/handlers/RequestHandler.d.ts +1 -1
- package/lib/core/handlers/RequestHandler.js +82 -1
- package/lib/core/handlers/RequestHandler.js.map +1 -1
- package/lib/core/handlers/RequestHandler.mjs +82 -1
- package/lib/core/handlers/RequestHandler.mjs.map +1 -1
- package/lib/core/http.d.mts +1 -1
- package/lib/core/http.d.ts +1 -1
- package/lib/core/index.d.mts +1 -1
- package/lib/core/index.d.ts +1 -1
- package/lib/core/passthrough.d.mts +1 -1
- package/lib/core/passthrough.d.ts +1 -1
- package/lib/core/sse.d.mts +1 -1
- package/lib/core/sse.d.ts +1 -1
- package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
- package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
- package/lib/core/utils/executeHandlers.d.mts +1 -1
- package/lib/core/utils/executeHandlers.d.ts +1 -1
- package/lib/core/utils/handleRequest.d.mts +1 -1
- package/lib/core/utils/handleRequest.d.ts +1 -1
- package/lib/core/utils/internal/attachSiblingHandlers.d.mts +1 -1
- package/lib/core/utils/internal/attachSiblingHandlers.d.ts +1 -1
- package/lib/core/utils/internal/isHandlerKind.d.mts +1 -1
- package/lib/core/utils/internal/isHandlerKind.d.ts +1 -1
- package/lib/core/utils/internal/parseGraphQLRequest.d.mts +1 -1
- package/lib/core/utils/internal/parseGraphQLRequest.d.ts +1 -1
- package/lib/core/utils/internal/parseMultipartData.d.mts +1 -1
- package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
- package/lib/core/ws/handleWebSocketEvent.d.mts +1 -1
- package/lib/core/ws/handleWebSocketEvent.d.ts +1 -1
- package/lib/iife/index.js +81 -1
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +1 -1
- package/package.json +2 -2
- package/src/core/handlers/RequestHandler.ts +144 -10
|
@@ -169,7 +169,18 @@ type AsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> =
|
|
|
169
169
|
type ResponseResolverInfo<ResolverExtraInfo extends Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType> = {
|
|
170
170
|
request: StrictRequest<RequestBodyType>;
|
|
171
171
|
requestId: string;
|
|
172
|
+
/**
|
|
173
|
+
* Schedule a callback to run after this response resolver completes.
|
|
174
|
+
* Handy for cleaning up the side effects introduced in the resolver.
|
|
175
|
+
* @example
|
|
176
|
+
* sse('/', ({ client, finalize }) => {
|
|
177
|
+
* const interval = setInterval(() => client.send({ data: 'ping' }))
|
|
178
|
+
* finalize(() => clearInterval(interval))
|
|
179
|
+
* })
|
|
180
|
+
*/
|
|
181
|
+
finalize: ResponseResolverFinalizeFunction;
|
|
172
182
|
} & ResolverExtraInfo;
|
|
183
|
+
type ResponseResolverFinalizeFunction = (callback: () => MaybePromise<void>) => void;
|
|
173
184
|
type ResponseResolver<ResolverExtraInfo extends Record<string, unknown> = Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType, ResponseBodyType extends DefaultBodyType = undefined> = (info: ResponseResolverInfo<ResolverExtraInfo, RequestBodyType>) => AsyncResponseResolverReturnType<ResponseBodyType>;
|
|
174
185
|
interface RequestHandlerArgs<HandlerInfo, HandlerOptions extends RequestHandlerOptions> {
|
|
175
186
|
info: HandlerInfo;
|
|
@@ -192,7 +203,9 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
|
|
|
192
203
|
protected resolver: ResponseResolver<ResolverExtras, any, any>;
|
|
193
204
|
private resolverIterator?;
|
|
194
205
|
private resolverIteratorResult?;
|
|
206
|
+
private resolverIteratorCleanups?;
|
|
195
207
|
private options?;
|
|
208
|
+
private scheduledCleanups;
|
|
196
209
|
info: HandlerInfo & RequestHandlerInternalInfo;
|
|
197
210
|
/**
|
|
198
211
|
* Indicates whether this request handler has been used
|
|
@@ -264,6 +277,9 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
|
|
|
264
277
|
}): Promise<RequestHandlerExecutionResult<ParsedResult> | null>;
|
|
265
278
|
private wrapResolver;
|
|
266
279
|
private createExecutionResult;
|
|
280
|
+
private scheduleCleanup;
|
|
281
|
+
private exhaustCleanups;
|
|
282
|
+
private runScheduledCleanups;
|
|
267
283
|
}
|
|
268
284
|
/**
|
|
269
285
|
* Forwards the cookies from the given response to `document.cookie`.
|
|
@@ -169,7 +169,18 @@ type AsyncResponseResolverReturnType<ResponseBodyType extends DefaultBodyType> =
|
|
|
169
169
|
type ResponseResolverInfo<ResolverExtraInfo extends Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType> = {
|
|
170
170
|
request: StrictRequest<RequestBodyType>;
|
|
171
171
|
requestId: string;
|
|
172
|
+
/**
|
|
173
|
+
* Schedule a callback to run after this response resolver completes.
|
|
174
|
+
* Handy for cleaning up the side effects introduced in the resolver.
|
|
175
|
+
* @example
|
|
176
|
+
* sse('/', ({ client, finalize }) => {
|
|
177
|
+
* const interval = setInterval(() => client.send({ data: 'ping' }))
|
|
178
|
+
* finalize(() => clearInterval(interval))
|
|
179
|
+
* })
|
|
180
|
+
*/
|
|
181
|
+
finalize: ResponseResolverFinalizeFunction;
|
|
172
182
|
} & ResolverExtraInfo;
|
|
183
|
+
type ResponseResolverFinalizeFunction = (callback: () => MaybePromise<void>) => void;
|
|
173
184
|
type ResponseResolver<ResolverExtraInfo extends Record<string, unknown> = Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType, ResponseBodyType extends DefaultBodyType = undefined> = (info: ResponseResolverInfo<ResolverExtraInfo, RequestBodyType>) => AsyncResponseResolverReturnType<ResponseBodyType>;
|
|
174
185
|
interface RequestHandlerArgs<HandlerInfo, HandlerOptions extends RequestHandlerOptions> {
|
|
175
186
|
info: HandlerInfo;
|
|
@@ -192,7 +203,9 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
|
|
|
192
203
|
protected resolver: ResponseResolver<ResolverExtras, any, any>;
|
|
193
204
|
private resolverIterator?;
|
|
194
205
|
private resolverIteratorResult?;
|
|
206
|
+
private resolverIteratorCleanups?;
|
|
195
207
|
private options?;
|
|
208
|
+
private scheduledCleanups;
|
|
196
209
|
info: HandlerInfo & RequestHandlerInternalInfo;
|
|
197
210
|
/**
|
|
198
211
|
* Indicates whether this request handler has been used
|
|
@@ -264,6 +277,9 @@ declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultI
|
|
|
264
277
|
}): Promise<RequestHandlerExecutionResult<ParsedResult> | null>;
|
|
265
278
|
private wrapResolver;
|
|
266
279
|
private createExecutionResult;
|
|
280
|
+
private scheduleCleanup;
|
|
281
|
+
private exhaustCleanups;
|
|
282
|
+
private runScheduledCleanups;
|
|
267
283
|
}
|
|
268
284
|
/**
|
|
269
285
|
* Forwards the cookies from the given response to `document.cookie`.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '@mswjs/interceptors';
|
|
2
|
-
export { T as DefaultUnsafeFetchResponse, H as HttpResponse, n as HttpResponseInit, S as StrictRequest, o as StrictResponse, Q as bodyType, U as kDefaultContentType } from './HttpResponse-
|
|
2
|
+
export { T as DefaultUnsafeFetchResponse, H as HttpResponse, n as HttpResponseInit, S as StrictRequest, o as StrictResponse, Q as bodyType, U as kDefaultContentType } from './HttpResponse-CQwYpuKo.mjs';
|
|
3
3
|
import './typeUtils.mjs';
|
|
4
4
|
import './utils/internal/isIterable.mjs';
|
|
5
5
|
import 'graphql';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '@mswjs/interceptors';
|
|
2
|
-
export { T as DefaultUnsafeFetchResponse, H as HttpResponse, n as HttpResponseInit, S as StrictRequest, o as StrictResponse, Q as bodyType, U as kDefaultContentType } from './HttpResponse-
|
|
2
|
+
export { T as DefaultUnsafeFetchResponse, H as HttpResponse, n as HttpResponseInit, S as StrictRequest, o as StrictResponse, Q as bodyType, U as kDefaultContentType } from './HttpResponse-BFS34nkx.js';
|
|
3
3
|
import './typeUtils.js';
|
|
4
4
|
import './utils/internal/isIterable.js';
|
|
5
5
|
import 'graphql';
|
|
@@ -2,7 +2,7 @@ import { UnhandledRequestStrategy } from '../utils/request/onUnhandledRequest.mj
|
|
|
2
2
|
import { U as UnhandledFrameCallback } from '../on-unhandled-frame-Cr1KOZ0I.mjs';
|
|
3
3
|
import 'rettime';
|
|
4
4
|
import './handlers-controller.mjs';
|
|
5
|
-
import '../HttpResponse-
|
|
5
|
+
import '../HttpResponse-CQwYpuKo.mjs';
|
|
6
6
|
import '@mswjs/interceptors';
|
|
7
7
|
import '../utils/internal/isIterable.mjs';
|
|
8
8
|
import '../typeUtils.mjs';
|
|
@@ -2,7 +2,7 @@ import { UnhandledRequestStrategy } from '../utils/request/onUnhandledRequest.js
|
|
|
2
2
|
import { U as UnhandledFrameCallback } from '../on-unhandled-frame-BBR-P3kV.js';
|
|
3
3
|
import 'rettime';
|
|
4
4
|
import './handlers-controller.js';
|
|
5
|
-
import '../HttpResponse-
|
|
5
|
+
import '../HttpResponse-BFS34nkx.js';
|
|
6
6
|
import '@mswjs/interceptors';
|
|
7
7
|
import '../utils/internal/isIterable.js';
|
|
8
8
|
import '../typeUtils.js';
|
|
@@ -2,7 +2,7 @@ import { Emitter, DefaultEventMap } from 'rettime';
|
|
|
2
2
|
import { NetworkSource, ExtractSourceEvents } from './sources/network-source.mjs';
|
|
3
3
|
import { a as NetworkFrameResolutionContext, b as UnhandledFrameHandle } from '../on-unhandled-frame-Cr1KOZ0I.mjs';
|
|
4
4
|
import { AnyHandler, HandlersController } from './handlers-controller.mjs';
|
|
5
|
-
import '../HttpResponse-
|
|
5
|
+
import '../HttpResponse-CQwYpuKo.mjs';
|
|
6
6
|
import '@mswjs/interceptors';
|
|
7
7
|
import '../utils/internal/isIterable.mjs';
|
|
8
8
|
import '../typeUtils.mjs';
|
|
@@ -2,7 +2,7 @@ import { Emitter, DefaultEventMap } from 'rettime';
|
|
|
2
2
|
import { NetworkSource, ExtractSourceEvents } from './sources/network-source.js';
|
|
3
3
|
import { a as NetworkFrameResolutionContext, b as UnhandledFrameHandle } from '../on-unhandled-frame-BBR-P3kV.js';
|
|
4
4
|
import { AnyHandler, HandlersController } from './handlers-controller.js';
|
|
5
|
-
import '../HttpResponse-
|
|
5
|
+
import '../HttpResponse-BFS34nkx.js';
|
|
6
6
|
import '@mswjs/interceptors';
|
|
7
7
|
import '../utils/internal/isIterable.js';
|
|
8
8
|
import '../typeUtils.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TypedEvent } from 'rettime';
|
|
2
2
|
import { N as NetworkFrame, b as UnhandledFrameHandle, a as NetworkFrameResolutionContext } from '../../on-unhandled-frame-Cr1KOZ0I.mjs';
|
|
3
3
|
import { HandlersController, AnyHandler } from '../handlers-controller.mjs';
|
|
4
|
-
import { R as RequestHandler } from '../../HttpResponse-
|
|
4
|
+
import { R as RequestHandler } from '../../HttpResponse-CQwYpuKo.mjs';
|
|
5
5
|
import '../../handlers/WebSocketHandler.mjs';
|
|
6
6
|
import 'strict-event-emitter';
|
|
7
7
|
import '@mswjs/interceptors/WebSocket';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TypedEvent } from 'rettime';
|
|
2
2
|
import { N as NetworkFrame, b as UnhandledFrameHandle, a as NetworkFrameResolutionContext } from '../../on-unhandled-frame-BBR-P3kV.js';
|
|
3
3
|
import { HandlersController, AnyHandler } from '../handlers-controller.js';
|
|
4
|
-
import { R as RequestHandler } from '../../HttpResponse-
|
|
4
|
+
import { R as RequestHandler } from '../../HttpResponse-BFS34nkx.js';
|
|
5
5
|
import '../../handlers/WebSocketHandler.js';
|
|
6
6
|
import 'strict-event-emitter';
|
|
7
7
|
import '@mswjs/interceptors/WebSocket';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'rettime';
|
|
2
2
|
import '../handlers-controller.mjs';
|
|
3
3
|
export { A as AnyNetworkFrame, E as ExtractFrameEvents, N as NetworkFrame, a as NetworkFrameResolutionContext } from '../../on-unhandled-frame-Cr1KOZ0I.mjs';
|
|
4
|
-
import '../../HttpResponse-
|
|
4
|
+
import '../../HttpResponse-CQwYpuKo.mjs';
|
|
5
5
|
import '@mswjs/interceptors';
|
|
6
6
|
import '../../utils/internal/isIterable.mjs';
|
|
7
7
|
import '../../typeUtils.mjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'rettime';
|
|
2
2
|
import '../handlers-controller.js';
|
|
3
3
|
export { A as AnyNetworkFrame, E as ExtractFrameEvents, N as NetworkFrame, a as NetworkFrameResolutionContext } from '../../on-unhandled-frame-BBR-P3kV.js';
|
|
4
|
-
import '../../HttpResponse-
|
|
4
|
+
import '../../HttpResponse-BFS34nkx.js';
|
|
5
5
|
import '@mswjs/interceptors';
|
|
6
6
|
import '../../utils/internal/isIterable.js';
|
|
7
7
|
import '../../typeUtils.js';
|
|
@@ -5,7 +5,7 @@ import { N as NetworkFrame, b as UnhandledFrameHandle, a as NetworkFrameResoluti
|
|
|
5
5
|
import { HandlersController, AnyHandler } from '../handlers-controller.mjs';
|
|
6
6
|
import 'strict-event-emitter';
|
|
7
7
|
import '../../utils/matching/matchRequestUrl.mjs';
|
|
8
|
-
import '../../HttpResponse-
|
|
8
|
+
import '../../HttpResponse-CQwYpuKo.mjs';
|
|
9
9
|
import '@mswjs/interceptors';
|
|
10
10
|
import '../../utils/internal/isIterable.mjs';
|
|
11
11
|
import '../../typeUtils.mjs';
|
|
@@ -5,7 +5,7 @@ import { N as NetworkFrame, b as UnhandledFrameHandle, a as NetworkFrameResoluti
|
|
|
5
5
|
import { HandlersController, AnyHandler } from '../handlers-controller.js';
|
|
6
6
|
import 'strict-event-emitter';
|
|
7
7
|
import '../../utils/matching/matchRequestUrl.js';
|
|
8
|
-
import '../../HttpResponse-
|
|
8
|
+
import '../../HttpResponse-BFS34nkx.js';
|
|
9
9
|
import '@mswjs/interceptors';
|
|
10
10
|
import '../../utils/internal/isIterable.js';
|
|
11
11
|
import '../../typeUtils.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RequestHandler } from '../HttpResponse-
|
|
1
|
+
import { R as RequestHandler } from '../HttpResponse-CQwYpuKo.mjs';
|
|
2
2
|
import { WebSocketHandler } from '../handlers/WebSocketHandler.mjs';
|
|
3
3
|
import '@mswjs/interceptors';
|
|
4
4
|
import '../utils/internal/isIterable.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RequestHandler } from '../HttpResponse-
|
|
1
|
+
import { R as RequestHandler } from '../HttpResponse-BFS34nkx.js';
|
|
2
2
|
import { WebSocketHandler } from '../handlers/WebSocketHandler.js';
|
|
3
3
|
import '@mswjs/interceptors';
|
|
4
4
|
import '../utils/internal/isIterable.js';
|
|
@@ -8,7 +8,7 @@ export { HandlersController, InMemoryHandlersController } from './handlers-contr
|
|
|
8
8
|
import 'rettime';
|
|
9
9
|
import '@mswjs/interceptors';
|
|
10
10
|
import '@mswjs/interceptors/WebSocket';
|
|
11
|
-
import '../HttpResponse-
|
|
11
|
+
import '../HttpResponse-CQwYpuKo.mjs';
|
|
12
12
|
import '../utils/internal/isIterable.mjs';
|
|
13
13
|
import '../typeUtils.mjs';
|
|
14
14
|
import 'graphql';
|
|
@@ -8,7 +8,7 @@ export { HandlersController, InMemoryHandlersController } from './handlers-contr
|
|
|
8
8
|
import 'rettime';
|
|
9
9
|
import '@mswjs/interceptors';
|
|
10
10
|
import '@mswjs/interceptors/WebSocket';
|
|
11
|
-
import '../HttpResponse-
|
|
11
|
+
import '../HttpResponse-BFS34nkx.js';
|
|
12
12
|
import '../utils/internal/isIterable.js';
|
|
13
13
|
import '../typeUtils.js';
|
|
14
14
|
import 'graphql';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { U as UnhandledFrameCallback, d as UnhandledFrameDefaults, b as UnhandledFrameHandle, c as UnhandledFrameStrategy, e as executeUnhandledFrameHandle } from '../on-unhandled-frame-Cr1KOZ0I.mjs';
|
|
2
2
|
import 'rettime';
|
|
3
3
|
import './handlers-controller.mjs';
|
|
4
|
-
import '../HttpResponse-
|
|
4
|
+
import '../HttpResponse-CQwYpuKo.mjs';
|
|
5
5
|
import '@mswjs/interceptors';
|
|
6
6
|
import '../utils/internal/isIterable.mjs';
|
|
7
7
|
import '../typeUtils.mjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { U as UnhandledFrameCallback, d as UnhandledFrameDefaults, b as UnhandledFrameHandle, c as UnhandledFrameStrategy, e as executeUnhandledFrameHandle } from '../on-unhandled-frame-BBR-P3kV.js';
|
|
2
2
|
import 'rettime';
|
|
3
3
|
import './handlers-controller.js';
|
|
4
|
-
import '../HttpResponse-
|
|
4
|
+
import '../HttpResponse-BFS34nkx.js';
|
|
5
5
|
import '@mswjs/interceptors';
|
|
6
6
|
import '../utils/internal/isIterable.js';
|
|
7
7
|
import '../typeUtils.js';
|
|
@@ -3,7 +3,7 @@ import { LifeCycleEventEmitter } from '../sharedOptions.mjs';
|
|
|
3
3
|
import { HandlersController, AnyHandler } from './handlers-controller.mjs';
|
|
4
4
|
import { Disposable } from '../utils/internal/Disposable.mjs';
|
|
5
5
|
import '../utils/request/onUnhandledRequest.mjs';
|
|
6
|
-
import '../HttpResponse-
|
|
6
|
+
import '../HttpResponse-CQwYpuKo.mjs';
|
|
7
7
|
import '@mswjs/interceptors';
|
|
8
8
|
import '../utils/internal/isIterable.mjs';
|
|
9
9
|
import '../typeUtils.mjs';
|
|
@@ -3,7 +3,7 @@ import { LifeCycleEventEmitter } from '../sharedOptions.js';
|
|
|
3
3
|
import { HandlersController, AnyHandler } from './handlers-controller.js';
|
|
4
4
|
import { Disposable } from '../utils/internal/Disposable.js';
|
|
5
5
|
import '../utils/request/onUnhandledRequest.js';
|
|
6
|
-
import '../HttpResponse-
|
|
6
|
+
import '../HttpResponse-BFS34nkx.js';
|
|
7
7
|
import '@mswjs/interceptors';
|
|
8
8
|
import '../utils/internal/isIterable.js';
|
|
9
9
|
import '../typeUtils.js';
|
|
@@ -4,7 +4,7 @@ import { NetworkSource } from './network-source.mjs';
|
|
|
4
4
|
import 'rettime';
|
|
5
5
|
import '../../on-unhandled-frame-Cr1KOZ0I.mjs';
|
|
6
6
|
import '../handlers-controller.mjs';
|
|
7
|
-
import '../../HttpResponse-
|
|
7
|
+
import '../../HttpResponse-CQwYpuKo.mjs';
|
|
8
8
|
import '../../utils/internal/isIterable.mjs';
|
|
9
9
|
import '../../typeUtils.mjs';
|
|
10
10
|
import 'graphql';
|
|
@@ -4,7 +4,7 @@ import { NetworkSource } from './network-source.js';
|
|
|
4
4
|
import 'rettime';
|
|
5
5
|
import '../../on-unhandled-frame-BBR-P3kV.js';
|
|
6
6
|
import '../handlers-controller.js';
|
|
7
|
-
import '../../HttpResponse-
|
|
7
|
+
import '../../HttpResponse-BFS34nkx.js';
|
|
8
8
|
import '../../utils/internal/isIterable.js';
|
|
9
9
|
import '../../typeUtils.js';
|
|
10
10
|
import 'graphql';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Emitter, TypedEvent, TypedListenerOptions } from 'rettime';
|
|
2
2
|
import { A as AnyNetworkFrame, E as ExtractFrameEvents } from '../../on-unhandled-frame-Cr1KOZ0I.mjs';
|
|
3
3
|
import '../handlers-controller.mjs';
|
|
4
|
-
import '../../HttpResponse-
|
|
4
|
+
import '../../HttpResponse-CQwYpuKo.mjs';
|
|
5
5
|
import '@mswjs/interceptors';
|
|
6
6
|
import '../../utils/internal/isIterable.mjs';
|
|
7
7
|
import '../../typeUtils.mjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Emitter, TypedEvent, TypedListenerOptions } from 'rettime';
|
|
2
2
|
import { A as AnyNetworkFrame, E as ExtractFrameEvents } from '../../on-unhandled-frame-BBR-P3kV.js';
|
|
3
3
|
import '../handlers-controller.js';
|
|
4
|
-
import '../../HttpResponse-
|
|
4
|
+
import '../../HttpResponse-BFS34nkx.js';
|
|
5
5
|
import '@mswjs/interceptors';
|
|
6
6
|
import '../../utils/internal/isIterable.js';
|
|
7
7
|
import '../../typeUtils.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RequestHandler, m as ResponseResolutionContext } from './HttpResponse-
|
|
1
|
+
import { R as RequestHandler, m as ResponseResolutionContext } from './HttpResponse-CQwYpuKo.mjs';
|
|
2
2
|
import '@mswjs/interceptors';
|
|
3
3
|
import './utils/internal/isIterable.mjs';
|
|
4
4
|
import './typeUtils.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RequestHandler, m as ResponseResolutionContext } from './HttpResponse-
|
|
1
|
+
import { R as RequestHandler, m as ResponseResolutionContext } from './HttpResponse-BFS34nkx.js';
|
|
2
2
|
import '@mswjs/interceptors';
|
|
3
3
|
import './utils/internal/isIterable.js';
|
|
4
4
|
import './typeUtils.js';
|
package/lib/core/graphql.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as GraphQLQuery, g as GraphQLVariables, p as GraphQLPredicate, a as ResponseResolver, q as GraphQLResolverExtras, i as GraphQLResponseBody, c as RequestHandlerOptions, G as GraphQLHandler } from './HttpResponse-
|
|
1
|
+
import { f as GraphQLQuery, g as GraphQLVariables, p as GraphQLPredicate, a as ResponseResolver, q as GraphQLResolverExtras, i as GraphQLResponseBody, c as RequestHandlerOptions, G as GraphQLHandler } from './HttpResponse-CQwYpuKo.mjs';
|
|
2
2
|
import { Path } from './utils/matching/matchRequestUrl.mjs';
|
|
3
3
|
import '@mswjs/interceptors';
|
|
4
4
|
import './utils/internal/isIterable.mjs';
|
package/lib/core/graphql.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as GraphQLQuery, g as GraphQLVariables, p as GraphQLPredicate, a as ResponseResolver, q as GraphQLResolverExtras, i as GraphQLResponseBody, c as RequestHandlerOptions, G as GraphQLHandler } from './HttpResponse-
|
|
1
|
+
import { f as GraphQLQuery, g as GraphQLVariables, p as GraphQLPredicate, a as ResponseResolver, q as GraphQLResolverExtras, i as GraphQLResponseBody, c as RequestHandlerOptions, G as GraphQLHandler } from './HttpResponse-BFS34nkx.js';
|
|
2
2
|
import { Path } from './utils/matching/matchRequestUrl.js';
|
|
3
3
|
import '@mswjs/interceptors';
|
|
4
4
|
import './utils/internal/isIterable.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'graphql';
|
|
2
|
-
export { z as DocumentTypeDecoration, l as GraphQLCustomPredicate, F as GraphQLCustomPredicateResult, G as GraphQLHandler, C as GraphQLHandlerInfo, B as GraphQLHandlerNameSelector, j as GraphQLJsonRequestBody, k as GraphQLOperationType, p as GraphQLPredicate, f as GraphQLQuery, h as GraphQLRequestBody, E as GraphQLRequestParsedResult, q as GraphQLResolverExtras, i as GraphQLResponseBody, g as GraphQLVariables, I as isDocumentNode } from '../HttpResponse-
|
|
2
|
+
export { z as DocumentTypeDecoration, l as GraphQLCustomPredicate, F as GraphQLCustomPredicateResult, G as GraphQLHandler, C as GraphQLHandlerInfo, B as GraphQLHandlerNameSelector, j as GraphQLJsonRequestBody, k as GraphQLOperationType, p as GraphQLPredicate, f as GraphQLQuery, h as GraphQLRequestBody, E as GraphQLRequestParsedResult, q as GraphQLResolverExtras, i as GraphQLResponseBody, g as GraphQLVariables, I as isDocumentNode } from '../HttpResponse-CQwYpuKo.mjs';
|
|
3
3
|
import '../utils/matching/matchRequestUrl.mjs';
|
|
4
4
|
import '@mswjs/interceptors';
|
|
5
5
|
import '../utils/internal/isIterable.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'graphql';
|
|
2
|
-
export { z as DocumentTypeDecoration, l as GraphQLCustomPredicate, F as GraphQLCustomPredicateResult, G as GraphQLHandler, C as GraphQLHandlerInfo, B as GraphQLHandlerNameSelector, j as GraphQLJsonRequestBody, k as GraphQLOperationType, p as GraphQLPredicate, f as GraphQLQuery, h as GraphQLRequestBody, E as GraphQLRequestParsedResult, q as GraphQLResolverExtras, i as GraphQLResponseBody, g as GraphQLVariables, I as isDocumentNode } from '../HttpResponse-
|
|
2
|
+
export { z as DocumentTypeDecoration, l as GraphQLCustomPredicate, F as GraphQLCustomPredicateResult, G as GraphQLHandler, C as GraphQLHandlerInfo, B as GraphQLHandlerNameSelector, j as GraphQLJsonRequestBody, k as GraphQLOperationType, p as GraphQLPredicate, f as GraphQLQuery, h as GraphQLRequestBody, E as GraphQLRequestParsedResult, q as GraphQLResolverExtras, i as GraphQLResponseBody, g as GraphQLVariables, I as isDocumentNode } from '../HttpResponse-BFS34nkx.js';
|
|
3
3
|
import '../utils/matching/matchRequestUrl.js';
|
|
4
4
|
import '@mswjs/interceptors';
|
|
5
5
|
import '../utils/internal/isIterable.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RequestHandler, r as RequestHandlerDefaultInfo, a as ResponseResolver, c as RequestHandlerOptions, m as ResponseResolutionContext } from '../HttpResponse-
|
|
1
|
+
import { R as RequestHandler, r as RequestHandlerDefaultInfo, a as ResponseResolver, c as RequestHandlerOptions, m as ResponseResolutionContext } from '../HttpResponse-CQwYpuKo.mjs';
|
|
2
2
|
import { PathParams, Path, Match } from '../utils/matching/matchRequestUrl.mjs';
|
|
3
3
|
import '@mswjs/interceptors';
|
|
4
4
|
import '../utils/internal/isIterable.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as RequestHandler, r as RequestHandlerDefaultInfo, a as ResponseResolver, c as RequestHandlerOptions, m as ResponseResolutionContext } from '../HttpResponse-
|
|
1
|
+
import { R as RequestHandler, r as RequestHandlerDefaultInfo, a as ResponseResolver, c as RequestHandlerOptions, m as ResponseResolutionContext } from '../HttpResponse-BFS34nkx.js';
|
|
2
2
|
import { PathParams, Path, Match } from '../utils/matching/matchRequestUrl.js';
|
|
3
3
|
import '@mswjs/interceptors';
|
|
4
4
|
import '../utils/internal/isIterable.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '../utils/internal/isIterable.mjs';
|
|
2
|
-
export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, d as DefaultRequestMultipartBody, J as JsonBodyType, M as MaybeAsyncResponseResolverReturnType, R as RequestHandler, L as RequestHandlerArgs, r as RequestHandlerDefaultInfo, N as RequestHandlerExecutionResult, K as RequestHandlerInternalInfo, c as RequestHandlerOptions, a as ResponseResolver, e as ResponseResolverInfo, b as ResponseResolverReturnType, O as forwardResponseCookies } from '../HttpResponse-
|
|
2
|
+
export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, d as DefaultRequestMultipartBody, J as JsonBodyType, M as MaybeAsyncResponseResolverReturnType, R as RequestHandler, L as RequestHandlerArgs, r as RequestHandlerDefaultInfo, N as RequestHandlerExecutionResult, K as RequestHandlerInternalInfo, c as RequestHandlerOptions, a as ResponseResolver, e as ResponseResolverInfo, b as ResponseResolverReturnType, O as forwardResponseCookies } from '../HttpResponse-CQwYpuKo.mjs';
|
|
3
3
|
import '../typeUtils.mjs';
|
|
4
4
|
import '@mswjs/interceptors';
|
|
5
5
|
import 'graphql';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '../utils/internal/isIterable.js';
|
|
2
|
-
export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, d as DefaultRequestMultipartBody, J as JsonBodyType, M as MaybeAsyncResponseResolverReturnType, R as RequestHandler, L as RequestHandlerArgs, r as RequestHandlerDefaultInfo, N as RequestHandlerExecutionResult, K as RequestHandlerInternalInfo, c as RequestHandlerOptions, a as ResponseResolver, e as ResponseResolverInfo, b as ResponseResolverReturnType, O as forwardResponseCookies } from '../HttpResponse-
|
|
2
|
+
export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, d as DefaultRequestMultipartBody, J as JsonBodyType, M as MaybeAsyncResponseResolverReturnType, R as RequestHandler, L as RequestHandlerArgs, r as RequestHandlerDefaultInfo, N as RequestHandlerExecutionResult, K as RequestHandlerInternalInfo, c as RequestHandlerOptions, a as ResponseResolver, e as ResponseResolverInfo, b as ResponseResolverReturnType, O as forwardResponseCookies } from '../HttpResponse-BFS34nkx.js';
|
|
3
3
|
import '../typeUtils.js';
|
|
4
4
|
import '@mswjs/interceptors';
|
|
5
5
|
import 'graphql';
|
|
@@ -26,6 +26,7 @@ var import_headers_polyfill = require("headers-polyfill");
|
|
|
26
26
|
var import_getCallFrame = require("../utils/internal/getCallFrame");
|
|
27
27
|
var import_isIterable = require("../utils/internal/isIterable");
|
|
28
28
|
var import_HttpResponse = require("../HttpResponse");
|
|
29
|
+
var import_devUtils = require("../utils/internal/devUtils");
|
|
29
30
|
var import_decorators = require("../utils/HttpResponse/decorators");
|
|
30
31
|
class RequestHandler {
|
|
31
32
|
static cache = /* @__PURE__ */ new WeakMap();
|
|
@@ -33,7 +34,9 @@ class RequestHandler {
|
|
|
33
34
|
resolver;
|
|
34
35
|
resolverIterator;
|
|
35
36
|
resolverIteratorResult;
|
|
37
|
+
resolverIteratorCleanups;
|
|
36
38
|
options;
|
|
39
|
+
scheduledCleanups;
|
|
37
40
|
info;
|
|
38
41
|
/**
|
|
39
42
|
* Indicates whether this request handler has been used
|
|
@@ -43,6 +46,7 @@ class RequestHandler {
|
|
|
43
46
|
constructor(args) {
|
|
44
47
|
this.resolver = args.resolver;
|
|
45
48
|
this.options = args.options;
|
|
49
|
+
this.scheduledCleanups = /* @__PURE__ */ new Map();
|
|
46
50
|
const callFrame = (0, import_getCallFrame.getCallFrame)(new Error());
|
|
47
51
|
this.info = {
|
|
48
52
|
...args.info,
|
|
@@ -57,9 +61,11 @@ class RequestHandler {
|
|
|
57
61
|
* from a clean state.
|
|
58
62
|
*/
|
|
59
63
|
reset() {
|
|
64
|
+
this.scheduledCleanups.clear();
|
|
60
65
|
const iterator = this.resolverIterator;
|
|
61
66
|
this.resolverIterator = void 0;
|
|
62
67
|
this.resolverIteratorResult = void 0;
|
|
68
|
+
this.resolverIteratorCleanups = void 0;
|
|
63
69
|
if (typeof iterator?.return === "function") {
|
|
64
70
|
void Promise.resolve(iterator.return());
|
|
65
71
|
}
|
|
@@ -145,8 +151,20 @@ class RequestHandler {
|
|
|
145
151
|
request: args.request,
|
|
146
152
|
parsedResult
|
|
147
153
|
});
|
|
154
|
+
const listenerController = new AbortController();
|
|
155
|
+
args.request.signal.addEventListener(
|
|
156
|
+
"abort",
|
|
157
|
+
() => this.runScheduledCleanups(args.requestId),
|
|
158
|
+
{
|
|
159
|
+
once: true,
|
|
160
|
+
signal: listenerController.signal
|
|
161
|
+
}
|
|
162
|
+
);
|
|
148
163
|
const mockedResponsePromise = executeResolver({
|
|
149
164
|
...resolverExtras,
|
|
165
|
+
finalize: (callback) => {
|
|
166
|
+
this.scheduleCleanup(args.requestId, callback);
|
|
167
|
+
},
|
|
150
168
|
requestId: args.requestId,
|
|
151
169
|
request: args.request
|
|
152
170
|
}).catch((errorOrResponse) => {
|
|
@@ -154,6 +172,8 @@ class RequestHandler {
|
|
|
154
172
|
return errorOrResponse;
|
|
155
173
|
}
|
|
156
174
|
throw errorOrResponse;
|
|
175
|
+
}).finally(() => {
|
|
176
|
+
listenerController.abort();
|
|
157
177
|
});
|
|
158
178
|
const mockedResponse = await mockedResponsePromise;
|
|
159
179
|
if (mockedResponse) {
|
|
@@ -172,10 +192,22 @@ class RequestHandler {
|
|
|
172
192
|
wrapResolver(resolver) {
|
|
173
193
|
return async (info) => {
|
|
174
194
|
if (!this.resolverIterator) {
|
|
175
|
-
|
|
195
|
+
let result;
|
|
196
|
+
try {
|
|
197
|
+
result = await resolver(info);
|
|
198
|
+
} catch (error) {
|
|
199
|
+
await this.runScheduledCleanups(info.requestId);
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
176
202
|
if (!(0, import_isIterable.isIterable)(result)) {
|
|
203
|
+
await this.runScheduledCleanups(info.requestId);
|
|
177
204
|
return result;
|
|
178
205
|
}
|
|
206
|
+
const existingCleanups = this.scheduledCleanups.get(info.requestId);
|
|
207
|
+
if (existingCleanups != null && existingCleanups.length > 0) {
|
|
208
|
+
this.resolverIteratorCleanups = existingCleanups;
|
|
209
|
+
this.scheduledCleanups.delete(info.requestId);
|
|
210
|
+
}
|
|
179
211
|
this.resolverIterator = Symbol.iterator in result ? result[Symbol.iterator]() : result[Symbol.asyncIterator]();
|
|
180
212
|
}
|
|
181
213
|
this.isUsed = false;
|
|
@@ -186,6 +218,7 @@ class RequestHandler {
|
|
|
186
218
|
}
|
|
187
219
|
if (done) {
|
|
188
220
|
this.isUsed = true;
|
|
221
|
+
await this.runScheduledCleanups(info.requestId);
|
|
189
222
|
return this.resolverIteratorResult?.clone();
|
|
190
223
|
}
|
|
191
224
|
return nextResponse;
|
|
@@ -200,6 +233,54 @@ class RequestHandler {
|
|
|
200
233
|
parsedResult: args.parsedResult
|
|
201
234
|
};
|
|
202
235
|
}
|
|
236
|
+
scheduleCleanup(requestId, callback) {
|
|
237
|
+
if (this.resolverIterator) {
|
|
238
|
+
;
|
|
239
|
+
(this.resolverIteratorCleanups ||= []).unshift(callback);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const cleanups = this.scheduledCleanups.get(requestId) || [];
|
|
243
|
+
cleanups.unshift(callback);
|
|
244
|
+
this.scheduledCleanups.set(requestId, cleanups);
|
|
245
|
+
}
|
|
246
|
+
async exhaustCleanups(cleanups) {
|
|
247
|
+
const errors = [];
|
|
248
|
+
for (const cleanup of cleanups) {
|
|
249
|
+
try {
|
|
250
|
+
await cleanup();
|
|
251
|
+
} catch (error) {
|
|
252
|
+
if (error instanceof Error) {
|
|
253
|
+
errors.push(error);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
if (errors.length > 0) {
|
|
258
|
+
import_devUtils.devUtils.error(
|
|
259
|
+
'Failed to execute cleanup for request handler "%s"',
|
|
260
|
+
this.info.header,
|
|
261
|
+
new AggregateError(
|
|
262
|
+
errors,
|
|
263
|
+
`Failed to execute cleanup for request handler "${this.info.header}"`
|
|
264
|
+
)
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async runScheduledCleanups(requestId) {
|
|
269
|
+
if (this.resolverIterator && this.resolverIteratorCleanups != null && this.resolverIteratorCleanups.length > 0) {
|
|
270
|
+
try {
|
|
271
|
+
await this.exhaustCleanups(this.resolverIteratorCleanups);
|
|
272
|
+
} finally {
|
|
273
|
+
this.resolverIteratorCleanups = void 0;
|
|
274
|
+
}
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
const cleanups = this.scheduledCleanups.get(requestId);
|
|
278
|
+
if (!cleanups || cleanups.length == 0) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
await this.exhaustCleanups(cleanups);
|
|
282
|
+
this.scheduledCleanups.delete(requestId);
|
|
283
|
+
}
|
|
203
284
|
}
|
|
204
285
|
function forwardResponseCookies(response) {
|
|
205
286
|
if (typeof document === "undefined") {
|