msw 0.35.0 → 0.36.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/RequestHandler-deps.js +387 -65
- package/lib/esm/errors-deps.js +15 -1
- package/lib/esm/fetch-deps.js +9 -5
- package/lib/esm/graphql-deps.js +14 -9
- package/lib/esm/graphql.js +1 -0
- package/lib/esm/index-deps.js +2 -1
- package/lib/esm/index.js +61 -4263
- package/lib/esm/index2.js +1 -1
- package/lib/esm/mockServiceWorker.js +5 -5
- package/lib/esm/rest-deps.js +7 -15
- package/lib/esm/rest.js +1 -0
- package/lib/iife/index.js +2 -2
- package/lib/iife/mockServiceWorker.js +5 -5
- package/lib/types/context/data.d.ts +2 -3
- package/lib/types/context/extensions.d.ts +8 -0
- package/lib/types/context/index.d.ts +1 -0
- package/lib/types/graphql.d.ts +2 -1
- package/lib/types/handlers/GraphQLHandler.d.ts +7 -6
- package/lib/types/handlers/RequestHandler.d.ts +8 -8
- package/lib/types/handlers/RestHandler.d.ts +10 -12
- package/lib/types/index.d.ts +17 -7
- package/lib/types/native/index.d.ts +1 -1
- package/lib/types/node/index.d.ts +1 -1
- package/lib/types/node/setupServer.d.ts +1 -1
- package/lib/types/rest.d.ts +10 -9
- package/lib/types/setupWorker/glossary.d.ts +12 -12
- package/lib/types/setupWorker/start/utils/prepareStartHandler.d.ts +3 -3
- package/lib/types/sharedOptions.d.ts +1 -1
- package/lib/types/typeUtils.d.ts +5 -3
- package/lib/types/utils/getResponse.d.ts +1 -1
- package/lib/types/utils/handleRequest.d.ts +5 -5
- package/lib/types/utils/internal/getCallFrame.d.ts +1 -1
- package/lib/types/utils/internal/jsonParse.d.ts +2 -2
- package/lib/types/utils/internal/requestHandlerUtils.d.ts +1 -1
- package/lib/types/utils/logging/prepareResponse.d.ts +1 -1
- package/lib/types/utils/matching/matchRequestUrl.d.ts +12 -2
- package/lib/types/utils/matching/normalizePath.d.ts +1 -1
- package/lib/types/utils/request/onUnhandledRequest.d.ts +1 -2
- package/lib/types/utils/request/parseBody.d.ts +2 -2
- package/lib/types/utils/request/parseWorkerRequest.d.ts +2 -2
- package/lib/types/utils/worker/createFallbackRequestListener.d.ts +2 -1
- package/lib/types/utils/worker/createRequestListener.d.ts +2 -1
- package/lib/umd/index.js +547 -134
- package/lib/umd/mockServiceWorker.js +5 -5
- package/native/lib/index.js +474 -517
- package/node/lib/index.js +476 -519
- package/package.json +19 -19
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Mock Service Worker (0.
|
|
5
|
+
* Mock Service Worker (0.36.3).
|
|
6
6
|
* @see https://github.com/mswjs/msw
|
|
7
7
|
* - Please do NOT modify this file.
|
|
8
8
|
* - Please do NOT serve this file on production.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
const INTEGRITY_CHECKSUM = '
|
|
11
|
+
const INTEGRITY_CHECKSUM = '02f4ad4a2797f85668baf196e553d929'
|
|
12
12
|
const bypassHeaderName = 'x-msw-bypass'
|
|
13
13
|
const activeClientIds = new Set()
|
|
14
14
|
|
|
@@ -83,11 +83,11 @@ self.addEventListener('message', async function (event) {
|
|
|
83
83
|
}
|
|
84
84
|
})
|
|
85
85
|
|
|
86
|
-
// Resolve the "
|
|
86
|
+
// Resolve the "main" client for the given event.
|
|
87
87
|
// Client that issues a request doesn't necessarily equal the client
|
|
88
88
|
// that registered the worker. It's with the latter the worker should
|
|
89
89
|
// communicate with during the response resolving phase.
|
|
90
|
-
async function
|
|
90
|
+
async function resolveMainClient(event) {
|
|
91
91
|
const client = await self.clients.get(event.clientId)
|
|
92
92
|
|
|
93
93
|
if (client.frameType === 'top-level') {
|
|
@@ -109,7 +109,7 @@ async function resolveMasterClient(event) {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
async function handleRequest(event, requestId) {
|
|
112
|
-
const client = await
|
|
112
|
+
const client = await resolveMainClient(event)
|
|
113
113
|
const response = await getResponse(event, client, requestId)
|
|
114
114
|
|
|
115
115
|
// Send back the response clone for the "response:*" life-cycle events.
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare type DataContext<T> = (payload: T) => ResponseTransformer;
|
|
1
|
+
import { GraphQLPayloadContext } from '../typeUtils';
|
|
3
2
|
/**
|
|
4
3
|
* Sets a given payload as a GraphQL response body.
|
|
5
4
|
* @example
|
|
6
5
|
* res(ctx.data({ user: { firstName: 'John' }}))
|
|
7
6
|
* @see {@link https://mswjs.io/docs/api/context/data `ctx.data()`}
|
|
8
7
|
*/
|
|
9
|
-
export declare const data:
|
|
8
|
+
export declare const data: GraphQLPayloadContext<Record<string, unknown>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GraphQLPayloadContext } from '../typeUtils';
|
|
2
|
+
/**
|
|
3
|
+
* Sets the GraphQL extensions on a given response.
|
|
4
|
+
* @example
|
|
5
|
+
* res(ctx.extensions({ tracing: { version: 1 }}))
|
|
6
|
+
* @see {@link https://mswjs.io/docs/api/context/extensions `ctx.extensions()`}
|
|
7
|
+
*/
|
|
8
|
+
export declare const extensions: GraphQLPayloadContext<Record<string, unknown>>;
|
|
@@ -3,6 +3,7 @@ export { set } from './set';
|
|
|
3
3
|
export { cookie } from './cookie';
|
|
4
4
|
export { body } from './body';
|
|
5
5
|
export { data } from './data';
|
|
6
|
+
export { extensions } from './extensions';
|
|
6
7
|
export { delay } from './delay';
|
|
7
8
|
export { errors } from './errors';
|
|
8
9
|
export { fetch } from './fetch';
|
package/lib/types/graphql.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { DocumentNode } from 'graphql';
|
|
2
|
-
import { Path } from 'node-match-path';
|
|
3
2
|
import { ResponseResolver } from './handlers/RequestHandler';
|
|
4
3
|
import { GraphQLHandler, GraphQLContext, GraphQLRequest, GraphQLVariables, GraphQLHandlerNameSelector } from './handlers/GraphQLHandler';
|
|
4
|
+
import { Path } from './utils/matching/matchRequestUrl';
|
|
5
5
|
export interface TypedDocumentNode<Result = {
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
}, Variables = {
|
|
8
8
|
[key: string]: any;
|
|
9
9
|
}> extends DocumentNode {
|
|
10
|
+
__apiType?: (variables: Variables) => Result;
|
|
10
11
|
__resultType?: Result;
|
|
11
12
|
__variablesType?: Variables;
|
|
12
13
|
}
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { DocumentNode, OperationTypeNode } from 'graphql';
|
|
2
|
-
import { Path } from 'node-match-path';
|
|
3
2
|
import { SerializedResponse } from '../setupWorker/glossary';
|
|
4
3
|
import { set } from '../context/set';
|
|
5
4
|
import { status } from '../context/status';
|
|
6
5
|
import { delay } from '../context/delay';
|
|
7
6
|
import { fetch } from '../context/fetch';
|
|
8
|
-
import { DataContext } from '../context/data';
|
|
9
7
|
import { errors } from '../context/errors';
|
|
8
|
+
import { GraphQLPayloadContext } from '../typeUtils';
|
|
10
9
|
import { cookie } from '../context/cookie';
|
|
11
|
-
import { MockedRequest, RequestHandler, ResponseResolver } from './RequestHandler';
|
|
10
|
+
import { MockedRequest, RequestHandler, RequestHandlerDefaultInfo, ResponseResolver } from './RequestHandler';
|
|
11
|
+
import { Path } from '../utils/matching/matchRequestUrl';
|
|
12
12
|
import { ParsedGraphQLRequest, GraphQLMultipartRequestBody } from '../utils/internal/parseGraphQLRequest';
|
|
13
13
|
export declare type ExpectedOperationTypeNode = OperationTypeNode | 'all';
|
|
14
14
|
export declare type GraphQLHandlerNameSelector = DocumentNode | RegExp | string;
|
|
15
|
-
export declare type GraphQLContext<QueryType
|
|
15
|
+
export declare type GraphQLContext<QueryType extends Record<string, unknown>> = {
|
|
16
16
|
set: typeof set;
|
|
17
17
|
status: typeof status;
|
|
18
18
|
delay: typeof delay;
|
|
19
19
|
fetch: typeof fetch;
|
|
20
|
-
data:
|
|
20
|
+
data: GraphQLPayloadContext<QueryType>;
|
|
21
|
+
extensions: GraphQLPayloadContext<QueryType>;
|
|
21
22
|
errors: typeof errors;
|
|
22
23
|
cookie: typeof cookie;
|
|
23
24
|
};
|
|
24
25
|
export declare const graphqlContext: GraphQLContext<any>;
|
|
25
26
|
export declare type GraphQLVariables = Record<string, any>;
|
|
26
|
-
export interface GraphQLHandlerInfo {
|
|
27
|
+
export interface GraphQLHandlerInfo extends RequestHandlerDefaultInfo {
|
|
27
28
|
operationType: ExpectedOperationTypeNode;
|
|
28
29
|
operationName: GraphQLHandlerNameSelector;
|
|
29
30
|
}
|
|
@@ -10,7 +10,7 @@ export declare const defaultContext: {
|
|
|
10
10
|
fetch: (input: string | MockedRequest<DefaultRequestBody>, requestInit?: RequestInit) => Promise<Response>;
|
|
11
11
|
};
|
|
12
12
|
export declare type DefaultRequestMultipartBody = Record<string, string | File | (string | File)[]>;
|
|
13
|
-
export declare type DefaultRequestBody = Record<string, any> | DefaultRequestMultipartBody | string | undefined;
|
|
13
|
+
export declare type DefaultRequestBody = Record<string, any> | DefaultRequestMultipartBody | string | number | undefined;
|
|
14
14
|
export interface MockedRequest<Body = DefaultRequestBody> {
|
|
15
15
|
id: string;
|
|
16
16
|
url: URL;
|
|
@@ -29,19 +29,19 @@ export interface MockedRequest<Body = DefaultRequestBody> {
|
|
|
29
29
|
body: Body;
|
|
30
30
|
bodyUsed: Request['bodyUsed'];
|
|
31
31
|
}
|
|
32
|
-
interface RequestHandlerDefaultInfo {
|
|
32
|
+
export interface RequestHandlerDefaultInfo {
|
|
33
|
+
header: string;
|
|
34
|
+
}
|
|
35
|
+
export interface RequestHandlerInternalInfo {
|
|
33
36
|
callFrame?: string;
|
|
34
37
|
}
|
|
35
|
-
declare type RequestHandlerInfo<ExtraInfo extends Record<string, any>> = {
|
|
36
|
-
header: string;
|
|
37
|
-
} & ExtraInfo;
|
|
38
38
|
declare type ContextMap = Record<string, (...args: any[]) => any>;
|
|
39
39
|
export declare type ResponseResolverReturnType<ReturnType> = ReturnType | undefined | void;
|
|
40
40
|
export declare type MaybeAsyncResponseResolverReturnType<ReturnType> = ResponseResolverReturnType<ReturnType> | Promise<ResponseResolverReturnType<ReturnType>>;
|
|
41
41
|
export declare type AsyncResponseResolverReturnType<ReturnType> = MaybeAsyncResponseResolverReturnType<ReturnType> | Generator<MaybeAsyncResponseResolverReturnType<ReturnType>, MaybeAsyncResponseResolverReturnType<ReturnType>, MaybeAsyncResponseResolverReturnType<ReturnType>>;
|
|
42
42
|
export declare type ResponseResolver<RequestType = MockedRequest, ContextType = typeof defaultContext, BodyType = any> = (req: RequestType, res: ResponseComposition<BodyType>, context: ContextType) => AsyncResponseResolverReturnType<MockedResponse<BodyType>>;
|
|
43
43
|
export interface RequestHandlerOptions<HandlerInfo> {
|
|
44
|
-
info:
|
|
44
|
+
info: HandlerInfo;
|
|
45
45
|
resolver: ResponseResolver<any, any>;
|
|
46
46
|
ctx?: ContextMap;
|
|
47
47
|
}
|
|
@@ -51,8 +51,8 @@ export interface RequestHandlerExecutionResult<PublicRequestType> {
|
|
|
51
51
|
request: PublicRequestType;
|
|
52
52
|
response?: MockedResponse;
|
|
53
53
|
}
|
|
54
|
-
export declare abstract class RequestHandler<HandlerInfo extends
|
|
55
|
-
info:
|
|
54
|
+
export declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultInfo = RequestHandlerDefaultInfo, Request extends MockedRequest = MockedRequest, ParsedResult = any, PublicRequest extends MockedRequest = Request> {
|
|
55
|
+
info: HandlerInfo & RequestHandlerInternalInfo;
|
|
56
56
|
shouldSkip: boolean;
|
|
57
57
|
private ctx;
|
|
58
58
|
private resolverGenerator?;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Match, Path } from 'node-match-path';
|
|
2
1
|
import { body, cookie, delay, fetch, json, set, status, text, xml } from '../context';
|
|
3
2
|
import { SerializedResponse } from '../setupWorker/glossary';
|
|
4
3
|
import { ResponseResolutionContext } from '../utils/getResponse';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import { Match, Path, PathParams } from '../utils/matching/matchRequestUrl';
|
|
5
|
+
import { DefaultRequestBody, MockedRequest, RequestHandler, RequestHandlerDefaultInfo, ResponseResolver } from './RequestHandler';
|
|
6
|
+
declare type RestHandlerMethod = string | RegExp;
|
|
7
|
+
export interface RestHandlerInfo extends RequestHandlerDefaultInfo {
|
|
8
|
+
method: RestHandlerMethod;
|
|
8
9
|
path: Path;
|
|
9
10
|
}
|
|
10
11
|
export declare enum RESTMethods {
|
|
@@ -28,13 +29,10 @@ export declare type RestContext = {
|
|
|
28
29
|
fetch: typeof fetch;
|
|
29
30
|
};
|
|
30
31
|
export declare const restContext: RestContext;
|
|
31
|
-
export declare type RequestParams = {
|
|
32
|
-
[paramName: string]: any;
|
|
33
|
-
};
|
|
34
32
|
export declare type RequestQuery = {
|
|
35
|
-
[queryName: string]:
|
|
33
|
+
[queryName: string]: string;
|
|
36
34
|
};
|
|
37
|
-
export interface RestRequest<BodyType extends DefaultRequestBody = DefaultRequestBody, ParamsType extends
|
|
35
|
+
export interface RestRequest<BodyType extends DefaultRequestBody = DefaultRequestBody, ParamsType extends PathParams = PathParams> extends MockedRequest<BodyType> {
|
|
38
36
|
params: ParamsType;
|
|
39
37
|
}
|
|
40
38
|
export declare type ParsedRestRequest = Match;
|
|
@@ -42,11 +40,11 @@ export declare type ParsedRestRequest = Match;
|
|
|
42
40
|
* Request handler for REST API requests.
|
|
43
41
|
* Provides request matching based on method and URL.
|
|
44
42
|
*/
|
|
45
|
-
export declare class RestHandler<RequestType extends MockedRequest<DefaultRequestBody> = MockedRequest<DefaultRequestBody>> extends RequestHandler<RestHandlerInfo, RequestType, ParsedRestRequest, RestRequest<
|
|
46
|
-
constructor(method:
|
|
43
|
+
export declare class RestHandler<RequestType extends MockedRequest<DefaultRequestBody> = MockedRequest<DefaultRequestBody>> extends RequestHandler<RestHandlerInfo, RequestType, ParsedRestRequest, RestRequest<RequestType extends MockedRequest<infer RequestBodyType> ? RequestBodyType : any, PathParams>> {
|
|
44
|
+
constructor(method: RestHandlerMethod, path: Path, resolver: ResponseResolver<any, any>);
|
|
47
45
|
private checkRedundantQueryParameters;
|
|
48
46
|
parse(request: RequestType, resolutionContext?: ResponseResolutionContext): Match;
|
|
49
|
-
protected getPublicRequest(request: RequestType, parsedResult: ParsedRestRequest): RestRequest<any,
|
|
47
|
+
protected getPublicRequest(request: RequestType, parsedResult: ParsedRestRequest): RestRequest<any, PathParams>;
|
|
50
48
|
predicate(request: RequestType, parsedResult: ParsedRestRequest): boolean;
|
|
51
49
|
log(request: RequestType, response: SerializedResponse): void;
|
|
52
50
|
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import * as context from './context';
|
|
2
2
|
export { context };
|
|
3
3
|
export { setupWorker } from './setupWorker/setupWorker';
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export { RequestHandler, MockedRequest, ResponseResolver, ResponseResolverReturnType, AsyncResponseResolverReturnType, DefaultRequestBody, DefaultRequestMultipartBody, defaultContext, } from './handlers/RequestHandler';
|
|
4
|
+
export { response, defaultResponse, createResponseComposition, } from './response';
|
|
5
|
+
export { RequestHandler, defaultContext } from './handlers/RequestHandler';
|
|
7
6
|
export { rest } from './rest';
|
|
8
|
-
export { RestHandler, RESTMethods,
|
|
7
|
+
export { RestHandler, RESTMethods, restContext } from './handlers/RestHandler';
|
|
9
8
|
export { graphql } from './graphql';
|
|
10
|
-
export { GraphQLHandler,
|
|
9
|
+
export { GraphQLHandler, graphqlContext } from './handlers/GraphQLHandler';
|
|
11
10
|
export { matchRequestUrl } from './utils/matching/matchRequestUrl';
|
|
12
11
|
export { compose } from './utils/internal/compose';
|
|
13
|
-
export { DelayMode } from './context/delay';
|
|
14
|
-
export { ParsedGraphQLRequest } from './utils/internal/parseGraphQLRequest';
|
|
15
12
|
export * from './utils/handleRequest';
|
|
16
13
|
export * from './utils/request/parseIsomorphicRequest';
|
|
14
|
+
export { cleanUrl } from './utils/url/cleanUrl';
|
|
15
|
+
/**
|
|
16
|
+
* Type definitions.
|
|
17
|
+
*/
|
|
18
|
+
export type { SetupWorkerApi, StartOptions } from './setupWorker/glossary';
|
|
19
|
+
export type { SharedOptions } from './sharedOptions';
|
|
20
|
+
export type { MockedRequest, ResponseResolver, ResponseResolverReturnType, AsyncResponseResolverReturnType, DefaultRequestBody, DefaultRequestMultipartBody, } from './handlers/RequestHandler';
|
|
21
|
+
export type { MockedResponse, ResponseTransformer, ResponseComposition, ResponseCompositionOptions, ResponseFunction, } from './response';
|
|
22
|
+
export type { RestContext, RequestQuery, RestRequest, ParsedRestRequest, } from './handlers/RestHandler';
|
|
23
|
+
export type { GraphQLContext, GraphQLVariables, GraphQLRequest, GraphQLRequestBody, GraphQLJsonRequestBody, } from './handlers/GraphQLHandler';
|
|
24
|
+
export type { Path, PathParams, Match } from './utils/matching/matchRequestUrl';
|
|
25
|
+
export type { DelayMode } from './context/delay';
|
|
26
|
+
export { ParsedGraphQLRequest } from './utils/internal/parseGraphQLRequest';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const setupServer: (...requestHandlers: import("..").RequestHandler<
|
|
1
|
+
export declare const setupServer: (...requestHandlers: import("..").RequestHandler<import("../handlers/RequestHandler").RequestHandlerDefaultInfo, import("..").MockedRequest<import("..").DefaultRequestBody>, any, import("..").MockedRequest<import("..").DefaultRequestBody>>[]) => import("../node").SetupServerApi;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { setupServer } from './setupServer';
|
|
2
|
-
export { SetupServerApi } from './glossary';
|
|
2
|
+
export type { SetupServerApi } from './glossary';
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* @param {RequestHandler[]} requestHandlers List of request handlers.
|
|
4
4
|
* @see {@link https://mswjs.io/docs/api/setup-server `setupServer`}
|
|
5
5
|
*/
|
|
6
|
-
export declare const setupServer: (...requestHandlers: import("..").RequestHandler<
|
|
6
|
+
export declare const setupServer: (...requestHandlers: import("..").RequestHandler<import("../handlers/RequestHandler").RequestHandlerDefaultInfo, import("..").MockedRequest<import("..").DefaultRequestBody>, any, import("..").MockedRequest<import("..").DefaultRequestBody>>[]) => import("./glossary").SetupServerApi;
|
package/lib/types/rest.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { Path } from 'node-match-path';
|
|
2
1
|
import { DefaultRequestBody, ResponseResolver } from './handlers/RequestHandler';
|
|
3
|
-
import { RestContext, RestHandler, RestRequest
|
|
2
|
+
import { RestContext, RestHandler, RestRequest } from './handlers/RestHandler';
|
|
3
|
+
import { Path, PathParams } from './utils/matching/matchRequestUrl';
|
|
4
4
|
export declare const rest: {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
all: <RequestBodyType extends DefaultRequestBody = DefaultRequestBody, Params extends PathParams = PathParams, ResponseBody extends DefaultRequestBody = DefaultRequestBody>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType, Params>, RestContext, ResponseBody>) => RestHandler<import("./handlers/RequestHandler").MockedRequest<DefaultRequestBody>>;
|
|
6
|
+
head: <RequestBodyType_1 extends DefaultRequestBody = DefaultRequestBody, Params_1 extends PathParams = PathParams, ResponseBody_1 extends DefaultRequestBody = DefaultRequestBody>(path: Path, resolver: ResponseResolver<RestRequest<never, Params_1>, RestContext, ResponseBody_1>) => RestHandler<import("./handlers/RequestHandler").MockedRequest<DefaultRequestBody>>;
|
|
7
|
+
get: <RequestBodyType_2 extends DefaultRequestBody = DefaultRequestBody, Params_2 extends PathParams = PathParams, ResponseBody_2 extends DefaultRequestBody = DefaultRequestBody>(path: Path, resolver: ResponseResolver<RestRequest<never, Params_2>, RestContext, ResponseBody_2>) => RestHandler<import("./handlers/RequestHandler").MockedRequest<DefaultRequestBody>>;
|
|
8
|
+
post: <RequestBodyType_3 extends DefaultRequestBody = DefaultRequestBody, Params_3 extends PathParams = PathParams, ResponseBody_3 extends DefaultRequestBody = DefaultRequestBody>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_3, Params_3>, RestContext, ResponseBody_3>) => RestHandler<import("./handlers/RequestHandler").MockedRequest<DefaultRequestBody>>;
|
|
9
|
+
put: <RequestBodyType_4 extends DefaultRequestBody = DefaultRequestBody, Params_4 extends PathParams = PathParams, ResponseBody_4 extends DefaultRequestBody = DefaultRequestBody>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_4, Params_4>, RestContext, ResponseBody_4>) => RestHandler<import("./handlers/RequestHandler").MockedRequest<DefaultRequestBody>>;
|
|
10
|
+
delete: <RequestBodyType_5 extends DefaultRequestBody = DefaultRequestBody, Params_5 extends PathParams = PathParams, ResponseBody_5 extends DefaultRequestBody = DefaultRequestBody>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_5, Params_5>, RestContext, ResponseBody_5>) => RestHandler<import("./handlers/RequestHandler").MockedRequest<DefaultRequestBody>>;
|
|
11
|
+
patch: <RequestBodyType_6 extends DefaultRequestBody = DefaultRequestBody, Params_6 extends PathParams = PathParams, ResponseBody_6 extends DefaultRequestBody = DefaultRequestBody>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_6, Params_6>, RestContext, ResponseBody_6>) => RestHandler<import("./handlers/RequestHandler").MockedRequest<DefaultRequestBody>>;
|
|
12
|
+
options: <RequestBodyType_7 extends DefaultRequestBody = DefaultRequestBody, Params_7 extends PathParams = PathParams, ResponseBody_7 extends DefaultRequestBody = DefaultRequestBody>(path: Path, resolver: ResponseResolver<RestRequest<RequestBodyType_7, Params_7>, RestContext, ResponseBody_7>) => RestHandler<import("./handlers/RequestHandler").MockedRequest<DefaultRequestBody>>;
|
|
12
13
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Path } from 'node-match-path';
|
|
2
|
-
import { PartialDeep } from 'type-fest';
|
|
3
1
|
import { FlatHeadersObject } from 'headers-utils';
|
|
4
2
|
import { StrictEventEmitter } from 'strict-event-emitter';
|
|
5
3
|
import { LifeCycleEventEmitter, LifeCycleEventsMap, SharedOptions } from '../sharedOptions';
|
|
6
4
|
import { ServiceWorkerMessage } from '../utils/createBroadcastChannel';
|
|
7
5
|
import { RequestHandler } from '../handlers/RequestHandler';
|
|
8
6
|
import { InterceptorApi } from '@mswjs/interceptors';
|
|
7
|
+
import { Path } from '../utils/matching/matchRequestUrl';
|
|
8
|
+
import { RequiredDeep } from '../typeUtils';
|
|
9
9
|
export declare type ResolvedPath = Path | URL;
|
|
10
10
|
declare type RequestWithoutMethods = Omit<Request, 'text' | 'body' | 'json' | 'blob' | 'arrayBuffer' | 'formData' | 'clone' | 'signal' | 'isHistoryNavigation' | 'isReloadNavigation'>;
|
|
11
11
|
/**
|
|
@@ -47,7 +47,7 @@ export declare type ServiceWorkerOutgoingEventTypes = 'MOCK_ACTIVATE' | 'MOCK_DE
|
|
|
47
47
|
export declare type ServiceWorkerFetchEventTypes = 'MOCK_SUCCESS' | 'MOCK_NOT_FOUND' | 'NETWORK_ERROR' | 'INTERNAL_ERROR';
|
|
48
48
|
export declare type WorkerLifecycleEventsMap = LifeCycleEventsMap<Response>;
|
|
49
49
|
export interface SetupWorkerInternalContext {
|
|
50
|
-
startOptions?: StartOptions
|
|
50
|
+
startOptions?: RequiredDeep<StartOptions>;
|
|
51
51
|
worker: ServiceWorker | null;
|
|
52
52
|
registration: ServiceWorkerRegistration | null;
|
|
53
53
|
requestHandlers: RequestHandler[];
|
|
@@ -65,7 +65,7 @@ export interface SetupWorkerInternalContext {
|
|
|
65
65
|
* Adds an event listener on the given target.
|
|
66
66
|
* Returns a clean-up function that removes that listener.
|
|
67
67
|
*/
|
|
68
|
-
addListener<
|
|
68
|
+
addListener<EventType extends Event = Event>(target: EventTarget, eventType: string, listener: (event: EventType) => void): () => void;
|
|
69
69
|
/**
|
|
70
70
|
* Removes all currently attached listeners.
|
|
71
71
|
*/
|
|
@@ -87,25 +87,25 @@ export interface StartOptions extends SharedOptions {
|
|
|
87
87
|
/**
|
|
88
88
|
* Service Worker instance options.
|
|
89
89
|
*/
|
|
90
|
-
serviceWorker
|
|
91
|
-
url
|
|
92
|
-
options
|
|
90
|
+
serviceWorker?: {
|
|
91
|
+
url?: string;
|
|
92
|
+
options?: RegistrationOptions;
|
|
93
93
|
};
|
|
94
94
|
/**
|
|
95
95
|
* Disables the logging of captured requests
|
|
96
96
|
* into browser's console.
|
|
97
97
|
*/
|
|
98
|
-
quiet
|
|
98
|
+
quiet?: boolean;
|
|
99
99
|
/**
|
|
100
100
|
* Defers any network requests until the Service Worker
|
|
101
101
|
* instance is ready. Defaults to `true`.
|
|
102
102
|
*/
|
|
103
|
-
waitUntilReady
|
|
103
|
+
waitUntilReady?: boolean;
|
|
104
104
|
/**
|
|
105
105
|
* A custom lookup function to find a Mock Service Worker in the list
|
|
106
106
|
* of all registered Service Workers on the page.
|
|
107
107
|
*/
|
|
108
|
-
findWorker
|
|
108
|
+
findWorker?: FindWorker;
|
|
109
109
|
}
|
|
110
110
|
export interface SerializedResponse<BodyType = any> {
|
|
111
111
|
status: number;
|
|
@@ -114,14 +114,14 @@ export interface SerializedResponse<BodyType = any> {
|
|
|
114
114
|
body: BodyType;
|
|
115
115
|
}
|
|
116
116
|
export declare type StartReturnType = Promise<ServiceWorkerRegistration | undefined>;
|
|
117
|
-
export declare type StartHandler = (options: StartOptions
|
|
117
|
+
export declare type StartHandler = (options: RequiredDeep<StartOptions>, initialOptions: StartOptions) => StartReturnType;
|
|
118
118
|
export declare type StopHandler = () => void;
|
|
119
119
|
export interface SetupWorkerApi {
|
|
120
120
|
/**
|
|
121
121
|
* Registers and activates the mock Service Worker.
|
|
122
122
|
* @see {@link https://mswjs.io/docs/api/setup-worker/start `worker.start()`}
|
|
123
123
|
*/
|
|
124
|
-
start: (options?:
|
|
124
|
+
start: (options?: StartOptions) => StartReturnType;
|
|
125
125
|
/**
|
|
126
126
|
* Stops requests interception for the current client.
|
|
127
127
|
* @see {@link https://mswjs.io/docs/api/setup-worker/stop `worker.stop()`}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RequiredDeep } from '../../../typeUtils';
|
|
2
2
|
import { SetupWorkerApi, SetupWorkerInternalContext, StartHandler, StartOptions } from '../../glossary';
|
|
3
|
-
export declare const DEFAULT_START_OPTIONS: StartOptions
|
|
3
|
+
export declare const DEFAULT_START_OPTIONS: RequiredDeep<StartOptions>;
|
|
4
4
|
/**
|
|
5
5
|
* Returns resolved worker start options, merging the default options
|
|
6
6
|
* with the given custom options.
|
|
7
7
|
*/
|
|
8
|
-
export declare function resolveStartOptions(initialOptions?:
|
|
8
|
+
export declare function resolveStartOptions(initialOptions?: StartOptions): RequiredDeep<StartOptions>;
|
|
9
9
|
export declare function prepareStartHandler(handler: StartHandler, context: SetupWorkerInternalContext): SetupWorkerApi['start'];
|
|
@@ -10,7 +10,7 @@ export interface SharedOptions {
|
|
|
10
10
|
* @example worker.start({ onUnhandledRequest: 'warn' })
|
|
11
11
|
* @example server.listen({ onUnhandledRequest: 'error' })
|
|
12
12
|
*/
|
|
13
|
-
onUnhandledRequest
|
|
13
|
+
onUnhandledRequest?: UnhandledRequestStrategy;
|
|
14
14
|
}
|
|
15
15
|
export interface LifeCycleEventsMap<ResponseType> {
|
|
16
16
|
'request:start': (request: MockedRequest) => void;
|
package/lib/types/typeUtils.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { ResponseTransformer } from './response';
|
|
1
2
|
declare type Fn = (...arg: any[]) => any;
|
|
2
|
-
export declare type
|
|
3
|
-
[
|
|
4
|
-
} :
|
|
3
|
+
export declare type RequiredDeep<Type, U extends Record<string, unknown> | Fn | undefined = undefined> = Type extends Fn ? Type : Type extends Record<string, any> ? {
|
|
4
|
+
[Key in keyof Type]-?: NonNullable<Type[Key]> extends NonNullable<U> ? NonNullable<Type[Key]> : RequiredDeep<NonNullable<Type[Key]>, U>;
|
|
5
|
+
} : Type;
|
|
6
|
+
export declare type GraphQLPayloadContext<QueryType extends Record<string, unknown>> = (payload: QueryType) => ResponseTransformer;
|
|
5
7
|
export {};
|
|
@@ -12,4 +12,4 @@ export interface ResponseResolutionContext {
|
|
|
12
12
|
/**
|
|
13
13
|
* Returns a mocked response for a given request using following request handlers.
|
|
14
14
|
*/
|
|
15
|
-
export declare const getResponse: <Request_1 extends MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>, Handler extends RequestHandler<
|
|
15
|
+
export declare const getResponse: <Request_1 extends MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>, Handler extends RequestHandler<import("../handlers/RequestHandler").RequestHandlerDefaultInfo, MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>, any, MockedRequest<import("../handlers/RequestHandler").DefaultRequestBody>>[]>(request: Request_1, handlers: Handler, resolutionContext?: ResponseResolutionContext | undefined) => Promise<ResponseLookupResult>;
|
|
@@ -3,7 +3,7 @@ import { MockedRequest, RequestHandler } from '../handlers/RequestHandler';
|
|
|
3
3
|
import { ServerLifecycleEventsMap } from '../node/glossary';
|
|
4
4
|
import { MockedResponse } from '../response';
|
|
5
5
|
import { SharedOptions } from '../sharedOptions';
|
|
6
|
-
import {
|
|
6
|
+
import { RequiredDeep } from '../typeUtils';
|
|
7
7
|
import { ResponseLookupResult } from './getResponse';
|
|
8
8
|
export interface HandleRequestOptions<ResponseType> {
|
|
9
9
|
/**
|
|
@@ -14,7 +14,7 @@ export interface HandleRequestOptions<ResponseType> {
|
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
16
|
* Transforms a `MockedResponse` instance returned from a handler
|
|
17
|
-
* to a response instance
|
|
17
|
+
* to a response instance supported by the lower tooling (i.e. interceptors).
|
|
18
18
|
*/
|
|
19
19
|
transformResponse?(response: MockedResponse<string>): ResponseType;
|
|
20
20
|
/**
|
|
@@ -24,11 +24,11 @@ export interface HandleRequestOptions<ResponseType> {
|
|
|
24
24
|
/**
|
|
25
25
|
* Invoked when the mocked response is ready to be sent.
|
|
26
26
|
*/
|
|
27
|
-
onMockedResponse?(response: ResponseType, handler:
|
|
27
|
+
onMockedResponse?(response: ResponseType, handler: RequiredDeep<ResponseLookupResult>): void;
|
|
28
28
|
/**
|
|
29
29
|
* Invoked when the mocked response is sent.
|
|
30
30
|
* Respects the response delay duration.
|
|
31
31
|
*/
|
|
32
|
-
onMockedResponseSent?(response: ResponseType, handler:
|
|
32
|
+
onMockedResponseSent?(response: ResponseType, handler: RequiredDeep<ResponseLookupResult>): void;
|
|
33
33
|
}
|
|
34
|
-
export declare function handleRequest<ResponseType extends Record<string, any> = MockedResponse<string>>(request: MockedRequest, handlers: RequestHandler[], options: SharedOptions
|
|
34
|
+
export 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>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Parses a given
|
|
2
|
+
* Parses a given value into a JSON.
|
|
3
3
|
* Does not throw an exception on an invalid JSON string.
|
|
4
4
|
*/
|
|
5
|
-
export declare function jsonParse<
|
|
5
|
+
export declare function jsonParse<ValueType extends Record<string, any>>(value: any): ValueType | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { RequestHandler } from '../../handlers/RequestHandler';
|
|
2
2
|
export declare function use(currentHandlers: RequestHandler[], ...handlers: RequestHandler[]): void;
|
|
3
3
|
export declare function restoreHandlers(handlers: RequestHandler[]): void;
|
|
4
|
-
export declare function resetHandlers(initialHandlers: RequestHandler[], ...nextHandlers: RequestHandler[]): RequestHandler<
|
|
4
|
+
export declare function resetHandlers(initialHandlers: RequestHandler[], ...nextHandlers: RequestHandler[]): RequestHandler<import("../../handlers/RequestHandler").RequestHandlerDefaultInfo, import("../../handlers/RequestHandler").MockedRequest<import("../../handlers/RequestHandler").DefaultRequestBody>, any, import("../../handlers/RequestHandler").MockedRequest<import("../../handlers/RequestHandler").DefaultRequestBody>>[];
|
|
@@ -3,7 +3,7 @@ import { SerializedResponse } from '../../setupWorker/glossary';
|
|
|
3
3
|
* Formats a mocked response for introspection in the browser's console.
|
|
4
4
|
*/
|
|
5
5
|
export declare function prepareResponse(res: SerializedResponse<any>): {
|
|
6
|
-
body: string | Record<string, any> | undefined;
|
|
6
|
+
body: string | number | Record<string, any> | undefined;
|
|
7
7
|
status: number;
|
|
8
8
|
statusText: string;
|
|
9
9
|
headers: import("headers-utils").FlatHeadersObject;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
export declare type Path = string | RegExp;
|
|
2
|
+
export declare type PathParams = Record<string, string | string[]>;
|
|
3
|
+
export interface Match {
|
|
4
|
+
matches: boolean;
|
|
5
|
+
params?: PathParams;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Coerce a path supported by MSW into a path
|
|
9
|
+
* supported by "path-to-regexp".
|
|
10
|
+
*/
|
|
11
|
+
export declare function coercePath(path: string): string;
|
|
2
12
|
/**
|
|
3
13
|
* Returns the result of matching given request URL against a mask.
|
|
4
14
|
*/
|
|
5
|
-
export declare function matchRequestUrl(url: URL, path: Path, baseUrl?: string):
|
|
15
|
+
export declare function matchRequestUrl(url: URL, path: Path, baseUrl?: string): Match;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MockedRequest, RequestHandler } from '../../handlers/RequestHandler';
|
|
2
|
-
declare type UnhandledRequestCallback = (request: MockedRequest) => void;
|
|
2
|
+
export declare type UnhandledRequestCallback = (request: MockedRequest) => void;
|
|
3
3
|
export declare type UnhandledRequestStrategy = 'bypass' | 'warn' | 'error' | UnhandledRequestCallback;
|
|
4
4
|
export declare function onUnhandledRequest(request: MockedRequest, handlers: RequestHandler[], strategy?: UnhandledRequestStrategy): void;
|
|
5
|
-
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MockedRequest } from '../../handlers/RequestHandler';
|
|
2
2
|
/**
|
|
3
|
-
* Parses a given request/response body based on the
|
|
3
|
+
* Parses a given request/response body based on the "Content-Type" header.
|
|
4
4
|
*/
|
|
5
|
-
export declare function parseBody(body?: MockedRequest['body'], headers?: Headers): string | Record<string, any> | undefined;
|
|
5
|
+
export declare function parseBody(body?: MockedRequest['body'], headers?: Headers): string | number | Record<string, any> | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RestRequest } from '../../handlers/RestHandler';
|
|
2
2
|
import { ServiceWorkerIncomingRequest } from '../../setupWorker/glossary';
|
|
3
3
|
/**
|
|
4
4
|
* Converts a given request received from the Service Worker
|
|
5
5
|
* into a `MockedRequest` instance.
|
|
6
6
|
*/
|
|
7
|
-
export declare function parseWorkerRequest(rawRequest: ServiceWorkerIncomingRequest):
|
|
7
|
+
export declare function parseWorkerRequest(rawRequest: ServiceWorkerIncomingRequest): RestRequest;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { InterceptorApi } from '@mswjs/interceptors';
|
|
2
2
|
import { SetupWorkerInternalContext, StartOptions } from '../../setupWorker/glossary';
|
|
3
|
-
|
|
3
|
+
import { RequiredDeep } from '../../typeUtils';
|
|
4
|
+
export declare function createFallbackRequestListener(context: SetupWorkerInternalContext, options: RequiredDeep<StartOptions>): InterceptorApi;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { StartOptions, SetupWorkerInternalContext, ServiceWorkerIncomingEventsMap } from '../../setupWorker/glossary';
|
|
2
2
|
import { ServiceWorkerMessage } from '../createBroadcastChannel';
|
|
3
|
-
|
|
3
|
+
import { RequiredDeep } from '../../typeUtils';
|
|
4
|
+
export declare const createRequestListener: (context: SetupWorkerInternalContext, options: RequiredDeep<StartOptions>) => (event: MessageEvent, message: ServiceWorkerMessage<'REQUEST', ServiceWorkerIncomingEventsMap['REQUEST']>) => Promise<void>;
|