Releases: mswjs/msw
v2.0.9
v2.0.9 (2023-11-24)
Bug Fixes
- skip parsing GraphQL requests if the request url doesn't match (#1871) (565e802) @mattcosta7 @kettanaito
- throw on invalid request handlers value in ".use()" (#1876) (ce73dfe) @kettanaito
- resolve segfault issue caused by "node:events" import (#1885) (f188d77) @mattcosta7 @kettanaito
v2.0.8
v2.0.8 (2023-11-17)
Bug Fixes
- graphql: allow null for "data" and "errors" response property types (#1867) (a7ffd32) @kettanaito
v2.0.7
v2.0.7 (2023-11-16)
Bug Fixes
- encode cookie string before forwarding request cookies (#1815) (c2d8e98) @Jungzl @kettanaito
- react-native: import "node:events" lazily (#1858) (0d79ec4) @kettanaito
- change request cookie type to be Record<string, string> (#1857) (75bbb96) @ezzatron @kettanaito
v2.0.6
v2.0.6 (2023-11-13)
Bug Fixes
- GraphQL: expose request cookies in "cookies" argument (#1853) (463b74f) @kettanaito
- correct docs link for anonymous GraphQL operations (#1850) (e628278) @okkimus @kettanaito
v2.0.5
v2.0.5 (2023-11-10)
Bug Fixes
- xhr: support environments without location (React Native) (#1849) (f6601d9) @kettanaito
v2.0.4
v2.0.4 (2023-11-08)
Bug Fixes
- safely access "request.credentials" in cloudflare (#1845) (bd0cec7) @kettanaito @mattcosta7
- safely access "Response.type" in cloudflare (#1846) (ccd7096) @kettanaito @mattcosta7
- allow setting "timeout" on XMLHttpRequest (#1844) (6296429) @kettanaito
- update @mswjs/interceptors to 0.25.8 (#1842) (629a3cf) @kettanaito
- allow overriding "Content-Type" in HttpResponse static methods (#1839) (a037e3a) @kettanaito
- narrow
body
type forHttpResponse.json()
to be serializable json (#1838) (2af274c) @kettanaito - remove "formdata-node" dependency (#1837) (d49d48e) @kettanaito
v2.0.3
v2.0.3 (2023-11-04)
Bug Fixes
- correctly check "undefined" as response body type (#1824) (a0ec8be) @kettanaito
- Safari: send explicit null response bodies (#1833) (66fb437) @kettanaito
v2.0.2
v2.0.2 (2023-11-01)
Bug Fixes
- output a single formatted message to console (#1820) (2ead392) @kettanaito
- prevent one-time handlers from incorrectly marking themselves as used (#1822) (a179b68) @joshkel
- resolve the "eventTargets" error in JSDOM by dropping "instanceof" (#1813) (f6e5112) @mattcosta7
v2.0.1
v2.0.0
v2.0.0 (2023-10-23)
Important
This release is a BREAKING CHANGE. Please follow the Migration guidelines to upgrade. This release took a lot of effort to make, and I expect a bit of that effort on your part while upgrading. Most of the changes are mechanical, and a simple Find/Replace All will get you a long way. For the rest of it, you will learn how to handle requests and responses using the standard JavaScript API. Thank you!
Breaking changes
- Drops support for Node.js 16. Please upgrade to Node.js 18 or later to use the global Fetch API.
- Drops support for TypeScript
< 4.7
. - All browser-side exports, like
setupWorker
,SetupWorkerApi
, etc., must be imported frommsw/browser
now. - Renames the
rest
object tohttp
(rest.get
->http.get
).
- Response resolver call signature is no longer
(req, res, ctx) => res()
but instead({ request }) => new Response()
.
- The following exports are removed due to no longer being needed:
response
context
and related exports (defaultContext
,restContext
,graphqlContext
).compose
andcreateResponseComposition
res.once()
is removed in favor of the{ once: boolean }
option on the request handler.- Replaces the
.printHandlers()
method with.listHandlers()
. - Removes the
NetworkError
class in favor of the standardResponse.error()
. - Moves request error handling from the worker thread to the client thread.
- Changes the call signature of the Life-cycle Events API to accept a single object argument.
- Uses
crypto.randomUUID()
instead ofMath.random()
in the worker. - For the full list of changes and detailed instructions on how to upgrade please see the Migration guidelines.
Features
- Adopts Fetch API primitives. Represent intercepted requests and mocked responses as
Request
andResponse
instances respectively. - Supports Node.js v18.
- Supports
ReadableStream
as a mocked response body. - Supports reading the intercepted request body as
FormData
. - Supports
FormData
as a mocked response body. - Uses
File
polyfill in Node.js. - Supports XMLHttpRequest “upload” events when responding with a mocked stream response.
- Allows mocking a network error once using the
{ once: true }
request handler option. - Makes the
RequestHandler
API public.
Bug fixes
- Fixes the issue where the request body couldn’t be properly read as
FormData
. - Fixes a set of issues related to response patching when using the
FormData
response body. - Fixes the issue where
URLSearchParams
as the request body couldn’t be read. - Fixes the issue where a bypassed request’s
referrerPolicy
was reset to a different value than the original.
- Fixes the wrong order of
XMLHttpRequest
events andreadyState
changes. - Fixes the issue when reading an XMLHttpRequest body of
responseType
equal to"arraybuffer"
as an incorrect buffer (previously, always assumed to be a string). - Fixes the order of
XMLHttpRequest
events when the request fails. - Keeps XMLHttpRequest
status
equal to 0 until the request actually resolves. - Fixes the issue when the
onload
event callback was called twice forXMLHttpRequest
. - Various improvements in Node.js network behavior compliance.
@dbritto-dev @ddolcimascolo @markwhitfeld @christoph-fricke @thepassle @piotr-cz @mattcosta7 @koddsson @dkobierski @ricardocosta @dxlbnl @zkochan @felipefreitag @weyert @95th @committomaster @Xayer @Kosai106 @colinsullivan @xmlking @thw0rted @lee-reinhardt @wKovacs64 @TeChn4K @cmolina @nickrttn @thomasbertet @mscottnelson @jonnedeprez @negabaro @the-ult @WesleyYue @cwagner22 @skvale @alawiii521 @csantos1113 @elliotgonzalez123 @committomaster @tsteckenborn @xxleyi @jonnedeprez @danny-does-stuff @lemcii @mattrodak @luisr-carrillo @lee-reinhardt @ealejandrootalvaro @tomdglenn91