Comparing version 0.8.2 to 0.9.0
import { RequestHandler } from './handlers/requestHandler'; | ||
export declare const createIncomingRequestHandler: (requestHandlers: RequestHandler<any>[]) => (event: MessageEvent) => void; | ||
export declare const createIncomingRequestHandler: (requestHandlers: RequestHandler<any>[]) => (event: MessageEvent) => Promise<void>; |
@@ -8,2 +8,6 @@ import { Mask } from '../composeMocks'; | ||
mode: Request['mode']; | ||
keepalive: Request['keepalive']; | ||
cache: Request['cache']; | ||
destination: Request['destination']; | ||
integrity: Request['integrity']; | ||
credentials: Request['credentials']; | ||
@@ -14,2 +18,3 @@ redirect: Request['redirect']; | ||
body: Record<string, any> | string; | ||
bodyUsed: Request['bodyUsed']; | ||
params: RequestParams; | ||
@@ -20,3 +25,3 @@ } | ||
}; | ||
export declare type ResponseResolver<ContextType = any> = (req: MockedRequest, res: ResponseComposition, context: ContextType) => MockedResponse; | ||
export declare type ResponseResolver<ContextType = any> = (req: MockedRequest, res: ResponseComposition, context: ContextType) => Promise<MockedResponse> | MockedResponse; | ||
export interface RequestHandler<ContextType = any> { | ||
@@ -28,6 +33,6 @@ mask?: Mask; | ||
predicate: (req: MockedRequest) => boolean; | ||
resolver: ResponseResolver<ContextType>; | ||
defineContext: (req: MockedRequest) => ContextType; | ||
resolver: ResponseResolver<ContextType>; | ||
} | ||
declare const _default: any; | ||
export default _default; |
@@ -10,2 +10,3 @@ import { RequestHandler, ResponseResolver } from './requestHandler'; | ||
import { delay } from '../context/delay'; | ||
import { fetch } from '../context/fetch'; | ||
export declare enum RESTMethods { | ||
@@ -27,2 +28,3 @@ GET = "GET", | ||
delay: typeof delay; | ||
fetch: typeof fetch; | ||
} | ||
@@ -29,0 +31,0 @@ declare const _default: { |
@@ -55,2 +55,3 @@ /** | ||
// Bypass requests while MSW is not enabled | ||
if (!client || !self.__isMswEnabled) { | ||
@@ -60,2 +61,18 @@ return resolve(getOriginalResponse()) | ||
// Bypass requests with the explicit bypass header | ||
if (req.headers.get('x-msw-bypass') === 'true') { | ||
const modifiedHeaders = serializeHeaders(req.headers) | ||
// Remove the bypass header to comply with the CORS preflight check | ||
delete modifiedHeaders['x-msw-bypass'] | ||
return resolve( | ||
fetch( | ||
new Request(req.url, { | ||
...req, | ||
headers: new Headers(modifiedHeaders), | ||
}), | ||
), | ||
) | ||
} | ||
/** | ||
@@ -65,6 +82,3 @@ * Converts "Headers" to the plain Object to be stringified. | ||
*/ | ||
const reqHeaders = {} | ||
req.headers.forEach((value, name) => { | ||
reqHeaders[name] = value | ||
}) | ||
const reqHeaders = serializeHeaders(req.headers) | ||
@@ -85,2 +99,4 @@ /** | ||
credentials: req.credentials, | ||
destination: req.destination, | ||
integrity: req.integrity, | ||
redirect: req.redirect, | ||
@@ -90,2 +106,4 @@ referrer: req.referrer, | ||
body: json || text, | ||
bodyUsed: req.bodyUsed, | ||
keepalive: req.keepalive, | ||
}) | ||
@@ -115,1 +133,9 @@ | ||
}) | ||
const serializeHeaders = (headers) => { | ||
const reqHeaders = {} | ||
headers.forEach((value, name) => { | ||
reqHeaders[name] = value | ||
}) | ||
return reqHeaders | ||
} |
{ | ||
"name": "msw", | ||
"version": "0.8.2", | ||
"version": "0.9.0", | ||
"description": "Deviation-less client-side runtime API mocking using Service Workers.", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
Sorry, the diff of this file is too big to display
162603
28
4680
3