msw 0.40.2 → 0.41.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.
- package/config/constants.js +1 -3
- package/config/scripts/postinstall.js +32 -25
- package/lib/esm/index.js +1967 -1589
- package/lib/esm/index.js.map +1 -0
- package/lib/glossary-36cf4e2d.d.ts +331 -0
- package/lib/iife/index.js +9773 -21
- package/lib/iife/index.js.map +1 -0
- package/lib/index.d.ts +353 -0
- package/lib/index.js +2125 -0
- package/lib/index.js.map +1 -0
- package/lib/{esm/mockServiceWorker.js → mockServiceWorker.js} +1 -1
- package/lib/native/index.d.ts +9 -0
- package/lib/native/index.js +1532 -0
- package/lib/native/index.mjs +1532 -0
- package/lib/node/index.d.ts +15 -0
- package/lib/node/index.js +1601 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/index.mjs +1601 -0
- package/lib/node/index.mjs.map +1 -0
- package/native/package.json +3 -2
- package/node/package.json +3 -2
- package/package.json +11 -20
- package/lib/esm/errors-deps.js +0 -74
- package/lib/esm/fetch-deps.js +0 -1005
- package/lib/esm/graphql-deps.js +0 -3545
- package/lib/esm/graphql.js +0 -5
- package/lib/esm/index-deps.js +0 -21
- package/lib/esm/index2.js +0 -3
- package/lib/esm/matchRequestUrl-deps.js +0 -992
- package/lib/esm/rest-deps.js +0 -103
- package/lib/esm/rest.js +0 -5
- package/lib/esm/xml-deps.js +0 -44
- package/lib/iife/mockServiceWorker.js +0 -338
- package/lib/types/context/body.d.ts +0 -9
- package/lib/types/context/cookie.d.ts +0 -7
- package/lib/types/context/data.d.ts +0 -8
- package/lib/types/context/delay.d.ts +0 -15
- package/lib/types/context/errors.d.ts +0 -8
- package/lib/types/context/extensions.d.ts +0 -8
- package/lib/types/context/fetch.d.ts +0 -9
- package/lib/types/context/index.d.ts +0 -12
- package/lib/types/context/json.d.ts +0 -12
- package/lib/types/context/set.d.ts +0 -18
- package/lib/types/context/status.d.ts +0 -9
- package/lib/types/context/text.d.ts +0 -8
- package/lib/types/context/xml.d.ts +0 -9
- package/lib/types/graphql.d.ts +0 -74
- package/lib/types/handlers/GraphQLHandler.d.ts +0 -39
- package/lib/types/handlers/RequestHandler.d.ts +0 -103
- package/lib/types/handlers/RestHandler.d.ts +0 -47
- package/lib/types/index.d.ts +0 -26
- package/lib/types/native/index.d.ts +0 -1
- package/lib/types/node/createSetupServer.d.ts +0 -8
- package/lib/types/node/glossary.d.ts +0 -38
- package/lib/types/node/index.d.ts +0 -2
- package/lib/types/node/setupServer.d.ts +0 -6
- package/lib/types/response.d.ts +0 -35
- package/lib/types/rest.d.ts +0 -13
- package/lib/types/setupWorker/glossary.d.ts +0 -161
- package/lib/types/setupWorker/setupWorker.d.ts +0 -9
- package/lib/types/setupWorker/start/createFallbackStart.d.ts +0 -2
- package/lib/types/setupWorker/start/createStartHandler.d.ts +0 -2
- package/lib/types/setupWorker/start/utils/enableMocking.d.ts +0 -5
- package/lib/types/setupWorker/start/utils/getWorkerByRegistration.d.ts +0 -6
- package/lib/types/setupWorker/start/utils/getWorkerInstance.d.ts +0 -6
- package/lib/types/setupWorker/start/utils/prepareStartHandler.d.ts +0 -9
- package/lib/types/setupWorker/start/utils/printStartMessage.d.ts +0 -10
- package/lib/types/setupWorker/start/utils/validateWorkerScope.d.ts +0 -2
- package/lib/types/setupWorker/stop/createFallbackStop.d.ts +0 -2
- package/lib/types/setupWorker/stop/createStop.d.ts +0 -2
- package/lib/types/setupWorker/stop/utils/printStopMessage.d.ts +0 -3
- package/lib/types/sharedOptions.d.ts +0 -24
- package/lib/types/typeUtils.d.ts +0 -7
- package/lib/types/utils/NetworkError.d.ts +0 -3
- package/lib/types/utils/createBroadcastChannel.d.ts +0 -18
- package/lib/types/utils/deferNetworkRequestsUntil.d.ts +0 -6
- package/lib/types/utils/getResponse.d.ts +0 -15
- package/lib/types/utils/handleRequest.d.ts +0 -34
- package/lib/types/utils/internal/compose.d.ts +0 -14
- package/lib/types/utils/internal/devUtils.d.ts +0 -18
- package/lib/types/utils/internal/getCallFrame.d.ts +0 -4
- package/lib/types/utils/internal/isIterable.d.ts +0 -4
- package/lib/types/utils/internal/isObject.d.ts +0 -4
- package/lib/types/utils/internal/isStringEqual.d.ts +0 -4
- package/lib/types/utils/internal/jsonParse.d.ts +0 -5
- package/lib/types/utils/internal/mergeRight.d.ts +0 -5
- package/lib/types/utils/internal/parseGraphQLRequest.d.ts +0 -23
- package/lib/types/utils/internal/parseMultipartData.d.ts +0 -6
- package/lib/types/utils/internal/pipeEvents.d.ts +0 -6
- package/lib/types/utils/internal/requestHandlerUtils.d.ts +0 -4
- package/lib/types/utils/internal/requestIntegrityCheck.d.ts +0 -2
- package/lib/types/utils/internal/tryCatch.d.ts +0 -1
- package/lib/types/utils/internal/uuidv4.d.ts +0 -1
- package/lib/types/utils/logging/getStatusCodeColor.d.ts +0 -9
- package/lib/types/utils/logging/getTimestamp.d.ts +0 -4
- package/lib/types/utils/logging/prepareRequest.d.ts +0 -23
- package/lib/types/utils/logging/prepareResponse.d.ts +0 -10
- package/lib/types/utils/matching/matchRequestUrl.d.ts +0 -17
- package/lib/types/utils/matching/normalizePath.d.ts +0 -9
- package/lib/types/utils/request/getPublicUrlFromRequest.d.ts +0 -6
- package/lib/types/utils/request/getRequestCookies.d.ts +0 -7
- package/lib/types/utils/request/onUnhandledRequest.d.ts +0 -8
- package/lib/types/utils/request/parseBody.d.ts +0 -5
- package/lib/types/utils/request/parseIsomorphicRequest.d.ts +0 -6
- package/lib/types/utils/request/parseWorkerRequest.d.ts +0 -7
- package/lib/types/utils/request/pruneGetRequestBody.d.ts +0 -7
- package/lib/types/utils/request/readResponseCookies.d.ts +0 -3
- package/lib/types/utils/request/setRequestCookies.d.ts +0 -9
- package/lib/types/utils/url/cleanUrl.d.ts +0 -5
- package/lib/types/utils/url/getAbsoluteUrl.d.ts +0 -4
- package/lib/types/utils/url/getAbsoluteWorkerUrl.d.ts +0 -5
- package/lib/types/utils/url/isAbsoluteUrl.d.ts +0 -4
- package/lib/types/utils/worker/createFallbackRequestListener.d.ts +0 -4
- package/lib/types/utils/worker/createRequestListener.d.ts +0 -4
- package/lib/types/utils/worker/createResponseListener.d.ts +0 -3
- package/lib/umd/index.js +0 -31617
- package/lib/umd/mockServiceWorker.js +0 -338
- package/native/lib/index.js +0 -6384
- package/node/lib/index.js +0 -8276
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { R as ResponseTransformer, s as status, a as set, d as delay, f as fetch, b as RequestHandler, S as SetupWorkerApi, D as DefaultContext, c as DefaultBodyType, M as MockedRequest, e as ResponseResolver, g as ResponseResolutionContext, h as SerializedResponse, i as RequestHandlerDefaultInfo, j as MockedResponse, k as ResponseLookupResult, l as SharedOptions, m as ServerLifecycleEventsMap } from './glossary-36cf4e2d.js';
|
|
2
|
+
export { A as AsyncResponseResolverReturnType, c as DefaultBodyType, u as DefaultRequestMultipartBody, y as DelayMode, M as MockedRequest, j as MockedResponse, b as RequestHandler, v as ResponseComposition, w as ResponseCompositionOptions, x as ResponseFunction, e as ResponseResolver, t as ResponseResolverReturnType, R as ResponseTransformer, S as SetupWorkerApi, l as SharedOptions, q as StartOptions, o as createResponseComposition, p as defaultContext, n as defaultResponse, r as response } from './glossary-36cf4e2d.js';
|
|
3
|
+
import * as cookieUtils from 'cookie';
|
|
4
|
+
import { GraphQLError, OperationTypeNode, DocumentNode } from 'graphql';
|
|
5
|
+
import { StrictEventEmitter } from 'strict-event-emitter';
|
|
6
|
+
import { IsomorphicRequest } from '@mswjs/interceptors';
|
|
7
|
+
import 'type-fest';
|
|
8
|
+
import 'headers-polyfill';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Sets a given cookie on the mocked response.
|
|
12
|
+
* @example res(ctx.cookie('name', 'value'))
|
|
13
|
+
*/
|
|
14
|
+
declare const cookie: (name: string, value: string, options?: cookieUtils.CookieSerializeOptions | undefined) => ResponseTransformer;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Sets a raw response body. Does not append any `Content-Type` headers.
|
|
18
|
+
* @example
|
|
19
|
+
* res(ctx.body('Successful response'))
|
|
20
|
+
* res(ctx.body(JSON.stringify({ key: 'value' })))
|
|
21
|
+
* @see {@link https://mswjs.io/docs/api/context/body `ctx.body()`}
|
|
22
|
+
*/
|
|
23
|
+
declare const body: <BodyType extends string | Blob | BufferSource | ReadableStream<any> | FormData>(value: BodyType) => ResponseTransformer<BodyType, any>;
|
|
24
|
+
|
|
25
|
+
declare type Fn = (...arg: any[]) => any;
|
|
26
|
+
declare type RequiredDeep<Type, U extends Record<string, unknown> | Fn | undefined = undefined> = Type extends Fn ? Type : Type extends Record<string, any> ? {
|
|
27
|
+
[Key in keyof Type]-?: NonNullable<Type[Key]> extends NonNullable<U> ? NonNullable<Type[Key]> : RequiredDeep<NonNullable<Type[Key]>, U>;
|
|
28
|
+
} : Type;
|
|
29
|
+
declare type GraphQLPayloadContext<QueryType extends Record<string, unknown>> = (payload: QueryType) => ResponseTransformer;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Sets a given payload as a GraphQL response body.
|
|
33
|
+
* @example
|
|
34
|
+
* res(ctx.data({ user: { firstName: 'John' }}))
|
|
35
|
+
* @see {@link https://mswjs.io/docs/api/context/data `ctx.data()`}
|
|
36
|
+
*/
|
|
37
|
+
declare const data: GraphQLPayloadContext<Record<string, unknown>>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Sets the GraphQL extensions on a given response.
|
|
41
|
+
* @example
|
|
42
|
+
* res(ctx.extensions({ tracing: { version: 1 }}))
|
|
43
|
+
* @see {@link https://mswjs.io/docs/api/context/extensions `ctx.extensions()`}
|
|
44
|
+
*/
|
|
45
|
+
declare const extensions: GraphQLPayloadContext<Record<string, unknown>>;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Sets a given list of GraphQL errors on the mocked response.
|
|
49
|
+
* @example res(ctx.errors([{ message: 'Unauthorized' }]))
|
|
50
|
+
* @see {@link https://mswjs.io/docs/api/context/errors}
|
|
51
|
+
*/
|
|
52
|
+
declare const errors: <ErrorsType extends readonly Partial<GraphQLError>[] | null | undefined>(errorsList: ErrorsType) => ResponseTransformer<string>;
|
|
53
|
+
|
|
54
|
+
declare type Path = string | RegExp;
|
|
55
|
+
declare type PathParams<KeyType extends keyof any = string> = {
|
|
56
|
+
[ParamName in KeyType]: string | ReadonlyArray<string>;
|
|
57
|
+
};
|
|
58
|
+
interface Match {
|
|
59
|
+
matches: boolean;
|
|
60
|
+
params?: PathParams;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Returns the result of matching given request URL against a mask.
|
|
64
|
+
*/
|
|
65
|
+
declare function matchRequestUrl(url: URL, path: Path, baseUrl?: string): Match;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Sets the given value as the JSON body of the response.
|
|
69
|
+
* Appends a `Content-Type: application/json` header on the
|
|
70
|
+
* mocked response.
|
|
71
|
+
* @example
|
|
72
|
+
* res(ctx.json('Some string'))
|
|
73
|
+
* res(ctx.json({ key: 'value' }))
|
|
74
|
+
* res(ctx.json([1, '2', false, { ok: true }]))
|
|
75
|
+
* @see {@link https://mswjs.io/docs/api/context/json `ctx.json()`}
|
|
76
|
+
*/
|
|
77
|
+
declare const json: <BodyTypeJSON>(body: BodyTypeJSON) => ResponseTransformer<BodyTypeJSON, any>;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Sets a textual response body. Appends a `Content-Type: text/plain`
|
|
81
|
+
* header on the mocked response.
|
|
82
|
+
* @example res(ctx.text('Successful response'))
|
|
83
|
+
* @see {@link https://mswjs.io/docs/api/context/text `ctx.text()`}
|
|
84
|
+
*/
|
|
85
|
+
declare const text: <BodyType extends string>(body: BodyType) => ResponseTransformer<BodyType, any>;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Sets an XML response body. Appends a `Content-Type: text/xml` header
|
|
89
|
+
* on the mocked response.
|
|
90
|
+
* @example
|
|
91
|
+
* res(ctx.xml('<node key="value">Content</node>'))
|
|
92
|
+
* @see {@link https://mswjs.io/docs/api/context/xml `ctx.xml()`}
|
|
93
|
+
*/
|
|
94
|
+
declare const xml: <BodyType extends string>(body: BodyType) => ResponseTransformer<BodyType, any>;
|
|
95
|
+
|
|
96
|
+
declare const index_status: typeof status;
|
|
97
|
+
declare const index_set: typeof set;
|
|
98
|
+
declare const index_cookie: typeof cookie;
|
|
99
|
+
declare const index_body: typeof body;
|
|
100
|
+
declare const index_data: typeof data;
|
|
101
|
+
declare const index_extensions: typeof extensions;
|
|
102
|
+
declare const index_delay: typeof delay;
|
|
103
|
+
declare const index_errors: typeof errors;
|
|
104
|
+
declare const index_fetch: typeof fetch;
|
|
105
|
+
declare const index_json: typeof json;
|
|
106
|
+
declare const index_text: typeof text;
|
|
107
|
+
declare const index_xml: typeof xml;
|
|
108
|
+
declare namespace index {
|
|
109
|
+
export {
|
|
110
|
+
index_status as status,
|
|
111
|
+
index_set as set,
|
|
112
|
+
index_cookie as cookie,
|
|
113
|
+
index_body as body,
|
|
114
|
+
index_data as data,
|
|
115
|
+
index_extensions as extensions,
|
|
116
|
+
index_delay as delay,
|
|
117
|
+
index_errors as errors,
|
|
118
|
+
index_fetch as fetch,
|
|
119
|
+
index_json as json,
|
|
120
|
+
index_text as text,
|
|
121
|
+
index_xml as xml,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Creates a new mock Service Worker registration
|
|
127
|
+
* with the given request handlers.
|
|
128
|
+
* @param {RequestHandler[]} requestHandlers List of request handlers
|
|
129
|
+
* @see {@link https://mswjs.io/docs/api/setup-worker `setupWorker`}
|
|
130
|
+
*/
|
|
131
|
+
declare function setupWorker(...requestHandlers: RequestHandler[]): SetupWorkerApi;
|
|
132
|
+
|
|
133
|
+
declare type RestHandlerMethod = string | RegExp;
|
|
134
|
+
interface RestHandlerInfo extends RequestHandlerDefaultInfo {
|
|
135
|
+
method: RestHandlerMethod;
|
|
136
|
+
path: Path;
|
|
137
|
+
}
|
|
138
|
+
declare enum RESTMethods {
|
|
139
|
+
HEAD = "HEAD",
|
|
140
|
+
GET = "GET",
|
|
141
|
+
POST = "POST",
|
|
142
|
+
PUT = "PUT",
|
|
143
|
+
PATCH = "PATCH",
|
|
144
|
+
OPTIONS = "OPTIONS",
|
|
145
|
+
DELETE = "DELETE"
|
|
146
|
+
}
|
|
147
|
+
declare type RestContext = DefaultContext & {
|
|
148
|
+
cookie: typeof cookie;
|
|
149
|
+
text: typeof text;
|
|
150
|
+
body: typeof body;
|
|
151
|
+
json: typeof json;
|
|
152
|
+
xml: typeof xml;
|
|
153
|
+
};
|
|
154
|
+
declare const restContext: RestContext;
|
|
155
|
+
declare type RequestQuery = {
|
|
156
|
+
[queryName: string]: string;
|
|
157
|
+
};
|
|
158
|
+
interface RestRequest<BodyType extends DefaultBodyType = DefaultBodyType, ParamsType extends PathParams = PathParams> extends MockedRequest<BodyType> {
|
|
159
|
+
params: ParamsType;
|
|
160
|
+
}
|
|
161
|
+
declare type ParsedRestRequest = Match;
|
|
162
|
+
/**
|
|
163
|
+
* Request handler for REST API requests.
|
|
164
|
+
* Provides request matching based on method and URL.
|
|
165
|
+
*/
|
|
166
|
+
declare class RestHandler<RequestType extends MockedRequest<DefaultBodyType> = MockedRequest<DefaultBodyType>> extends RequestHandler<RestHandlerInfo, RequestType, ParsedRestRequest, RestRequest<RequestType extends MockedRequest<infer RequestBodyType> ? RequestBodyType : any, PathParams>> {
|
|
167
|
+
constructor(method: RestHandlerMethod, path: Path, resolver: ResponseResolver<any, any>);
|
|
168
|
+
private checkRedundantQueryParameters;
|
|
169
|
+
parse(request: RequestType, resolutionContext?: ResponseResolutionContext): Match;
|
|
170
|
+
protected getPublicRequest(request: RequestType, parsedResult: ParsedRestRequest): RestRequest<any, PathParams>;
|
|
171
|
+
predicate(request: RequestType, parsedResult: ParsedRestRequest): boolean;
|
|
172
|
+
log(request: RequestType, response: SerializedResponse): void;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
declare const rest: {
|
|
176
|
+
all: <RequestBodyType extends DefaultBodyType = DefaultBodyType, Params extends PathParams<keyof Params> = PathParams<string>, ResponseBody extends DefaultBodyType = DefaultBodyType>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType, Params>, RestContext, ResponseBody>) => RestHandler<MockedRequest<DefaultBodyType>>;
|
|
177
|
+
head: <RequestBodyType_1 extends DefaultBodyType = DefaultBodyType, Params_1 extends PathParams<keyof Params_1> = PathParams<string>, ResponseBody_1 extends DefaultBodyType = DefaultBodyType>(path: Path, resolver: ResponseResolver<RestRequest<never, Params_1>, RestContext, ResponseBody_1>) => RestHandler<MockedRequest<DefaultBodyType>>;
|
|
178
|
+
get: <RequestBodyType_2 extends DefaultBodyType = DefaultBodyType, Params_2 extends PathParams<keyof Params_2> = PathParams<string>, ResponseBody_2 extends DefaultBodyType = DefaultBodyType>(path: Path, resolver: ResponseResolver<RestRequest<never, Params_2>, RestContext, ResponseBody_2>) => RestHandler<MockedRequest<DefaultBodyType>>;
|
|
179
|
+
post: <RequestBodyType_3 extends DefaultBodyType = DefaultBodyType, Params_3 extends PathParams<keyof Params_3> = PathParams<string>, ResponseBody_3 extends DefaultBodyType = DefaultBodyType>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_3, Params_3>, RestContext, ResponseBody_3>) => RestHandler<MockedRequest<DefaultBodyType>>;
|
|
180
|
+
put: <RequestBodyType_4 extends DefaultBodyType = DefaultBodyType, Params_4 extends PathParams<keyof Params_4> = PathParams<string>, ResponseBody_4 extends DefaultBodyType = DefaultBodyType>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_4, Params_4>, RestContext, ResponseBody_4>) => RestHandler<MockedRequest<DefaultBodyType>>;
|
|
181
|
+
delete: <RequestBodyType_5 extends DefaultBodyType = DefaultBodyType, Params_5 extends PathParams<keyof Params_5> = PathParams<string>, ResponseBody_5 extends DefaultBodyType = DefaultBodyType>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_5, Params_5>, RestContext, ResponseBody_5>) => RestHandler<MockedRequest<DefaultBodyType>>;
|
|
182
|
+
patch: <RequestBodyType_6 extends DefaultBodyType = DefaultBodyType, Params_6 extends PathParams<keyof Params_6> = PathParams<string>, ResponseBody_6 extends DefaultBodyType = DefaultBodyType>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_6, Params_6>, RestContext, ResponseBody_6>) => RestHandler<MockedRequest<DefaultBodyType>>;
|
|
183
|
+
options: <RequestBodyType_7 extends DefaultBodyType = DefaultBodyType, Params_7 extends PathParams<keyof Params_7> = PathParams<string>, ResponseBody_7 extends DefaultBodyType = DefaultBodyType>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_7, Params_7>, RestContext, ResponseBody_7>) => RestHandler<MockedRequest<DefaultBodyType>>;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
interface ParsedGraphQLQuery {
|
|
187
|
+
operationType: OperationTypeNode;
|
|
188
|
+
operationName?: string;
|
|
189
|
+
}
|
|
190
|
+
declare type ParsedGraphQLRequest<VariablesType extends GraphQLVariables = GraphQLVariables> = (ParsedGraphQLQuery & {
|
|
191
|
+
variables?: VariablesType;
|
|
192
|
+
}) | undefined;
|
|
193
|
+
declare type GraphQLMultipartRequestBody = {
|
|
194
|
+
operations: string;
|
|
195
|
+
map?: string;
|
|
196
|
+
} & {
|
|
197
|
+
[fileName: string]: File;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
declare type ExpectedOperationTypeNode = OperationTypeNode | 'all';
|
|
201
|
+
declare type GraphQLHandlerNameSelector = DocumentNode | RegExp | string;
|
|
202
|
+
declare type GraphQLContext<QueryType extends Record<string, unknown>> = DefaultContext & {
|
|
203
|
+
data: GraphQLPayloadContext<QueryType>;
|
|
204
|
+
extensions: GraphQLPayloadContext<QueryType>;
|
|
205
|
+
errors: typeof errors;
|
|
206
|
+
cookie: typeof cookie;
|
|
207
|
+
};
|
|
208
|
+
declare const graphqlContext: GraphQLContext<any>;
|
|
209
|
+
declare type GraphQLVariables = Record<string, any>;
|
|
210
|
+
interface GraphQLHandlerInfo extends RequestHandlerDefaultInfo {
|
|
211
|
+
operationType: ExpectedOperationTypeNode;
|
|
212
|
+
operationName: GraphQLHandlerNameSelector;
|
|
213
|
+
}
|
|
214
|
+
declare type GraphQLRequestBody<VariablesType extends GraphQLVariables> = GraphQLJsonRequestBody<VariablesType> | GraphQLMultipartRequestBody | Record<string, any> | undefined;
|
|
215
|
+
interface GraphQLJsonRequestBody<Variables extends GraphQLVariables> {
|
|
216
|
+
query: string;
|
|
217
|
+
variables?: Variables;
|
|
218
|
+
}
|
|
219
|
+
interface GraphQLRequest<Variables extends GraphQLVariables> extends MockedRequest<GraphQLRequestBody<Variables>> {
|
|
220
|
+
variables: Variables;
|
|
221
|
+
}
|
|
222
|
+
declare class GraphQLHandler<Request extends GraphQLRequest<any> = GraphQLRequest<any>> extends RequestHandler<GraphQLHandlerInfo, Request, ParsedGraphQLRequest | null, GraphQLRequest<any>> {
|
|
223
|
+
private endpoint;
|
|
224
|
+
constructor(operationType: ExpectedOperationTypeNode, operationName: GraphQLHandlerNameSelector, endpoint: Path, resolver: ResponseResolver<any, any>);
|
|
225
|
+
parse(request: MockedRequest): ParsedGraphQLRequest<GraphQLVariables>;
|
|
226
|
+
protected getPublicRequest(request: Request, parsedResult: ParsedGraphQLRequest): GraphQLRequest<any>;
|
|
227
|
+
predicate(request: MockedRequest, parsedResult: ParsedGraphQLRequest): boolean;
|
|
228
|
+
log(request: Request, response: SerializedResponse, handler: this, parsedRequest: ParsedGraphQLRequest): void;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
interface TypedDocumentNode<Result = {
|
|
232
|
+
[key: string]: any;
|
|
233
|
+
}, Variables = {
|
|
234
|
+
[key: string]: any;
|
|
235
|
+
}> extends DocumentNode {
|
|
236
|
+
__apiType?: (variables: Variables) => Result;
|
|
237
|
+
__resultType?: Result;
|
|
238
|
+
__variablesType?: Variables;
|
|
239
|
+
}
|
|
240
|
+
declare const standardGraphQLHandlers: {
|
|
241
|
+
/**
|
|
242
|
+
* Captures any GraphQL operation, regardless of its name, under the current scope.
|
|
243
|
+
* @example
|
|
244
|
+
* graphql.operation((req, res, ctx) => {
|
|
245
|
+
* return res(ctx.data({ name: 'John' }))
|
|
246
|
+
* })
|
|
247
|
+
* @see {@link https://mswjs.io/docs/api/graphql/operation `graphql.operation()`}
|
|
248
|
+
*/
|
|
249
|
+
operation: <Query extends Record<string, any>, Variables extends GraphQLVariables = GraphQLVariables>(resolver: ResponseResolver<GraphQLRequest<Variables>, GraphQLContext<Query>, any>) => GraphQLHandler<GraphQLRequest<Variables>>;
|
|
250
|
+
/**
|
|
251
|
+
* Captures a GraphQL query by a given name.
|
|
252
|
+
* @example
|
|
253
|
+
* graphql.query('GetUser', (req, res, ctx) => {
|
|
254
|
+
* return res(ctx.data({ user: { name: 'John' } }))
|
|
255
|
+
* })
|
|
256
|
+
* @see {@link https://mswjs.io/docs/api/graphql/query `graphql.query()`}
|
|
257
|
+
*/
|
|
258
|
+
query: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLRequest<Variables_1>, GraphQLContext<Query_1>, any>) => GraphQLHandler<GraphQLRequest<Variables_1>>;
|
|
259
|
+
/**
|
|
260
|
+
* Captures a GraphQL mutation by a given name.
|
|
261
|
+
* @example
|
|
262
|
+
* graphql.mutation('SavePost', (req, res, ctx) => {
|
|
263
|
+
* return res(ctx.data({ post: { id: 'abc-123' } }))
|
|
264
|
+
* })
|
|
265
|
+
* @see {@link https://mswjs.io/docs/api/graphql/mutation `graphql.mutation()`}
|
|
266
|
+
*/
|
|
267
|
+
mutation: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLRequest<Variables_1>, GraphQLContext<Query_1>, any>) => GraphQLHandler<GraphQLRequest<Variables_1>>;
|
|
268
|
+
};
|
|
269
|
+
declare function createGraphQLLink(url: Path): typeof standardGraphQLHandlers;
|
|
270
|
+
declare const graphql: {
|
|
271
|
+
link: typeof createGraphQLLink;
|
|
272
|
+
/**
|
|
273
|
+
* Captures any GraphQL operation, regardless of its name, under the current scope.
|
|
274
|
+
* @example
|
|
275
|
+
* graphql.operation((req, res, ctx) => {
|
|
276
|
+
* return res(ctx.data({ name: 'John' }))
|
|
277
|
+
* })
|
|
278
|
+
* @see {@link https://mswjs.io/docs/api/graphql/operation `graphql.operation()`}
|
|
279
|
+
*/
|
|
280
|
+
operation: <Query extends Record<string, any>, Variables extends GraphQLVariables = GraphQLVariables>(resolver: ResponseResolver<GraphQLRequest<Variables>, GraphQLContext<Query>, any>) => GraphQLHandler<GraphQLRequest<Variables>>;
|
|
281
|
+
/**
|
|
282
|
+
* Captures a GraphQL query by a given name.
|
|
283
|
+
* @example
|
|
284
|
+
* graphql.query('GetUser', (req, res, ctx) => {
|
|
285
|
+
* return res(ctx.data({ user: { name: 'John' } }))
|
|
286
|
+
* })
|
|
287
|
+
* @see {@link https://mswjs.io/docs/api/graphql/query `graphql.query()`}
|
|
288
|
+
*/
|
|
289
|
+
query: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLRequest<Variables_1>, GraphQLContext<Query_1>, any>) => GraphQLHandler<GraphQLRequest<Variables_1>>;
|
|
290
|
+
/**
|
|
291
|
+
* Captures a GraphQL mutation by a given name.
|
|
292
|
+
* @example
|
|
293
|
+
* graphql.mutation('SavePost', (req, res, ctx) => {
|
|
294
|
+
* return res(ctx.data({ post: { id: 'abc-123' } }))
|
|
295
|
+
* })
|
|
296
|
+
* @see {@link https://mswjs.io/docs/api/graphql/mutation `graphql.mutation()`}
|
|
297
|
+
*/
|
|
298
|
+
mutation: <Query_1 extends Record<string, any>, Variables_1 extends GraphQLVariables = GraphQLVariables>(operationName: GraphQLHandlerNameSelector | TypedDocumentNode<Query_1, Variables_1>, resolver: ResponseResolver<GraphQLRequest<Variables_1>, GraphQLContext<Query_1>, any>) => GraphQLHandler<GraphQLRequest<Variables_1>>;
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
declare type ArityOneFunction = (arg: any) => any;
|
|
302
|
+
declare type LengthOfTuple<Tuple extends any[]> = Tuple extends {
|
|
303
|
+
length: infer L;
|
|
304
|
+
} ? L : never;
|
|
305
|
+
declare type DropFirstInTuple<Tuple extends any[]> = ((...args: Tuple) => any) extends (arg: any, ...rest: infer LastArg) => any ? LastArg : Tuple;
|
|
306
|
+
declare type LastInTuple<Tuple extends any[]> = Tuple[LengthOfTuple<DropFirstInTuple<Tuple>>];
|
|
307
|
+
declare type FirstFnParameterType<Functions extends ArityOneFunction[]> = Parameters<LastInTuple<Functions>>[any];
|
|
308
|
+
declare type LastFnParameterType<Functions extends ArityOneFunction[]> = ReturnType<Functions[0]>;
|
|
309
|
+
/**
|
|
310
|
+
* Composes a given list of functions into a new function that
|
|
311
|
+
* executes from right to left.
|
|
312
|
+
*/
|
|
313
|
+
declare function compose<Functions extends ArityOneFunction[], LeftReturnType extends FirstFnParameterType<Functions>, RightReturnType extends LastFnParameterType<Functions>>(...fns: Functions): (...args: [LeftReturnType] extends [never] ? never[] : [LeftReturnType]) => RightReturnType;
|
|
314
|
+
|
|
315
|
+
interface HandleRequestOptions<ResponseType> {
|
|
316
|
+
/**
|
|
317
|
+
* Options for the response resolution process.
|
|
318
|
+
*/
|
|
319
|
+
resolutionContext?: {
|
|
320
|
+
baseUrl?: string;
|
|
321
|
+
};
|
|
322
|
+
/**
|
|
323
|
+
* Transforms a `MockedResponse` instance returned from a handler
|
|
324
|
+
* to a response instance supported by the lower tooling (i.e. interceptors).
|
|
325
|
+
*/
|
|
326
|
+
transformResponse?(response: MockedResponse<string>): ResponseType;
|
|
327
|
+
/**
|
|
328
|
+
* Invoked whenever a request is performed as-is.
|
|
329
|
+
*/
|
|
330
|
+
onPassthroughResponse?(request: MockedRequest): void;
|
|
331
|
+
/**
|
|
332
|
+
* Invoked when the mocked response is ready to be sent.
|
|
333
|
+
*/
|
|
334
|
+
onMockedResponse?(response: ResponseType, handler: RequiredDeep<ResponseLookupResult>): void;
|
|
335
|
+
/**
|
|
336
|
+
* Invoked when the mocked response is sent.
|
|
337
|
+
* Respects the response delay duration.
|
|
338
|
+
*/
|
|
339
|
+
onMockedResponseSent?(response: ResponseType, handler: RequiredDeep<ResponseLookupResult>): void;
|
|
340
|
+
}
|
|
341
|
+
declare function handleRequest<ResponseType extends Record<string, any> = MockedResponse<string>>(request: MockedRequest, handlers: RequestHandler[], options: RequiredDeep<SharedOptions>, emitter: StrictEventEmitter<ServerLifecycleEventsMap>, handleRequestOptions?: HandleRequestOptions<ResponseType>): Promise<ResponseType | undefined>;
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* Converts a given isomorphic request to a `MockedRequest` instance.
|
|
345
|
+
*/
|
|
346
|
+
declare function parseIsomorphicRequest(request: IsomorphicRequest): MockedRequest;
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Removes query parameters and hashes from a given URL string.
|
|
350
|
+
*/
|
|
351
|
+
declare function cleanUrl(path: string): string;
|
|
352
|
+
|
|
353
|
+
export { GraphQLContext, GraphQLHandler, GraphQLJsonRequestBody, GraphQLRequest, GraphQLRequestBody, GraphQLVariables, HandleRequestOptions, Match, ParsedGraphQLRequest, ParsedRestRequest, Path, PathParams, RESTMethods, RequestQuery, RestContext, RestHandler, RestRequest, cleanUrl, compose, index as context, graphql, graphqlContext, handleRequest, matchRequestUrl, parseIsomorphicRequest, rest, restContext, setupWorker };
|