msw 0.21.3 → 0.22.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/README.md +3 -9
- package/lib/esm/errors-deps.js +6 -7
- package/lib/esm/fetch-deps.js +44 -22
- package/lib/esm/{matchRequestUrl-deps.js → getCallFrame-deps.js} +32 -5
- package/lib/esm/graphql.js +601 -465
- package/lib/esm/index.js +56 -50
- package/lib/esm/mockServiceWorker.js +16 -10
- package/lib/esm/rest-deps.js +10 -1
- package/lib/esm/rest.js +1 -1
- package/lib/types/context/errors.d.ts +3 -3
- package/lib/types/context/json.d.ts +5 -1
- package/lib/types/index.d.ts +3 -2
- package/lib/types/native/index.d.ts +1 -7
- package/lib/types/node/createSetupServer.d.ts +2 -23
- package/{node/node/createSetupServer.d.ts → lib/types/node/glossary.d.ts} +12 -13
- package/lib/types/node/index.d.ts +1 -0
- package/lib/types/node/setupServer.d.ts +1 -7
- package/lib/types/response.d.ts +7 -2
- package/lib/types/rest.d.ts +60 -30
- package/lib/types/setupWorker/glossary.d.ts +22 -0
- package/lib/types/setupWorker/setupWorker.d.ts +1 -19
- package/lib/types/utils/handlers/requestHandler.d.ts +13 -1
- package/lib/types/utils/internal/getCallFrame.d.ts +4 -0
- package/lib/types/utils/internal/isObject.d.ts +4 -0
- package/lib/types/utils/internal/mergeRight.d.ts +1 -1
- package/lib/types/utils/request/onUnhandledRequest.d.ts +1 -1
- package/lib/umd/index.js +720 -519
- package/lib/umd/mockServiceWorker.js +16 -10
- package/native/index.js +2017 -125
- package/node/index.js +2017 -125
- package/package.json +34 -32
- package/lib/types/LiveStorage.d.ts +0 -17
- package/node/context/delay.d.ts +0 -11
- package/node/context/fetch.d.ts +0 -8
- package/node/context/set.d.ts +0 -2
- package/node/context/status.d.ts +0 -2
- package/node/node/index.d.ts +0 -5
- package/node/node/setupServer.d.ts +0 -7
- package/node/response.d.ts +0 -25
- package/node/utils/NetworkError.d.ts +0 -3
- package/node/utils/getResponse.d.ts +0 -14
- package/node/utils/handlers/requestHandler.d.ts +0 -74
- package/node/utils/handlers/requestHandlerUtils.d.ts +0 -4
- package/node/utils/internal/compose.d.ts +0 -5
- package/node/utils/internal/isNodeProcess.d.ts +0 -5
- package/node/utils/internal/jsonParse.d.ts +0 -5
- package/node/utils/request/getPublicUrlFromRequest.d.ts +0 -6
- package/node/utils/request/onUnhandledRequest.d.ts +0 -5
- package/node/utils/request/parseBody.d.ts +0 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "msw",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.3",
|
|
4
4
|
"description": "Seamless REST/GraphQL API mocking library for browser and Node.",
|
|
5
5
|
"main": "lib/umd/index.js",
|
|
6
6
|
"module": "lib/esm/index.js",
|
|
@@ -66,56 +66,58 @@
|
|
|
66
66
|
"chalk": "^4.1.0",
|
|
67
67
|
"chokidar": "^3.4.2",
|
|
68
68
|
"cookie": "^0.4.1",
|
|
69
|
-
"graphql": "^15.
|
|
69
|
+
"graphql": "^15.4.0",
|
|
70
70
|
"headers-utils": "^1.2.0",
|
|
71
71
|
"node-fetch": "^2.6.1",
|
|
72
|
-
"node-match-path": "^0.
|
|
73
|
-
"node-request-interceptor": "^0.5.
|
|
72
|
+
"node-match-path": "^0.6.0",
|
|
73
|
+
"node-request-interceptor": "^0.5.3",
|
|
74
74
|
"statuses": "^2.0.0",
|
|
75
|
-
"yargs": "^16.
|
|
75
|
+
"yargs": "^16.1.1"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
|
-
"@babel/core": "^7.
|
|
79
|
-
"@babel/preset-env": "^7.
|
|
80
|
-
"@rollup/plugin-commonjs": "^
|
|
78
|
+
"@babel/core": "^7.12.3",
|
|
79
|
+
"@babel/preset-env": "^7.12.1",
|
|
80
|
+
"@rollup/plugin-commonjs": "^16.0.0",
|
|
81
81
|
"@rollup/plugin-inject": "^4.0.2",
|
|
82
82
|
"@rollup/plugin-json": "^4.1.0",
|
|
83
|
-
"@rollup/plugin-node-resolve": "^
|
|
84
|
-
"@rollup/plugin-replace": "^2.3.
|
|
85
|
-
"@types/express": "^4.17.
|
|
86
|
-
"@types/fs-extra": "^9.0.
|
|
87
|
-
"@types/jest": "^26.0.
|
|
88
|
-
"@types/
|
|
83
|
+
"@rollup/plugin-node-resolve": "^10.0.0",
|
|
84
|
+
"@rollup/plugin-replace": "^2.3.4",
|
|
85
|
+
"@types/express": "^4.17.9",
|
|
86
|
+
"@types/fs-extra": "^9.0.4",
|
|
87
|
+
"@types/jest": "^26.0.15",
|
|
88
|
+
"@types/json-bigint": "^1.0.0",
|
|
89
|
+
"@types/node": "^14.14.8",
|
|
89
90
|
"@types/node-fetch": "^2.5.7",
|
|
90
|
-
"@types/puppeteer": "^
|
|
91
|
-
"@types/webpack-dev-server": "^3.11.
|
|
92
|
-
"@typescript-eslint/eslint-plugin": "^4.1
|
|
93
|
-
"@typescript-eslint/parser": "^4.1
|
|
91
|
+
"@types/puppeteer": "^5.4.0",
|
|
92
|
+
"@types/webpack-dev-server": "^3.11.1",
|
|
93
|
+
"@typescript-eslint/eslint-plugin": "^4.8.1",
|
|
94
|
+
"@typescript-eslint/parser": "^4.8.1",
|
|
94
95
|
"apollo-fetch": "^0.7.0",
|
|
95
|
-
"babel-loader": "^8.1
|
|
96
|
+
"babel-loader": "^8.2.1",
|
|
96
97
|
"babel-minify": "^0.5.1",
|
|
97
98
|
"cross-env": "^7.0.0",
|
|
98
|
-
"eslint": "^7.
|
|
99
|
-
"eslint-config-prettier": "^6.
|
|
99
|
+
"eslint": "^7.13.0",
|
|
100
|
+
"eslint-config-prettier": "^6.15.0",
|
|
100
101
|
"eslint-plugin-prettier": "^3.1.4",
|
|
101
102
|
"express": "^4.17.1",
|
|
102
103
|
"fs-extra": "^9.0.1",
|
|
103
|
-
"html-webpack-plugin": "^4.
|
|
104
|
+
"html-webpack-plugin": "^4.5.0",
|
|
104
105
|
"husky": "^4.3.0",
|
|
105
106
|
"ignore-loader": "^0.1.2",
|
|
106
|
-
"jest": "^26.
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
107
|
+
"jest": "^26.6.3",
|
|
108
|
+
"json-bigint": "^1.0.0",
|
|
109
|
+
"lint-staged": "^10.5.1",
|
|
110
|
+
"prettier": "^2.1.2",
|
|
111
|
+
"puppeteer": "^5.5.0",
|
|
110
112
|
"regenerator-runtime": "^0.13.7",
|
|
111
113
|
"rimraf": "^3.0.2",
|
|
112
|
-
"rollup": "^2.
|
|
113
|
-
"rollup-plugin-typescript2": "^0.
|
|
114
|
-
"ts-jest": "^26.
|
|
115
|
-
"ts-loader": "^8.0.
|
|
114
|
+
"rollup": "^2.33.3",
|
|
115
|
+
"rollup-plugin-typescript2": "^0.29.0",
|
|
116
|
+
"ts-jest": "^26.4.4",
|
|
117
|
+
"ts-loader": "^8.0.11",
|
|
116
118
|
"ts-node": "^9.0.0",
|
|
117
|
-
"typescript": "^4.0.
|
|
118
|
-
"url-loader": "^4.1.
|
|
119
|
+
"typescript": "^4.0.5",
|
|
120
|
+
"url-loader": "^4.1.1",
|
|
119
121
|
"webpack": "^4.44.1",
|
|
120
122
|
"webpack-cli": "^3.3.12",
|
|
121
123
|
"webpack-dev-server": "^3.11.0"
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare class LiveStorage<Value> {
|
|
2
|
-
name: string;
|
|
3
|
-
value: Value;
|
|
4
|
-
channel: BroadcastChannel;
|
|
5
|
-
constructor(name: string, initialValue: Value);
|
|
6
|
-
getValue: () => Value;
|
|
7
|
-
update: (applyUpdate: (prevValue: Value) => Value) => void;
|
|
8
|
-
private broadcastValue;
|
|
9
|
-
/**
|
|
10
|
-
* Flush the value into the presistency layer.
|
|
11
|
-
*/
|
|
12
|
-
private persist;
|
|
13
|
-
/**
|
|
14
|
-
* Hydrate the value from the persistency layer.
|
|
15
|
-
*/
|
|
16
|
-
private hydrate;
|
|
17
|
-
}
|
package/node/context/delay.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ResponseTransformer } from '../response';
|
|
2
|
-
export declare const MIN_SERVER_RESPONSE_TIME = 100;
|
|
3
|
-
export declare const MAX_SERVER_RESPONSE_TIME = 400;
|
|
4
|
-
export declare const NODE_SERVER_RESPONSE_TIME = 5;
|
|
5
|
-
/**
|
|
6
|
-
* Delays the current response for the given duration (in ms)
|
|
7
|
-
* @example
|
|
8
|
-
* res(delay()) // realistic server response time
|
|
9
|
-
* res(delay(1500)) // explicit response delay duration
|
|
10
|
-
*/
|
|
11
|
-
export declare const delay: (durationMs?: number | undefined) => ResponseTransformer;
|
package/node/context/fetch.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { MockedRequest } from '../utils/handlers/requestHandler';
|
|
2
|
-
export declare const augmentRequestInit: (requestInit: RequestInit) => RequestInit;
|
|
3
|
-
/**
|
|
4
|
-
* Wrapper around the native `window.fetch()` function that performs
|
|
5
|
-
* a request bypassing MSW. Requests performed using
|
|
6
|
-
* this function will never be mocked.
|
|
7
|
-
*/
|
|
8
|
-
export declare const fetch: (input: string | MockedRequest, requestInit?: RequestInit) => Promise<Response>;
|
package/node/context/set.d.ts
DELETED
package/node/context/status.d.ts
DELETED
package/node/node/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare const setupServer: (...requestHandlers: import("../setupWorker/glossary").RequestHandlersList) => {
|
|
2
|
-
listen(options?: import("../sharedOptions").SharedOptions | undefined): void;
|
|
3
|
-
use(...handlers: import("../setupWorker/glossary").RequestHandlersList): void;
|
|
4
|
-
restoreHandlers(): void;
|
|
5
|
-
resetHandlers(...nextHandlers: import("../setupWorker/glossary").RequestHandlersList): void;
|
|
6
|
-
close(): void;
|
|
7
|
-
};
|
package/node/response.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Headers } from 'headers-utils';
|
|
2
|
-
export interface MockedResponse<BodyType = any> {
|
|
3
|
-
body: BodyType;
|
|
4
|
-
status: number;
|
|
5
|
-
statusText: string;
|
|
6
|
-
headers: Headers;
|
|
7
|
-
once: boolean;
|
|
8
|
-
delay?: number;
|
|
9
|
-
}
|
|
10
|
-
export declare type ResponseTransformer<BodyType = any> = (res: MockedResponse<BodyType>) => MockedResponse<BodyType>;
|
|
11
|
-
declare type ResponseFunction<BodyType = any> = (...transformers: ResponseTransformer<BodyType>[]) => MockedResponse<BodyType>;
|
|
12
|
-
export declare type ResponseComposition<BodyType = any> = ResponseFunction<BodyType> & {
|
|
13
|
-
/**
|
|
14
|
-
* Respond using a given mocked response to the first captured request.
|
|
15
|
-
* Does not affect any subsequent captured requests.
|
|
16
|
-
*/
|
|
17
|
-
once: ResponseFunction<BodyType>;
|
|
18
|
-
networkError: (message: string) => void;
|
|
19
|
-
};
|
|
20
|
-
export declare const defaultResponse: Omit<MockedResponse, 'headers'>;
|
|
21
|
-
export declare const response: ResponseFunction<any> & {
|
|
22
|
-
once: ResponseFunction<any>;
|
|
23
|
-
networkError(message: string): never;
|
|
24
|
-
};
|
|
25
|
-
export {};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { RequestHandlersList } from '../setupWorker/glossary';
|
|
2
|
-
import { RequestHandler, MockedRequest } from './handlers/requestHandler';
|
|
3
|
-
import { MockedResponse } from '../response';
|
|
4
|
-
interface ResponsePayload {
|
|
5
|
-
response: MockedResponse | null;
|
|
6
|
-
handler: RequestHandler<any, any> | null;
|
|
7
|
-
publicRequest?: any;
|
|
8
|
-
parsedRequest?: any;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Returns a mocked response for a given request using following request handlers.
|
|
12
|
-
*/
|
|
13
|
-
export declare const getResponse: <R extends MockedRequest<import("./handlers/requestHandler").DefaultRequestBodyType>, H extends RequestHandlersList>(req: R, handlers: H) => Promise<ResponsePayload>;
|
|
14
|
-
export {};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { Headers } from 'headers-utils';
|
|
2
|
-
import { ResponseWithSerializedHeaders } from '../../setupWorker/glossary';
|
|
3
|
-
import { ResponseComposition, MockedResponse } from '../../response';
|
|
4
|
-
import { set } from '../../context/set';
|
|
5
|
-
export declare const defaultContext: {
|
|
6
|
-
status: (statusCode: number, statusText?: string | undefined) => import("../../response").ResponseTransformer<any>;
|
|
7
|
-
set: typeof set;
|
|
8
|
-
delay: (durationMs?: number | undefined) => import("../../response").ResponseTransformer<any>;
|
|
9
|
-
fetch: (input: string | MockedRequest<DefaultRequestBodyType>, requestInit?: RequestInit) => Promise<Response>;
|
|
10
|
-
};
|
|
11
|
-
export declare type DefaultRequestBodyType = Record<string, any> | string | undefined;
|
|
12
|
-
export interface MockedRequest<BodyType = DefaultRequestBodyType> {
|
|
13
|
-
url: URL;
|
|
14
|
-
method: Request['method'];
|
|
15
|
-
headers: Headers;
|
|
16
|
-
cookies: Record<string, string>;
|
|
17
|
-
mode: Request['mode'];
|
|
18
|
-
keepalive: Request['keepalive'];
|
|
19
|
-
cache: Request['cache'];
|
|
20
|
-
destination: Request['destination'];
|
|
21
|
-
integrity: Request['integrity'];
|
|
22
|
-
credentials: Request['credentials'];
|
|
23
|
-
redirect: Request['redirect'];
|
|
24
|
-
referrer: Request['referrer'];
|
|
25
|
-
referrerPolicy: Request['referrerPolicy'];
|
|
26
|
-
body: BodyType;
|
|
27
|
-
bodyUsed: Request['bodyUsed'];
|
|
28
|
-
params: RequestParams;
|
|
29
|
-
}
|
|
30
|
-
export declare type RequestQuery = {
|
|
31
|
-
[queryName: string]: any;
|
|
32
|
-
};
|
|
33
|
-
export declare type RequestParams = {
|
|
34
|
-
[paramName: string]: any;
|
|
35
|
-
};
|
|
36
|
-
export declare type ResponseResolverReturnType<R> = R | undefined | void;
|
|
37
|
-
export declare type AsyncResponseResolverReturnType<R> = Promise<ResponseResolverReturnType<R>> | ResponseResolverReturnType<R>;
|
|
38
|
-
export declare type ResponseResolver<RequestType = MockedRequest, ContextType = typeof defaultContext, BodyType = any> = (req: RequestType, res: ResponseComposition<BodyType>, context: ContextType) => AsyncResponseResolverReturnType<MockedResponse<BodyType>>;
|
|
39
|
-
export interface RequestHandler<RequestType = MockedRequest, ContextType = typeof defaultContext, ParsedRequest = any, PublicRequest = RequestType, ResponseBodyType = any> {
|
|
40
|
-
/**
|
|
41
|
-
* Parses a captured request to retrieve additional
|
|
42
|
-
* information meant for internal usage in the request handler.
|
|
43
|
-
*/
|
|
44
|
-
parse?: (req: RequestType) => ParsedRequest | null;
|
|
45
|
-
/**
|
|
46
|
-
* Returns a modified request with necessary public properties appended.
|
|
47
|
-
*/
|
|
48
|
-
getPublicRequest?: (req: RequestType, parsedRequest: ParsedRequest) => PublicRequest;
|
|
49
|
-
/**
|
|
50
|
-
* Predicate function that decides whether a Request should be mocked.
|
|
51
|
-
*/
|
|
52
|
-
predicate: (req: RequestType, parsedRequest: ParsedRequest) => boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Returns a mocked response object to the captured request.
|
|
55
|
-
*/
|
|
56
|
-
resolver: ResponseResolver<RequestType, ContextType, ResponseBodyType>;
|
|
57
|
-
/**
|
|
58
|
-
* Returns a map of context utility functions available
|
|
59
|
-
* under the `ctx` argument of request handler.
|
|
60
|
-
*/
|
|
61
|
-
defineContext?: (req: PublicRequest) => ContextType;
|
|
62
|
-
/**
|
|
63
|
-
* Prints out a mocked request/response information
|
|
64
|
-
* upon each request capture into browser's console.
|
|
65
|
-
*/
|
|
66
|
-
log: (req: PublicRequest, res: ResponseWithSerializedHeaders, handler: RequestHandler<RequestType, ContextType, ParsedRequest, PublicRequest, ResponseBodyType>, parsedRequest: ParsedRequest) => void;
|
|
67
|
-
/**
|
|
68
|
-
* Describes whether this request handler should be skipped
|
|
69
|
-
* when dealing with any subsequent matching requests.
|
|
70
|
-
*/
|
|
71
|
-
shouldSkip?: boolean;
|
|
72
|
-
}
|
|
73
|
-
declare const _default: null;
|
|
74
|
-
export default _default;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { RequestHandlersList } from '../../setupWorker/glossary';
|
|
2
|
-
export declare function use(currentHandlers: RequestHandlersList, ...handlers: RequestHandlersList): void;
|
|
3
|
-
export declare function restoreHandlers(handlers: RequestHandlersList): void;
|
|
4
|
-
export declare function resetHandlers(initialHandlers: RequestHandlersList, ...nextHandlers: RequestHandlersList): import("./requestHandler").RequestHandler<any, any, any, any, any>[];
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { MockedRequest } from '../handlers/requestHandler';
|
|
2
|
-
/**
|
|
3
|
-
* Returns a relative URL if the given request URL is relative to the current origin.
|
|
4
|
-
* Otherwise returns an absolute URL.
|
|
5
|
-
*/
|
|
6
|
-
export declare const getPublicUrlFromRequest: (request: MockedRequest) => string;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { MockedRequest } from '../handlers/requestHandler';
|
|
2
|
-
declare type UnhandledRequestCallback = (req: MockedRequest) => void;
|
|
3
|
-
export declare type OnUnhandledRequest = 'bypass' | 'warn' | 'error' | UnhandledRequestCallback;
|
|
4
|
-
export declare function onUnhandledRequest(request: MockedRequest, onUnhandledRequest?: OnUnhandledRequest): void;
|
|
5
|
-
export {};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { MockedRequest } from '../handlers/requestHandler';
|
|
2
|
-
/**
|
|
3
|
-
* Parses a given request/response body based on the `Content-Type` header.
|
|
4
|
-
*/
|
|
5
|
-
export declare function parseBody(body?: MockedRequest['body'], headers?: Headers): import("../handlers/requestHandler").DefaultRequestBodyType;
|