msw 0.28.1 → 0.30.1

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 (47) hide show
  1. package/cli/init.js +14 -6
  2. package/lib/esm/RequestHandler-deps.js +162 -130
  3. package/lib/esm/fetch-deps.js +306 -95
  4. package/lib/esm/graphql-deps.js +26 -19
  5. package/lib/esm/index-deps.js +2 -2
  6. package/lib/esm/index.js +5291 -710
  7. package/lib/esm/index2.js +2 -2
  8. package/lib/esm/mockServiceWorker.js +4 -3
  9. package/lib/esm/rest-deps.js +4 -4
  10. package/lib/esm/xml-deps.js +1 -217
  11. package/lib/iife/index.js +4 -4
  12. package/lib/iife/mockServiceWorker.js +4 -3
  13. package/lib/types/context/body.d.ts +1 -1
  14. package/lib/types/context/json.d.ts +1 -1
  15. package/lib/types/context/text.d.ts +1 -1
  16. package/lib/types/context/xml.d.ts +1 -1
  17. package/lib/types/handlers/GraphQLHandler.d.ts +4 -2
  18. package/lib/types/handlers/RequestHandler.d.ts +12 -8
  19. package/lib/types/handlers/RestHandler.d.ts +2 -2
  20. package/lib/types/node/glossary.d.ts +2 -1
  21. package/lib/types/response.d.ts +1 -1
  22. package/lib/types/setupWorker/glossary.d.ts +21 -16
  23. package/lib/types/setupWorker/start/createFallbackStart.d.ts +2 -0
  24. package/lib/types/setupWorker/start/createStartHandler.d.ts +2 -0
  25. package/lib/types/setupWorker/start/utils/enableMocking.d.ts +5 -0
  26. package/lib/types/setupWorker/start/utils/prepareStartHandler.d.ts +9 -0
  27. package/lib/types/setupWorker/start/utils/printStartMessage.d.ts +7 -0
  28. package/lib/types/setupWorker/start/utils/validateWorkerScope.d.ts +2 -0
  29. package/lib/types/setupWorker/stop/createFallbackStop.d.ts +2 -0
  30. package/lib/types/setupWorker/stop/createStop.d.ts +2 -2
  31. package/lib/types/setupWorker/stop/utils/printStopMessage.d.ts +3 -0
  32. package/lib/types/sharedOptions.d.ts +3 -2
  33. package/lib/types/utils/getResponse.d.ts +2 -3
  34. package/lib/types/utils/handleRequest.d.ts +27 -0
  35. package/lib/types/utils/internal/isIterable.d.ts +4 -0
  36. package/lib/types/utils/internal/tryCatch.d.ts +1 -0
  37. package/lib/types/utils/logging/prepareResponse.d.ts +3 -3
  38. package/lib/types/utils/request/parseIsomorphicRequest.d.ts +6 -0
  39. package/lib/types/utils/request/parseWorkerRequest.d.ts +4 -0
  40. package/lib/types/utils/worker/createFallbackRequestListener.d.ts +3 -0
  41. package/lib/umd/index.js +27002 -5268
  42. package/lib/umd/mockServiceWorker.js +4 -3
  43. package/native/lib/index.js +4374 -4281
  44. package/node/lib/index.js +1385 -1292
  45. package/package.json +33 -33
  46. package/lib/types/setupWorker/start/createStart.d.ts +0 -2
  47. package/lib/types/setupWorker/start/utils/activateMocking.d.ts +0 -2
@@ -1,11 +1,12 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+
1
4
  /**
2
- * Mock Service Worker.
5
+ * Mock Service Worker (0.30.1).
3
6
  * @see https://github.com/mswjs/msw
4
7
  * - Please do NOT modify this file.
5
8
  * - Please do NOT serve this file on production.
6
9
  */
7
- /* eslint-disable */
8
- /* tslint:disable */
9
10
 
10
11
  const INTEGRITY_CHECKSUM = '82ef9b96d8393b6da34527d1d6e19187'
11
12
  const bypassHeaderName = 'x-msw-bypass'
@@ -6,4 +6,4 @@ import { ResponseTransformer } from '../response';
6
6
  * res(ctx.body(JSON.stringify({ key: 'value' })))
7
7
  * @see {@link https://mswjs.io/docs/api/context/body `ctx.body()`}
8
8
  */
9
- export declare const body: <BodyType extends string | Blob | BufferSource | ReadableStream<any> | FormData>(value: BodyType) => ResponseTransformer<BodyType>;
9
+ export declare const body: <BodyType extends string | Blob | BufferSource | ReadableStream<any> | FormData>(value: BodyType) => ResponseTransformer<BodyType, any>;
@@ -9,4 +9,4 @@ import { ResponseTransformer } from '../response';
9
9
  * res(ctx.json([1, '2', false, { ok: true }]))
10
10
  * @see {@link https://mswjs.io/docs/api/context/json `ctx.json()`}
11
11
  */
12
- export declare const json: <BodyTypeJSON>(body: BodyTypeJSON) => ResponseTransformer<BodyTypeJSON>;
12
+ export declare const json: <BodyTypeJSON>(body: BodyTypeJSON) => ResponseTransformer<BodyTypeJSON, any>;
@@ -5,4 +5,4 @@ import { ResponseTransformer } from '../response';
5
5
  * @example res(ctx.text('Successful response'))
6
6
  * @see {@link https://mswjs.io/docs/api/context/text `ctx.text()`}
7
7
  */
8
- export declare const text: <BodyType extends string>(body: BodyType) => ResponseTransformer<BodyType>;
8
+ export declare const text: <BodyType extends string>(body: BodyType) => ResponseTransformer<BodyType, any>;
@@ -6,4 +6,4 @@ import { ResponseTransformer } from '../response';
6
6
  * res(ctx.xml('<node key="value">Content</node>'))
7
7
  * @see {@link https://mswjs.io/docs/api/context/xml `ctx.xml()`}
8
8
  */
9
- export declare const xml: <BodyType extends string>(body: BodyType) => ResponseTransformer<BodyType>;
9
+ export declare const xml: <BodyType extends string>(body: BodyType) => ResponseTransformer<BodyType, any>;
@@ -1,11 +1,12 @@
1
1
  import { OperationTypeNode } from 'graphql';
2
- import { Mask, ResponseWithSerializedHeaders } from '../setupWorker/glossary';
2
+ import { Mask, SerializedResponse } from '../setupWorker/glossary';
3
3
  import { set } from '../context/set';
4
4
  import { status } from '../context/status';
5
5
  import { delay } from '../context/delay';
6
6
  import { fetch } from '../context/fetch';
7
7
  import { DataContext } from '../context/data';
8
8
  import { errors } from '../context/errors';
9
+ import { cookie } from '../context/cookie';
9
10
  import { MockedRequest, RequestHandler, ResponseResolver } from './RequestHandler';
10
11
  import { ParsedGraphQLRequest, GraphQLMultipartRequestBody } from '../utils/internal/parseGraphQLRequest';
11
12
  export declare type ExpectedOperationTypeNode = OperationTypeNode | 'all';
@@ -17,6 +18,7 @@ export declare type GraphQLContext<QueryType> = {
17
18
  fetch: typeof fetch;
18
19
  data: DataContext<QueryType>;
19
20
  errors: typeof errors;
21
+ cookie: typeof cookie;
20
22
  };
21
23
  export declare const graphqlContext: GraphQLContext<any>;
22
24
  export declare type GraphQLVariables = Record<string, any>;
@@ -38,5 +40,5 @@ export declare class GraphQLHandler<Request extends GraphQLRequest<any> = GraphQ
38
40
  parse(request: MockedRequest): ParsedGraphQLRequest<GraphQLVariables>;
39
41
  protected getPublicRequest(request: Request, parsedResult: ParsedGraphQLRequest): GraphQLRequest<any>;
40
42
  predicate(request: MockedRequest, parsedResult: ParsedGraphQLRequest): boolean;
41
- log(request: Request, response: ResponseWithSerializedHeaders<any>): void;
43
+ log(request: Request, response: SerializedResponse<any>): void;
42
44
  }
@@ -2,9 +2,9 @@ import { Headers } from 'headers-utils';
2
2
  import { MockedResponse, ResponseComposition } from '../response';
3
3
  import { set } from '../context/set';
4
4
  export declare const defaultContext: {
5
- status: (statusCode: number, statusText?: string | undefined) => import("../response").ResponseTransformer<any>;
5
+ status: (statusCode: number, statusText?: string | undefined) => import("../response").ResponseTransformer<any, any>;
6
6
  set: typeof set;
7
- delay: (durationOrMode?: number | import("../context/delay").DelayMode | undefined) => import("../response").ResponseTransformer<any>;
7
+ delay: (durationOrMode?: number | import("../context/delay").DelayMode | undefined) => import("../response").ResponseTransformer<any, any>;
8
8
  fetch: (input: string | MockedRequest<DefaultRequestBody>, requestInit?: RequestInit) => Promise<Response>;
9
9
  };
10
10
  export declare type DefaultRequestMultipartBody = Record<string, string | File | (string | File)[]>;
@@ -34,8 +34,9 @@ declare type RequestHandlerInfo<ExtraInfo extends Record<string, any>> = {
34
34
  header: string;
35
35
  } & ExtraInfo;
36
36
  declare type ContextMap = Record<string, (...args: any[]) => any>;
37
- export declare type ResponseResolverReturnType<R> = R | undefined | void;
38
- export declare type AsyncResponseResolverReturnType<R> = Promise<ResponseResolverReturnType<R>> | ResponseResolverReturnType<R>;
37
+ export declare type ResponseResolverReturnType<ReturnType> = ReturnType | undefined | void;
38
+ export declare type MaybeAsyncResponseResolverReturnType<ReturnType> = ResponseResolverReturnType<ReturnType> | Promise<ResponseResolverReturnType<ReturnType>>;
39
+ export declare type AsyncResponseResolverReturnType<ReturnType> = MaybeAsyncResponseResolverReturnType<ReturnType> | Generator<MaybeAsyncResponseResolverReturnType<ReturnType>, MaybeAsyncResponseResolverReturnType<ReturnType>, MaybeAsyncResponseResolverReturnType<ReturnType>>;
39
40
  export declare type ResponseResolver<RequestType = MockedRequest, ContextType = typeof defaultContext, BodyType = any> = (req: RequestType, res: ResponseComposition<BodyType>, context: ContextType) => AsyncResponseResolverReturnType<MockedResponse<BodyType>>;
40
41
  export interface RequestHandlerOptions<HandlerInfo> {
41
42
  info: RequestHandlerInfo<HandlerInfo>;
@@ -50,8 +51,10 @@ export interface RequestHandlerExecutionResult<PublicRequestType> {
50
51
  }
51
52
  export declare abstract class RequestHandler<HandlerInfo extends Record<string, any> = Record<string, any>, Request extends MockedRequest = MockedRequest, ParsedResult = any, PublicRequest extends MockedRequest = Request> {
52
53
  info: RequestHandlerDefaultInfo & RequestHandlerInfo<HandlerInfo>;
53
- private ctx;
54
54
  shouldSkip: boolean;
55
+ private ctx;
56
+ private resolverGenerator?;
57
+ private resolverGeneratorResult?;
55
58
  protected resolver: ResponseResolver<any, any>;
56
59
  constructor(options: RequestHandlerOptions<HandlerInfo>);
57
60
  /**
@@ -61,12 +64,12 @@ export declare abstract class RequestHandler<HandlerInfo extends Record<string,
61
64
  /**
62
65
  * Print out the successfully handled request.
63
66
  */
64
- abstract log(request: Request, res: any, handler: this, parsedResult: ParsedResult): void;
67
+ abstract log(request: Request, response: any, handler: this, parsedResult: ParsedResult): void;
65
68
  /**
66
69
  * Parse the captured request to extract additional information from it.
67
70
  * Parsed result is then exposed to other methods of this request handler.
68
71
  */
69
- parse(request: MockedRequest): ParsedResult;
72
+ parse(_request: MockedRequest): ParsedResult;
70
73
  /**
71
74
  * Test if this handler matches the given request.
72
75
  */
@@ -75,13 +78,14 @@ export declare abstract class RequestHandler<HandlerInfo extends Record<string,
75
78
  * Derive the publicly exposed request (`req`) instance of the response resolver
76
79
  * from the captured request and its parsed result.
77
80
  */
78
- protected getPublicRequest(request: MockedRequest, parsedResult: ParsedResult): PublicRequest;
81
+ protected getPublicRequest(request: MockedRequest, _parsedResult: ParsedResult): PublicRequest;
79
82
  markAsSkipped(shouldSkip?: boolean): void;
80
83
  /**
81
84
  * Execute this request handler and produce a mocked response
82
85
  * using the given resolver function.
83
86
  */
84
87
  run(request: MockedRequest): Promise<RequestHandlerExecutionResult<PublicRequest> | null>;
88
+ private wrapResolver;
85
89
  private createExecutionResult;
86
90
  }
87
91
  export {};
@@ -1,6 +1,6 @@
1
1
  import { Match } from 'node-match-path';
2
2
  import { body, cookie, delay, fetch, json, set, status, text, xml } from '../context';
3
- import { Mask, ResponseWithSerializedHeaders } from '../setupWorker/glossary';
3
+ import { Mask, SerializedResponse } from '../setupWorker/glossary';
4
4
  import { DefaultRequestBody, MockedRequest, RequestHandler, ResponseResolver } from './RequestHandler';
5
5
  interface RestHandlerInfo {
6
6
  method: string;
@@ -47,6 +47,6 @@ export declare class RestHandler<RequestType extends MockedRequest<DefaultReques
47
47
  parse(request: RequestType): Match;
48
48
  protected getPublicRequest(request: RequestType, parsedResult: ParsedRestRequest): RestRequest<any, RequestParams>;
49
49
  predicate(request: RequestType, parsedResult: ParsedRestRequest): boolean;
50
- log(request: RequestType, response: ResponseWithSerializedHeaders<any>): void;
50
+ log(request: RequestType, response: SerializedResponse<any>): void;
51
51
  }
52
52
  export {};
@@ -1,3 +1,4 @@
1
+ import { PartialDeep } from 'type-fest';
1
2
  import { IsomorphicResponse } from '@mswjs/interceptors';
2
3
  import { MockedRequest, RequestHandler } from '../handlers/RequestHandler';
3
4
  import { SharedOptions } from '../sharedOptions';
@@ -14,7 +15,7 @@ export interface SetupServerApi {
14
15
  * Starts requests interception based on the previously provided request handlers.
15
16
  * @see {@link https://mswjs.io/docs/api/setup-server/listen `server.listen()`}
16
17
  */
17
- listen(options?: SharedOptions): void;
18
+ listen(options?: PartialDeep<SharedOptions>): void;
18
19
  /**
19
20
  * Stops requests interception by restoring all augmented modules.
20
21
  * @see {@link https://mswjs.io/docs/api/setup-server/close `server.close()`}
@@ -10,7 +10,7 @@ export interface MockedResponse<BodyType = any> {
10
10
  once: boolean;
11
11
  delay?: number;
12
12
  }
13
- export declare type ResponseTransformer<BodyType = any> = (res: MockedResponse<BodyType>) => MockedResponse<BodyType> | Promise<MockedResponse<BodyType>>;
13
+ export declare type ResponseTransformer<BodyType extends TransformerBodyType = any, TransformerBodyType = any> = (res: MockedResponse<TransformerBodyType>) => MockedResponse<BodyType> | Promise<MockedResponse<BodyType>>;
14
14
  export declare type ResponseFunction<BodyType = any> = (...transformers: ResponseTransformer<BodyType>[]) => MockedResponse<BodyType> | Promise<MockedResponse<BodyType>>;
15
15
  export declare type ResponseComposition<BodyType = any> = ResponseFunction<BodyType> & {
16
16
  /**
@@ -1,11 +1,11 @@
1
- import { HeadersList } from 'headers-utils';
1
+ import { PartialDeep } from 'type-fest';
2
+ import { FlatHeadersObject } from 'headers-utils';
2
3
  import { StrictEventEmitter } from 'strict-event-emitter';
3
4
  import { MockedResponse } from '../response';
4
5
  import { SharedOptions } from '../sharedOptions';
5
6
  import { ServiceWorkerMessage } from '../utils/createBroadcastChannel';
6
- import { createStart } from './start/createStart';
7
- import { createStop } from './stop/createStop';
8
7
  import { MockedRequest, RequestHandler } from '../handlers/RequestHandler';
8
+ import { InterceptorApi } from '@mswjs/interceptors';
9
9
  export declare type Mask = RegExp | string;
10
10
  export declare type ResolvedMask = Mask | URL;
11
11
  declare type RequestWithoutMethods = Omit<Request, 'text' | 'body' | 'json' | 'blob' | 'arrayBuffer' | 'formData' | 'clone' | 'signal' | 'isHistoryNavigation' | 'isReloadNavigation'>;
@@ -55,7 +55,7 @@ export interface WorkerLifecycleEventsMap {
55
55
  'response:bypass': (response: Response, requestId: string) => void;
56
56
  }
57
57
  export interface SetupWorkerInternalContext {
58
- startOptions: StartOptions | undefined;
58
+ startOptions?: StartOptions;
59
59
  worker: ServiceWorker | null;
60
60
  registration: ServiceWorkerRegistration | null;
61
61
  requestHandlers: RequestHandler[];
@@ -83,50 +83,55 @@ export interface SetupWorkerInternalContext {
83
83
  */
84
84
  once<EventType extends keyof ServiceWorkerIncomingEventsMap>(eventType: EventType): Promise<ServiceWorkerMessage<EventType, ServiceWorkerIncomingEventsMap[EventType]>>;
85
85
  };
86
+ useFallbackMode: boolean;
87
+ fallbackInterceptor?: InterceptorApi;
86
88
  }
87
89
  export declare type ServiceWorkerInstanceTuple = [
88
90
  ServiceWorker | null,
89
91
  ServiceWorkerRegistration
90
92
  ];
91
93
  export declare type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
92
- export declare type StartOptions = SharedOptions & {
94
+ export interface StartOptions extends SharedOptions {
93
95
  /**
94
96
  * Service Worker instance options.
95
97
  */
96
- serviceWorker?: {
97
- url?: string;
98
- options?: RegistrationOptions;
98
+ serviceWorker: {
99
+ url: string;
100
+ options: RegistrationOptions;
99
101
  };
100
102
  /**
101
103
  * Disables the logging of captured requests
102
104
  * into browser's console.
103
105
  */
104
- quiet?: boolean;
106
+ quiet: boolean;
105
107
  /**
106
108
  * Defers any network requests until the Service Worker
107
109
  * instance is ready. Defaults to `true`.
108
110
  */
109
- waitUntilReady?: boolean;
111
+ waitUntilReady: boolean;
110
112
  /**
111
113
  * A custom lookup function to find a Mock Service Worker in the list
112
114
  * of all registered Service Workers on the page.
113
115
  */
114
- findWorker?: FindWorker;
115
- };
116
- export declare type ResponseWithSerializedHeaders<BodyType = any> = Omit<MockedResponse<BodyType>, 'headers'> & {
117
- headers: HeadersList;
116
+ findWorker: FindWorker;
117
+ }
118
+ export declare type SerializedResponse<BodyType = any> = Omit<MockedResponse<BodyType>, 'headers'> & {
119
+ headers: FlatHeadersObject;
118
120
  };
121
+ export declare type StartReturnType = Promise<ServiceWorkerRegistration | undefined>;
122
+ export declare type StartHandler = (options: StartOptions, initialOptions: PartialDeep<StartOptions>) => StartReturnType;
123
+ export declare type StopHandler = () => void;
119
124
  export interface SetupWorkerApi {
120
125
  /**
121
126
  * Registers and activates the mock Service Worker.
122
127
  * @see {@link https://mswjs.io/docs/api/setup-worker/start `worker.start()`}
123
128
  */
124
- start: ReturnType<typeof createStart>;
129
+ start: (options?: PartialDeep<StartOptions>) => StartReturnType;
125
130
  /**
126
131
  * Stops requests interception for the current client.
127
132
  * @see {@link https://mswjs.io/docs/api/setup-worker/stop `worker.stop()`}
128
133
  */
129
- stop: ReturnType<typeof createStop>;
134
+ stop: StopHandler;
130
135
  /**
131
136
  * Prepends given request handlers to the list of existing handlers.
132
137
  * @param {RequestHandler[]} handlers List of runtime request handlers.
@@ -0,0 +1,2 @@
1
+ import { SetupWorkerInternalContext, StartHandler } from '../glossary';
2
+ export declare function createFallbackStart(context: SetupWorkerInternalContext): StartHandler;
@@ -0,0 +1,2 @@
1
+ import { SetupWorkerInternalContext, StartHandler } from '../glossary';
2
+ export declare const createStartHandler: (context: SetupWorkerInternalContext) => StartHandler;
@@ -0,0 +1,5 @@
1
+ import { StartOptions, SetupWorkerInternalContext } from '../../glossary';
2
+ /**
3
+ * Signals the worker to enable the interception of requests.
4
+ */
5
+ export declare function enableMocking(context: SetupWorkerInternalContext, options: StartOptions): Promise<void>;
@@ -0,0 +1,9 @@
1
+ import { PartialDeep } from 'type-fest';
2
+ import { SetupWorkerApi, SetupWorkerInternalContext, StartHandler, StartOptions } from '../../glossary';
3
+ export declare const DEFAULT_START_OPTIONS: StartOptions;
4
+ /**
5
+ * Returns resolved worker start options, merging the default options
6
+ * with the given custom options.
7
+ */
8
+ export declare function resolveStartOptions(initialOptions?: PartialDeep<StartOptions>): StartOptions;
9
+ export declare function prepareStartHandler(handler: StartHandler, context: SetupWorkerInternalContext): SetupWorkerApi['start'];
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Prints a worker activation message in the browser's console.
3
+ */
4
+ export declare function printStartMessage(args?: {
5
+ quiet?: boolean;
6
+ message?: string;
7
+ }): void;
@@ -0,0 +1,2 @@
1
+ import { StartOptions } from '../../glossary';
2
+ export declare function validateWorkerScope(registration: ServiceWorkerRegistration, options?: StartOptions): void;
@@ -0,0 +1,2 @@
1
+ import { SetupWorkerInternalContext, StopHandler } from '../glossary';
2
+ export declare function createFallbackStop(context: SetupWorkerInternalContext): StopHandler;
@@ -1,2 +1,2 @@
1
- import { SetupWorkerInternalContext } from '../glossary';
2
- export declare const createStop: (context: SetupWorkerInternalContext) => () => void;
1
+ import { SetupWorkerInternalContext, StopHandler } from '../glossary';
2
+ export declare const createStop: (context: SetupWorkerInternalContext) => StopHandler;
@@ -0,0 +1,3 @@
1
+ export declare function printStopMessage(args?: {
2
+ quiet?: boolean;
3
+ }): void;
@@ -2,10 +2,11 @@ import { UnhandledRequestStrategy } from './utils/request/onUnhandledRequest';
2
2
  export interface SharedOptions {
3
3
  /**
4
4
  * Specifies how to react to a request that has no corresponding
5
- * request handler. Bypasses such requests by default.
5
+ * request handler. Warns on unhandled requests by default.
6
6
  *
7
+ * @example worker.start({ onUnhandledRequest: 'bypass' })
7
8
  * @example worker.start({ onUnhandledRequest: 'warn' })
8
9
  * @example server.listen({ onUnhandledRequest: 'error' })
9
10
  */
10
- onUnhandledRequest?: UnhandledRequestStrategy;
11
+ onUnhandledRequest: UnhandledRequestStrategy;
11
12
  }
@@ -1,6 +1,6 @@
1
1
  import { MockedResponse } from '../response';
2
2
  import { MockedRequest, RequestHandler } from '../handlers/RequestHandler';
3
- interface ResponsePayload {
3
+ export interface ResponseLookupResult {
4
4
  handler?: RequestHandler;
5
5
  publicRequest?: any;
6
6
  parsedRequest?: any;
@@ -9,5 +9,4 @@ interface ResponsePayload {
9
9
  /**
10
10
  * Returns a mocked response for a given request using following request handlers.
11
11
  */
12
- export declare const getResponse: <Request_1 extends MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>, Handler extends RequestHandler<Record<string, any>, MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>, any, MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>>[]>(request: Request_1, handlers: Handler) => Promise<ResponsePayload>;
13
- export {};
12
+ export declare const getResponse: <Request_1 extends MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>, Handler extends RequestHandler<Record<string, any>, MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>, any, MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>>[]>(request: Request_1, handlers: Handler) => Promise<ResponseLookupResult>;
@@ -0,0 +1,27 @@
1
+ import { StrictEventEmitter } from 'strict-event-emitter';
2
+ import { MockedRequest, RequestHandler } from '../handlers/RequestHandler';
3
+ import { ServerLifecycleEventsMap } from '../node/glossary';
4
+ import { MockedResponse } from '../response';
5
+ import { SharedOptions } from '../sharedOptions';
6
+ import { ResponseLookupResult } from './getResponse';
7
+ export interface HandleRequestOptions<ResponseType> {
8
+ /**
9
+ * Transforms a `MockedResponse` instance returned from a handler
10
+ * to a response instance
11
+ */
12
+ transformResponse?(response: MockedResponse<string>): ResponseType;
13
+ /**
14
+ * Invoked whenever returning a bypassed (as-is) response.
15
+ */
16
+ onBypassResponse?(request: MockedRequest): void;
17
+ /**
18
+ * Invoked when the mocked response is ready to be sent.
19
+ */
20
+ onMockedResponse?(response: ResponseType, handler: DeepRequired<ResponseLookupResult>): void;
21
+ /**
22
+ * Invoked when the mocked response is sent.
23
+ * Respects the response delay duration.
24
+ */
25
+ onMockedResponseSent?(response: ResponseType, handler: DeepRequired<ResponseLookupResult>): void;
26
+ }
27
+ export declare function handleRequest<ResponseType extends Record<string, any> = MockedResponse<string>>(request: MockedRequest, handlers: RequestHandler[], options: SharedOptions, emitter: StrictEventEmitter<ServerLifecycleEventsMap>, handleRequestOptions?: HandleRequestOptions<ResponseType>): Promise<ResponseType | undefined>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Determines if the given function is an iterator.
3
+ */
4
+ export declare function isIterable<IteratorType>(fn: any): fn is Generator<IteratorType, IteratorType, IteratorType>;
@@ -0,0 +1 @@
1
+ export declare function tryCatch<Fn extends (...args: any[]) => any>(fn: Fn, onException?: (error: Error) => void): ReturnType<Fn> | undefined;
@@ -1,12 +1,12 @@
1
- import { ResponseWithSerializedHeaders } from '../../setupWorker/glossary';
1
+ import { SerializedResponse } from '../../setupWorker/glossary';
2
2
  /**
3
3
  * Formats a mocked response for introspection in browser's console.
4
4
  */
5
- export declare function prepareResponse(res: ResponseWithSerializedHeaders<any>): {
5
+ export declare function prepareResponse(res: SerializedResponse<any>): {
6
6
  body: string | Record<string, any> | undefined;
7
7
  status: number;
8
8
  statusText: string;
9
9
  once: boolean;
10
10
  delay?: number | undefined;
11
- headers: import("headers-utils").HeadersList;
11
+ headers: import("headers-utils").FlatHeadersObject;
12
12
  };
@@ -0,0 +1,6 @@
1
+ import { IsomorphicRequest } from '@mswjs/interceptors';
2
+ import { MockedRequest } from '../../handlers/RequestHandler';
3
+ /**
4
+ * Converts a given isomorphic request to a `MockedRequest` instance.
5
+ */
6
+ export declare function parseIsomorphicRequest(request: IsomorphicRequest): MockedRequest;
@@ -1,3 +1,7 @@
1
1
  import { MockedRequest } from '../../handlers/RequestHandler';
2
2
  import { ServiceWorkerIncomingRequest } from '../../setupWorker/glossary';
3
+ /**
4
+ * Converts a given request received from the Service Worker
5
+ * into a `MockedRequest` instance.
6
+ */
3
7
  export declare function parseWorkerRequest(rawRequest: ServiceWorkerIncomingRequest): MockedRequest;
@@ -0,0 +1,3 @@
1
+ import { InterceptorApi } from '@mswjs/interceptors';
2
+ import { SetupWorkerInternalContext, StartOptions } from '../../setupWorker/glossary';
3
+ export declare function createFallbackRequestListener(context: SetupWorkerInternalContext, options: StartOptions): InterceptorApi;