msw 0.45.0 → 0.46.0

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.
@@ -19,7 +19,7 @@ declare type ForbiddenHeaderError<HeaderName extends string> = `SafeResponseHead
19
19
  * })
20
20
  * @see {@link https://mswjs.io/docs/api/context/set `ctx.set()`}
21
21
  */
22
- declare function set<N extends string | HeadersObject>(...args: N extends string ? Lowercase<N> extends ForbiddenHeaderNames ? ForbiddenHeaderError<N> : [N, string] : N extends HeadersObject<infer CookieName> ? Lowercase<CookieName> extends ForbiddenHeaderNames ? ForbiddenHeaderError<CookieName> : [N] : [N]): ResponseTransformer;
22
+ declare function set<N extends string | HeadersObject>(...args: N extends string ? Lowercase<N> extends ForbiddenHeaderNames ? [ForbiddenHeaderError<N>] : [N, string] : N extends HeadersObject<infer CookieName> ? Lowercase<CookieName> extends ForbiddenHeaderNames ? [ForbiddenHeaderError<CookieName>] : [N] : [N]): ResponseTransformer;
23
23
 
24
24
  declare type DelayMode = 'real' | 'infinite';
25
25
  /**
@@ -123,7 +123,7 @@ interface LifeCycleEventsMap<ResponseType> {
123
123
  'response:bypass': (response: ResponseType, requestId: string) => void;
124
124
  unhandledException: (error: Error, request: MockedRequest) => void;
125
125
  }
126
- declare type LifeCycleEventEmitter<ResponseType> = Pick<StrictEventEmitter<ResponseType>, 'on' | 'removeListener' | 'removeAllListeners'>;
126
+ declare type LifeCycleEventEmitter<ResponseType extends Record<string | symbol, any>> = Pick<StrictEventEmitter<ResponseType>, 'on' | 'removeListener' | 'removeAllListeners'>;
127
127
 
128
128
  declare type WorkerLifecycleEventsMap = LifeCycleEventsMap<Response>;
129
129
  declare type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
@@ -194,6 +194,11 @@ interface SetupWorkerApi {
194
194
  * @see {@link https://mswjs.io/docs/api/setup-worker/reset-handlers `worker.resetHandlers()`}
195
195
  */
196
196
  resetHandlers: (...nextHandlers: RequestHandler[]) => void;
197
+ /**
198
+ * Returns a readonly list of currently active request handlers.
199
+ * @see {@link https://mswjs.io/docs/api/setup-worker/list-handlers `worker.listHandlers()`}
200
+ */
201
+ listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, MockedRequest<DefaultBodyType>, any, MockedRequest<DefaultBodyType>>>;
197
202
  /**
198
203
  * Lists all active request handlers.
199
204
  * @see {@link https://mswjs.io/docs/api/setup-worker/print-handlers `worker.printHandlers()`}
@@ -221,7 +226,7 @@ declare type ContextMap = Record<string, (...args: any[]) => any>;
221
226
  declare type ResponseResolverReturnType<ReturnType> = ReturnType | undefined | void;
222
227
  declare type MaybeAsyncResponseResolverReturnType<ReturnType> = MaybePromise<ResponseResolverReturnType<ReturnType>>;
223
228
  declare type AsyncResponseResolverReturnType<ReturnType> = MaybeAsyncResponseResolverReturnType<ReturnType> | Generator<MaybeAsyncResponseResolverReturnType<ReturnType>, MaybeAsyncResponseResolverReturnType<ReturnType>, MaybeAsyncResponseResolverReturnType<ReturnType>>;
224
- declare type ResponseResolver<RequestType = MockedRequest, ContextType = typeof defaultContext, BodyType = any> = (req: RequestType, res: ResponseComposition<BodyType>, context: ContextType) => AsyncResponseResolverReturnType<MockedResponse<BodyType>>;
229
+ declare type ResponseResolver<RequestType = MockedRequest, ContextType = typeof defaultContext, BodyType extends DefaultBodyType = any> = (req: RequestType, res: ResponseComposition<BodyType>, context: ContextType) => AsyncResponseResolverReturnType<MockedResponse<BodyType>>;
225
230
  interface RequestHandlerOptions<HandlerInfo> {
226
231
  info: HandlerInfo;
227
232
  resolver: ResponseResolver<any, any>;
@@ -286,9 +291,9 @@ interface MockedResponse<BodyType extends DefaultBodyType = any> {
286
291
  passthrough: boolean;
287
292
  delay?: number;
288
293
  }
289
- declare type ResponseTransformer<BodyType extends TransformerBodyType = any, TransformerBodyType = any> = (res: MockedResponse<TransformerBodyType>) => MaybePromise<MockedResponse<BodyType>>;
290
- declare type ResponseFunction<BodyType = any> = (...transformers: ResponseTransformer<BodyType>[]) => MaybePromise<MockedResponse<BodyType>>;
291
- declare type ResponseComposition<BodyType = any> = ResponseFunction<BodyType> & {
294
+ declare type ResponseTransformer<BodyType extends TransformerBodyType = any, TransformerBodyType extends DefaultBodyType = any> = (res: MockedResponse<TransformerBodyType>) => MaybePromise<MockedResponse<BodyType>>;
295
+ declare type ResponseFunction<BodyType extends DefaultBodyType = any> = (...transformers: ResponseTransformer<BodyType>[]) => MaybePromise<MockedResponse<BodyType>>;
296
+ declare type ResponseComposition<BodyType extends DefaultBodyType = any> = ResponseFunction<BodyType> & {
292
297
  /**
293
298
  * Respond using a given mocked response to the first captured request.
294
299
  * Does not affect any subsequent captured requests.
@@ -301,7 +306,7 @@ declare type ResponseCompositionOptions<BodyType> = {
301
306
  defaultTransformers?: ResponseTransformer<BodyType>[];
302
307
  mockedResponseOverrides?: Partial<MockedResponse>;
303
308
  };
304
- declare function createResponseComposition<BodyType>(responseOverrides?: Partial<MockedResponse<BodyType>>, defaultTransformers?: ResponseTransformer<BodyType>[]): ResponseFunction;
309
+ declare function createResponseComposition<BodyType extends DefaultBodyType>(responseOverrides?: Partial<MockedResponse<BodyType>>, defaultTransformers?: ResponseTransformer<BodyType>[]): ResponseFunction;
305
310
  declare const response: ResponseFunction<any> & {
306
311
  once: ResponseFunction<any>;
307
312
  networkError(message: string): never;
@@ -343,6 +348,11 @@ interface SetupServerApi {
343
348
  * @see {@link https://mswjs.io/docs/api/setup-server/reset-handlers `server.reset-handlers()`}
344
349
  */
345
350
  resetHandlers(...nextHandlers: RequestHandler[]): void;
351
+ /**
352
+ * Returns a readonly list of cyurrently active request handlers.
353
+ * @see {@link https://mswjs.io/docs/api/setup-server/list-handlers `server.listHandlers()`}
354
+ */
355
+ listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, MockedRequest<DefaultBodyType>, any, MockedRequest<DefaultBodyType>>>;
346
356
  /**
347
357
  * Lists all active request handlers.
348
358
  * @see {@link https://mswjs.io/docs/api/setup-server/print-handlers `server.print-handlers()`}
package/lib/iife/index.js CHANGED
@@ -22188,6 +22188,13 @@ If this message still persists after updating, please report an issue: https://g
22188
22188
  source.emit._isPiped = true;
22189
22189
  }
22190
22190
 
22191
+ // src/utils/internal/toReadonlyArray.ts
22192
+ function toReadonlyArray(source) {
22193
+ const clone = [...source];
22194
+ Object.freeze(clone);
22195
+ return clone;
22196
+ }
22197
+
22191
22198
  // src/setupWorker/setupWorker.ts
22192
22199
  var listeners = [];
22193
22200
  function setupWorker(...requestHandlers) {
@@ -22282,8 +22289,12 @@ If this message still persists after updating, please report an issue: https://g
22282
22289
  resetHandlers(...nextHandlers) {
22283
22290
  context.requestHandlers = resetHandlers(requestHandlers, ...nextHandlers);
22284
22291
  },
22292
+ listHandlers() {
22293
+ return toReadonlyArray(context.requestHandlers);
22294
+ },
22285
22295
  printHandlers() {
22286
- context.requestHandlers.forEach((handler) => {
22296
+ const handlers = this.listHandlers();
22297
+ handlers.forEach((handler) => {
22287
22298
  const { header, callFrame } = handler.info;
22288
22299
  const pragma = handler.info.hasOwnProperty("operationType") ? "[graphql]" : "[rest]";
22289
22300
  console.groupCollapsed(`${pragma} ${header}`);