msw 0.22.2 → 0.24.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.
@@ -1,13 +1,12 @@
1
1
  import { ResponseTransformer } from '../response';
2
- declare type JSONContextOptions = {
3
- merge?: boolean;
4
- };
5
2
  /**
6
3
  * Sets the given value as the JSON body of the response.
4
+ * Appends a `Content-Type: application/json` header on the
5
+ * mocked response.
7
6
  * @example
8
- * res(json({ key: 'value' }))
9
- * res(json('Some string'))
10
- * res(json([1, '2', false, { ok: true }]))
7
+ * res(ctx.json('Some string'))
8
+ * res(ctx.json({ key: 'value' }))
9
+ * res(ctx.json([1, '2', false, { ok: true }]))
10
+ * @see {@link https://mswjs.io/docs/api/context/json `ctx.json()`}
11
11
  */
12
- export declare const json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: JSONContextOptions) => ResponseTransformer<BodyTypeJSON>;
13
- export {};
12
+ export declare const json: <BodyTypeJSON>(body: BodyTypeJSON) => ResponseTransformer<string>;
@@ -1,2 +1,6 @@
1
1
  import { ResponseTransformer } from '../response';
2
+ /**
3
+ * Sets one or multiple response headers.
4
+ * @see {@link https://mswjs.io/docs/api/context/set `ctx.set()`}
5
+ */
2
6
  export declare function set<N extends string | Record<string, string | string[]>>(...args: N extends string ? [N, string] : [N]): ResponseTransformer;
@@ -1,2 +1,9 @@
1
1
  import { ResponseTransformer } from '../response';
2
+ /**
3
+ * Sets a response status code and text.
4
+ * @example
5
+ * res(ctx.status(301))
6
+ * res(ctx.status(400, 'Custom status text'))
7
+ * @see {@link https://mswjs.io/docs/api/context/status `ctx.status()`}
8
+ */
2
9
  export declare const status: (statusCode: number, statusText?: string | undefined) => ResponseTransformer;
@@ -1,7 +1,8 @@
1
1
  import { ResponseTransformer } from '../response';
2
2
  /**
3
- * Sets a given text as a "Cotent-Type: text/plain" body of the response.
4
- * @example
5
- * res(text('message'))
3
+ * Sets a textual response body. Appends a `Content-Type: text/plain`
4
+ * header on the mocked response.
5
+ * @example res(ctx.text('Successful response'))
6
+ * @see {@link https://mswjs.io/docs/api/context/text `ctx.text()`}
6
7
  */
7
8
  export declare const text: <BodyType extends string>(body: BodyType) => ResponseTransformer<BodyType>;
@@ -1,7 +1,9 @@
1
1
  import { ResponseTransformer } from '../response';
2
2
  /**
3
- * Sets the given XML as the body of the response.
3
+ * Sets an XML response body. Appends a `Content-Type: text/xml` header
4
+ * on the mocked response.
4
5
  * @example
5
- * res(xml('<key>value</key>'))
6
+ * res(ctx.xml('<node key="value">Content</node>'))
7
+ * @see {@link https://mswjs.io/docs/api/context/xml `ctx.xml()`}
6
8
  */
7
9
  export declare const xml: <BodyType extends string>(body: BodyType) => ResponseTransformer<BodyType>;
@@ -6,7 +6,7 @@ import { set } from './context/set';
6
6
  import { status } from './context/status';
7
7
  import { delay } from './context/delay';
8
8
  import { fetch } from './context/fetch';
9
- import { DataContext } from './context/data';
9
+ import { data } from './context/data';
10
10
  import { errors } from './context/errors';
11
11
  declare type GraphQLRequestHandlerSelector = RegExp | string;
12
12
  export declare type GraphQLMockedRequest<VariablesType = Record<string, any>> = Omit<MockedRequest, 'body'> & {
@@ -18,7 +18,7 @@ export interface GraphQLMockedContext<QueryType> {
18
18
  status: typeof status;
19
19
  delay: typeof delay;
20
20
  fetch: typeof fetch;
21
- data: DataContext<QueryType>;
21
+ data: typeof data;
22
22
  errors: typeof errors;
23
23
  }
24
24
  export declare const graphqlContext: GraphQLMockedContext<any>;
@@ -33,15 +33,71 @@ export interface GraphQLRequestParsedResult<VariablesType> {
33
33
  variables: VariablesType | undefined;
34
34
  }
35
35
  declare const graphqlStandardHandlers: {
36
+ /**
37
+ * Captures any GraphQL operation, regardless of its name, under the current scope.
38
+ * @example
39
+ * graphql.operation((req, res, ctx) => {
40
+ * return res(ctx.data({ name: 'John' }))
41
+ * })
42
+ * @see {@link https://mswjs.io/docs/api/graphql/operation `graphql.operation()`}
43
+ */
36
44
  operation: <QueryType, VariablesType = Record<string, any>>(resolver: GraphQLResponseResolver<QueryType, VariablesType>) => RequestHandler<GraphQLMockedRequest<VariablesType>, GraphQLMockedContext<QueryType>, GraphQLRequestParsedResult<VariablesType>, GraphQLMockedRequest<VariablesType>, any>;
45
+ /**
46
+ * Captures a GraphQL query by a given name.
47
+ * @example
48
+ * graphql.query('GetUser', (req, res, ctx) => {
49
+ * return res(ctx.data({ user: { name: 'John' } }))
50
+ * })
51
+ * @see {@link https://mswjs.io/docs/api/graphql/query `graphql.query()`}
52
+ */
37
53
  query: <QueryType_1, VariablesType_1 = Record<string, any>>(expectedOperationName: GraphQLRequestHandlerSelector, resolver: GraphQLResponseResolver<QueryType_1, VariablesType_1>) => RequestHandler<GraphQLMockedRequest<VariablesType_1>, GraphQLMockedContext<QueryType_1>, GraphQLRequestParsedResult<VariablesType_1>, GraphQLMockedRequest<VariablesType_1>, any>;
54
+ /**
55
+ * Captures a GraphQL mutation by a given name.
56
+ * @example
57
+ * graphql.mutation('SavePost', (req, res, ctx) => {
58
+ * return res(ctx.data({ post: { id: 'abc-123' } }))
59
+ * })
60
+ * @see {@link https://mswjs.io/docs/api/graphql/mutation `graphql.mutation()`}
61
+ */
38
62
  mutation: <QueryType_1, VariablesType_1 = Record<string, any>>(expectedOperationName: GraphQLRequestHandlerSelector, resolver: GraphQLResponseResolver<QueryType_1, VariablesType_1>) => RequestHandler<GraphQLMockedRequest<VariablesType_1>, GraphQLMockedContext<QueryType_1>, GraphQLRequestParsedResult<VariablesType_1>, GraphQLMockedRequest<VariablesType_1>, any>;
39
63
  };
64
+ /**
65
+ * Creates a GraphQL mocking API scoped to the given endpoint.
66
+ * @param uri Endpoint URL, or path.
67
+ * @example
68
+ * const api = graphql.link('https://api.site.com/graphql)
69
+ * api.query('GetUser', resolver)
70
+ * @see {@link https://mswjs.io/docs/api/graphql/link `graphql.link()`}
71
+ */
40
72
  declare function createGraphQLLink(uri: Mask): typeof graphqlStandardHandlers;
41
73
  export declare const graphql: {
42
74
  link: typeof createGraphQLLink;
75
+ /**
76
+ * Captures any GraphQL operation, regardless of its name, under the current scope.
77
+ * @example
78
+ * graphql.operation((req, res, ctx) => {
79
+ * return res(ctx.data({ name: 'John' }))
80
+ * })
81
+ * @see {@link https://mswjs.io/docs/api/graphql/operation `graphql.operation()`}
82
+ */
43
83
  operation: <QueryType, VariablesType = Record<string, any>>(resolver: GraphQLResponseResolver<QueryType, VariablesType>) => RequestHandler<GraphQLMockedRequest<VariablesType>, GraphQLMockedContext<QueryType>, GraphQLRequestParsedResult<VariablesType>, GraphQLMockedRequest<VariablesType>, any>;
84
+ /**
85
+ * Captures a GraphQL query by a given name.
86
+ * @example
87
+ * graphql.query('GetUser', (req, res, ctx) => {
88
+ * return res(ctx.data({ user: { name: 'John' } }))
89
+ * })
90
+ * @see {@link https://mswjs.io/docs/api/graphql/query `graphql.query()`}
91
+ */
44
92
  query: <QueryType_1, VariablesType_1 = Record<string, any>>(expectedOperationName: GraphQLRequestHandlerSelector, resolver: GraphQLResponseResolver<QueryType_1, VariablesType_1>) => RequestHandler<GraphQLMockedRequest<VariablesType_1>, GraphQLMockedContext<QueryType_1>, GraphQLRequestParsedResult<VariablesType_1>, GraphQLMockedRequest<VariablesType_1>, any>;
93
+ /**
94
+ * Captures a GraphQL mutation by a given name.
95
+ * @example
96
+ * graphql.mutation('SavePost', (req, res, ctx) => {
97
+ * return res(ctx.data({ post: { id: 'abc-123' } }))
98
+ * })
99
+ * @see {@link https://mswjs.io/docs/api/graphql/mutation `graphql.mutation()`}
100
+ */
45
101
  mutation: <QueryType_1, VariablesType_1 = Record<string, any>>(expectedOperationName: GraphQLRequestHandlerSelector, resolver: GraphQLResponseResolver<QueryType_1, VariablesType_1>) => RequestHandler<GraphQLMockedRequest<VariablesType_1>, GraphQLMockedContext<QueryType_1>, GraphQLRequestParsedResult<VariablesType_1>, GraphQLMockedRequest<VariablesType_1>, any>;
46
102
  };
47
103
  export {};
@@ -3,7 +3,8 @@ export { setupWorker } from './setupWorker/setupWorker';
3
3
  export { SetupWorkerApi } from './setupWorker/glossary';
4
4
  export { response, defaultResponse, createResponseComposition, MockedResponse, ResponseTransformer, ResponseComposition, ResponseCompositionOptions, ResponseFunction, } from './response';
5
5
  export { context };
6
- export { MockedRequest, RequestHandler, RequestParams, RequestQuery, ResponseResolver, ResponseResolverReturnType, AsyncResponseResolverReturnType, defaultContext, } from './utils/handlers/requestHandler';
6
+ export { defaultContext, MockedRequest, RequestHandler, RequestHandlerMetaInfo, RequestParams, RequestQuery, ResponseResolver, ResponseResolverReturnType, AsyncResponseResolverReturnType, } from './utils/handlers/requestHandler';
7
7
  export { rest, restContext, RESTMethods, ParsedRestRequest } from './rest';
8
8
  export { graphql, graphqlContext, GraphQLMockedRequest, GraphQLMockedContext, GraphQLRequestPayload, GraphQLResponseResolver, GraphQLRequestParsedResult, } from './graphql';
9
9
  export { matchRequestUrl } from './utils/matching/matchRequestUrl';
10
+ export { compose } from './utils/internal/compose';
@@ -2,23 +2,33 @@ import { SharedOptions } from '../sharedOptions';
2
2
  import { RequestHandlersList } from '../setupWorker/glossary';
3
3
  export interface SetupServerApi {
4
4
  /**
5
- * Enables requests interception based on the previously provided mock definition.
5
+ * Starts requests interception based on the previously provided request handlers.
6
+ * @see {@link https://mswjs.io/docs/api/setup-server/listen `server.listen()`}
6
7
  */
7
8
  listen: (options?: SharedOptions) => void;
9
+ /**
10
+ * Stops requests interception by restoring all augmented modules.
11
+ * @see {@link https://mswjs.io/docs/api/setup-server/close `server.close()`}
12
+ */
13
+ close: () => void;
8
14
  /**
9
15
  * Prepends given request handlers to the list of existing handlers.
16
+ * @see {@link https://mswjs.io/docs/api/setup-server/use `server.use()`}
10
17
  */
11
18
  use: (...handlers: RequestHandlersList) => void;
12
19
  /**
13
20
  * Marks all request handlers that respond using `res.once()` as unused.
21
+ * @see {@link https://mswjs.io/docs/api/setup-server/restore-handlers `server.restore-handlers()`}
14
22
  */
15
23
  restoreHandlers: () => void;
16
24
  /**
17
25
  * Resets request handlers to the initial list given to the `setupServer` call, or to the explicit next request handlers list, if given.
26
+ * @see {@link https://mswjs.io/docs/api/setup-server/reset-handlers `server.reset-handlers()`}
18
27
  */
19
28
  resetHandlers: (...nextHandlers: RequestHandlersList) => void;
20
29
  /**
21
- * Stops requests interception by restoring all augmented modules.
30
+ * Lists all active request handlers.
31
+ * @see {@link https://mswjs.io/docs/api/setup-server/print-handlers `server.print-handlers()`}
22
32
  */
23
- close: () => void;
33
+ printHandlers: () => void;
24
34
  }
@@ -1 +1,6 @@
1
+ /**
2
+ * Sets up a requests interception in NodeJS with the given request handlers.
3
+ * @param {RequestHandler[]} requestHandlers List of request handlers.
4
+ * @see {@link https://mswjs.io/docs/api/setup-server `setupServer`}
5
+ */
1
6
  export declare const setupServer: (...requestHandlers: import("../setupWorker/glossary").RequestHandlersList) => import("./glossary").SetupServerApi;
@@ -1,4 +1,7 @@
1
1
  import { Headers } from 'headers-utils';
2
+ /**
3
+ * Internal representation of a mocked response instance.
4
+ */
2
5
  export interface MockedResponse<BodyType = any> {
3
6
  body: BodyType;
4
7
  status: number;
@@ -7,8 +10,8 @@ export interface MockedResponse<BodyType = any> {
7
10
  once: boolean;
8
11
  delay?: number;
9
12
  }
10
- export declare type ResponseTransformer<BodyType = any> = (res: MockedResponse<BodyType>) => MockedResponse<BodyType>;
11
- export declare type ResponseFunction<BodyType = any> = (...transformers: ResponseTransformer<BodyType>[]) => MockedResponse<BodyType>;
13
+ export declare type ResponseTransformer<BodyType = any> = (res: MockedResponse<BodyType>) => MockedResponse<BodyType> | Promise<MockedResponse<BodyType>>;
14
+ export declare type ResponseFunction<BodyType = any> = (...transformers: ResponseTransformer<BodyType>[]) => MockedResponse<BodyType> | Promise<MockedResponse<BodyType>>;
12
15
  export declare type ResponseComposition<BodyType = any> = ResponseFunction<BodyType> & {
13
16
  /**
14
17
  * Respond using a given mocked response to the first captured request.
@@ -1,6 +1,14 @@
1
1
  import { RequestHandler, ResponseResolver, MockedRequest, DefaultRequestBodyType, RequestParams } from './utils/handlers/requestHandler';
2
2
  import { Mask } from './setupWorker/glossary';
3
3
  import { set } from './context/set';
4
+ import { status } from './context/status';
5
+ import { cookie } from './context/cookie';
6
+ import { body } from './context/body';
7
+ import { text } from './context/text';
8
+ import { json } from './context/json';
9
+ import { xml } from './context/xml';
10
+ import { delay } from './context/delay';
11
+ import { fetch } from './context/fetch';
4
12
  import { matchRequestUrl } from './utils/matching/matchRequestUrl';
5
13
  export declare enum RESTMethods {
6
14
  HEAD = "HEAD",
@@ -11,196 +19,88 @@ export declare enum RESTMethods {
11
19
  OPTIONS = "OPTIONS",
12
20
  DELETE = "DELETE"
13
21
  }
14
- export declare const restContext: {
22
+ export interface RestContext {
15
23
  set: typeof set;
16
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
17
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
18
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
19
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
20
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
21
- merge?: boolean | undefined;
22
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
23
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
24
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
25
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
26
- };
24
+ status: typeof status;
25
+ cookie: typeof cookie;
26
+ text: typeof text;
27
+ body: typeof body;
28
+ json: typeof json;
29
+ xml: typeof xml;
30
+ delay: typeof delay;
31
+ fetch: typeof fetch;
32
+ }
33
+ export declare const restContext: RestContext;
27
34
  export interface ParsedRestRequest {
28
35
  match: ReturnType<typeof matchRequestUrl>;
29
36
  }
30
37
  export declare const rest: {
31
- head: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, {
32
- set: typeof set;
33
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
34
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
35
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
36
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
37
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
38
- merge?: boolean | undefined;
39
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
40
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
41
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
42
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
43
- }, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, {
44
- set: typeof set;
45
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
46
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
47
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
48
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
49
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
50
- merge?: boolean | undefined;
51
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
52
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
53
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
54
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
55
- }, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
56
- get: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, {
57
- set: typeof set;
58
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
59
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
60
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
61
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
62
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
63
- merge?: boolean | undefined;
64
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
65
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
66
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
67
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
68
- }, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, {
69
- set: typeof set;
70
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
71
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
72
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
73
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
74
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
75
- merge?: boolean | undefined;
76
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
77
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
78
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
79
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
80
- }, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
81
- post: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, {
82
- set: typeof set;
83
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
84
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
85
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
86
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
87
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
88
- merge?: boolean | undefined;
89
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
90
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
91
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
92
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
93
- }, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, {
94
- set: typeof set;
95
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
96
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
97
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
98
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
99
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
100
- merge?: boolean | undefined;
101
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
102
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
103
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
104
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
105
- }, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
106
- put: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, {
107
- set: typeof set;
108
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
109
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
110
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
111
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
112
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
113
- merge?: boolean | undefined;
114
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
115
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
116
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
117
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
118
- }, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, {
119
- set: typeof set;
120
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
121
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
122
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
123
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
124
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
125
- merge?: boolean | undefined;
126
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
127
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
128
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
129
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
130
- }, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
131
- delete: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, {
132
- set: typeof set;
133
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
134
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
135
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
136
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
137
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
138
- merge?: boolean | undefined;
139
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
140
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
141
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
142
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
143
- }, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, {
144
- set: typeof set;
145
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
146
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
147
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
148
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
149
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
150
- merge?: boolean | undefined;
151
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
152
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
153
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
154
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
155
- }, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
156
- patch: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, {
157
- set: typeof set;
158
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
159
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
160
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
161
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
162
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
163
- merge?: boolean | undefined;
164
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
165
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
166
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
167
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
168
- }, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, {
169
- set: typeof set;
170
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
171
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
172
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
173
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
174
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
175
- merge?: boolean | undefined;
176
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
177
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
178
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
179
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
180
- }, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
181
- options: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, {
182
- set: typeof set;
183
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
184
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
185
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
186
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
187
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
188
- merge?: boolean | undefined;
189
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
190
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
191
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
192
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
193
- }, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, {
194
- set: typeof set;
195
- status: (statusCode: number, statusText?: string | undefined) => import("./response").ResponseTransformer<any>;
196
- cookie: (name: string, value: string, options?: import("cookie").CookieSerializeOptions | undefined) => import("./response").ResponseTransformer<any>;
197
- body: <BodyType extends string | Blob | ArrayBufferView | ArrayBuffer | ReadableStream<any> | FormData>(value: BodyType) => import("./response").ResponseTransformer<BodyType>;
198
- text: <BodyType_1 extends string>(body: BodyType_1) => import("./response").ResponseTransformer<BodyType_1>;
199
- json: <BodyTypeJSON>(body: BodyTypeJSON, { merge }?: {
200
- merge?: boolean | undefined;
201
- }) => import("./response").ResponseTransformer<BodyTypeJSON>;
202
- xml: <BodyType_2 extends string>(body: BodyType_2) => import("./response").ResponseTransformer<BodyType_2>;
203
- delay: (durationMs?: number | undefined) => import("./response").ResponseTransformer<any>;
204
- fetch: (input: string | MockedRequest<DefaultRequestBodyType, RequestParams>, requestInit?: RequestInit) => any;
205
- }, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
38
+ /**
39
+ * Captures a HEAD request by a given path.
40
+ * @example
41
+ * rest.head('/numbers', (req, res, ctx) => {
42
+ * return res(ctx.status(302))
43
+ * })
44
+ * @see {@link https://mswjs.io/docs/api/rest `rest`}
45
+ */
46
+ head: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
47
+ /**
48
+ * Captures a GET request by a given path.
49
+ * @example
50
+ * rest.get('/numbers', (req, res, ctx) => {
51
+ * return res(ctx.json([1, 2, 3]))
52
+ * })
53
+ * @see {@link https://mswjs.io/docs/api/rest `rest`}
54
+ */
55
+ get: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
56
+ /**
57
+ * Captures a POST request by a given path.
58
+ * @example
59
+ * rest.post('/numbers', (req, res, ctx) => {
60
+ * return res(ctx.text('success'))
61
+ * })
62
+ * @see {@link https://mswjs.io/docs/api/rest `rest`}
63
+ */
64
+ post: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
65
+ /**
66
+ * Captures a PUT request by a given path.
67
+ * @example
68
+ * rest.put('/numbers', (req, res, ctx) => {
69
+ * const { numbers } = req.body
70
+ * return res(ctx.json(numbers))
71
+ * })
72
+ * @see {@link https://mswjs.io/docs/api/rest `rest`}
73
+ */
74
+ put: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
75
+ /**
76
+ * Captures a DELETE request by a given path.
77
+ * @example
78
+ * rest.delete('/numbers', (req, res, ctx) => {
79
+ * const index = req.url.searchParams.get('index')
80
+ * prevNumbers.splice(index, 1)
81
+ * return res(ctx.json(nextNumbers))
82
+ * })
83
+ * @see {@link https://mswjs.io/docs/api/rest `rest`}
84
+ */
85
+ delete: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
86
+ /**
87
+ * Captures a PATCH request by a given path.
88
+ * @example
89
+ * rest.patch('/numbers', (req, res, ctx) => {
90
+ * const { numbers } = req.body
91
+ * const nextNumbers = prevNumbers.concat(number)
92
+ * return res(ctx.json(nextNumbers))
93
+ * })
94
+ * @see {@link https://mswjs.io/docs/api/rest `rest`}
95
+ */
96
+ patch: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
97
+ /**
98
+ * Captures an OPTIONS request by a given path.
99
+ * @example
100
+ * rest.options('/numbers', (req, res, ctx) => {
101
+ * return res(ctx.set('Allow', 'GET,HEAD,POST'))
102
+ * })
103
+ * @see {@link https://mswjs.io/docs/api/rest `rest`}
104
+ */
105
+ options: <RequestBodyType = DefaultRequestBodyType, ResponseBodyType = any, RequestParamsType extends RequestParams = RequestParams>(mask: Mask, resolver: ResponseResolver<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ResponseBodyType>) => RequestHandler<MockedRequest<RequestBodyType, RequestParamsType>, RestContext, ParsedRestRequest, MockedRequest<RequestBodyType, RequestParams>, ResponseBodyType>;
206
106
  };
@@ -34,17 +34,20 @@ export declare type ServiceWorkerInstanceTuple = [
34
34
  ];
35
35
  export declare type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
36
36
  export declare type StartOptions = SharedOptions & {
37
+ /**
38
+ * Service Worker instance options.
39
+ */
37
40
  serviceWorker?: {
38
41
  url?: string;
39
42
  options?: RegistrationOptions;
40
43
  };
41
44
  /**
42
- * Disable the logging of captured requests
45
+ * Disables the logging of captured requests
43
46
  * into browser's console.
44
47
  */
45
48
  quiet?: boolean;
46
49
  /**
47
- * Defer any network requests until the Service Worker
50
+ * Defers any network requests until the Service Worker
48
51
  * instance is ready. Defaults to `true`.
49
52
  */
50
53
  waitUntilReady?: boolean;
@@ -59,18 +62,36 @@ export declare type ResponseWithSerializedHeaders<BodyType = any> = Omit<MockedR
59
62
  headers: HeadersList;
60
63
  };
61
64
  export interface SetupWorkerApi {
65
+ /**
66
+ * Registers and activates the mock Service Worker.
67
+ * @see {@link https://mswjs.io/docs/api/setup-worker/start `worker.start()`}
68
+ */
62
69
  start: ReturnType<typeof createStart>;
70
+ /**
71
+ * Stops requests interception for the current client.
72
+ * @see {@link https://mswjs.io/docs/api/setup-worker/stop `worker.stop()`}
73
+ */
63
74
  stop: ReturnType<typeof createStop>;
64
75
  /**
65
76
  * Prepends given request handlers to the list of existing handlers.
77
+ * @param {RequestHandler[]} handlers List of runtime request handlers.
78
+ * @see {@link https://mswjs.io/docs/api/setup-worker/use `worker.use()`}
66
79
  */
67
80
  use: (...handlers: RequestHandlersList) => void;
68
81
  /**
69
82
  * Marks all request handlers that respond using `res.once()` as unused.
83
+ * @see {@link https://mswjs.io/docs/api/setup-worker/restore-handlers `worker.restoreHandlers()`}
70
84
  */
71
85
  restoreHandlers: () => void;
72
86
  /**
73
87
  * Resets request handlers to the initial list given to the `setupWorker` call, or to the explicit next request handlers list, if given.
88
+ * @param {RequestHandler[]} nextHandlers List of the new initial request handlers.
89
+ * @see {@link https://mswjs.io/docs/api/setup-worker/reset-handlers `worker.resetHandlers()`}
74
90
  */
75
91
  resetHandlers: (...nextHandlers: RequestHandlersList) => void;
92
+ /**
93
+ * Lists all active request handlers.
94
+ * @see {@link https://mswjs.io/docs/api/setup-worker/print-handlers `worker.printHandlers()`}
95
+ */
96
+ printHandlers: () => void;
76
97
  }
@@ -1,2 +1,8 @@
1
1
  import { RequestHandlersList, SetupWorkerApi } from './glossary';
2
+ /**
3
+ * Creates a new mock Service Worker registration
4
+ * with the given request handlers.
5
+ * @param {RequestHandler[]} requestHandlers List of request handlers
6
+ * @see {@link https://mswjs.io/docs/api/setup-worker `setupWorker`}
7
+ */
2
8
  export declare function setupWorker(...requestHandlers: RequestHandlersList): SetupWorkerApi;