Releases: ardatan/whatwg-node
February 20, 2025
@whatwg-node/[email protected]
Patch Changes
-
#2082
b217e30
Thanks @ardatan! - dependencies updates:- Updated dependency
@whatwg-node/node-fetch@^0.7.9
↗︎
(from^0.7.8
, independencies
)
- Updated dependency
-
#2079
090b4b0
Thanks @ardatan! - Fix the bug whenset-cookies
given is ignored
inHeadersInit
;import { Headers } from '@whatwg-node/fetch' const headers = new Headers([ ['set-cookie', 'a=b'], ['set-cookie', 'c=d'] ]) expect(headers.getSetCookie()).toEqual(['a=b', 'c=d']) // Previously it was empty
-
Updated dependencies
[090b4b0
]:- @whatwg-node/[email protected]
@whatwg-node/[email protected]
Patch Changes
-
#2079
090b4b0
Thanks @ardatan! - Fix the bug whenset-cookies
given is ignored
inHeadersInit
;import { Headers } from '@whatwg-node/fetch' const headers = new Headers([ ['set-cookie', 'a=b'], ['set-cookie', 'c=d'] ]) expect(headers.getSetCookie()).toEqual(['a=b', 'c=d']) // Previously it was empty
@whatwg-node/[email protected]
Patch Changes
- #2082
b217e30
Thanks @ardatan! - dependencies updates:- Updated dependency
@whatwg-node/fetch@^0.10.3
↗︎
(from^0.10.0
, independencies
)
- Updated dependency
- Updated dependencies
[b217e30
,
090b4b0
]:- @whatwg-node/[email protected]
@whatwg-node/[email protected]
Patch Changes
- #2082
b217e30
Thanks @ardatan! - dependencies updates:- Updated dependency
@whatwg-node/cookie-store@^0.2.2
↗︎
(from0.2.2
, independencies
) - Added dependency
@whatwg-node/server@^0.9.67
↗︎
(todependencies
) - Removed dependency
@whatwg-node/server@^0.9.44
↗︎
(frompeerDependencies
)
- Updated dependency
- Updated dependencies
[b217e30
]:- @whatwg-node/[email protected]
February 14, 2025
@whatwg-node/[email protected]
Patch Changes
-
#2057
7d28669
Thanks @ardatan! - When two plugins use theonResponse
hook and
the first one modifies the response, the second one should get the modified one;;[ { onResponse({ setResponse, fetchAPI }) { setResponse( fetchAPI.Response.json( { foo: 'bar' }, { status: 418 } ) ) } }, { onResponse({ response }) { console.log(response.status) // 418 } } ]
February 13, 2025
@whatwg-node/[email protected]
Patch Changes
-
#2049
7c95998
Thanks @ardatan! - Redirect with correct status codes -
#2051
252f68b
Thanks @ardatan! - Fix crash on null header values during inspect -
#2009
5b5ae5f
Thanks @ardatan! - Whenfetch('file:///...')
is used to read
files;- 404 is returned if the file is missing
- 403 is returned if the file is not accessible
February 05, 2025
@whatwg-node/[email protected]
Patch Changes
337e605
Thanks @ardatan! - - Use native AbortSignal and AbortController for
Request.signal- Remove custom AbortSignal implementation (ServerAdapterAbortSignal)
@whatwg-node/[email protected]
Patch Changes
January 10, 2025
@whatwg-node/[email protected]
Patch Changes
- #1961
2785c80
Thanks @ardatan! -ReadableStream
'sSymbol.asyncIterator
now
returnsAsyncIterableIterator
like before even if it is ok to returnAsyncIterator
right now.
It is safer to returnAsyncIterableIterator
because it is a common mistake to use
AsyncIterator
asAsyncIterable
. - Updated dependencies
[2785c80
]:- @whatwg-node/[email protected]
@whatwg-node/[email protected]
Patch Changes
January 10, 2025
@whatwg-node/[email protected]
Patch Changes
- #1929
b88b85c
Thanks @ardatan! - dependencies updates:- Updated dependency
@whatwg-node/node-fetch@^0.7.5
↗︎
(from^0.7.1
, independencies
)
- Updated dependency
- Updated dependencies
[b88b85c
,
9b39c3e
,
b88b85c
]:- @whatwg-node/[email protected]
@whatwg-node/[email protected]
Patch Changes
-
#1929
b88b85c
Thanks @ardatan! - dependencies updates:- Removed dependency
@kamilkisiela/fast-url-parser@^1.1.4
↗︎
(fromdependencies
) - Removed dependency
fast-querystring@^1.1.1
↗︎ (from
dependencies
)
- Removed dependency
-
#1947
9b39c3e
Thanks @ardatan! - Remove the event listener on the provided
AbortSignal
whennode-libcurl
is used, the connection finishes to prevent potential memory
leaks;const res = await fetch(URL, { signal: new AbortController().signal }) // AbortController is never aborted, and HTTP request is done as expected successfully
-
#1929
b88b85c
Thanks @ardatan! - - Remove URL ponyfill implementation based on
fast-url-parser
andfast-querystring
, because Node now uses Ada URL parser which is fast
enough.- Fix
ReadableStream[Symbol.asyncIterator]
ReadableStream
usesReadable
so it usesSymbol.asyncIterator
method ofReadable
but the
returned iterator's.return
method doesn't handle cancellation correctly. So we need to call
readable.destroy(optionalError)
manually to cancel the stream.This allows
ReadableStream
to use implementations relying onAsyncIterable.cancel
to handle
cancellation likeReadable.from
Previously the following was not handling cancellation;
const res = new ReadableStream({ start(controller) { controller.enqueue('Hello') controller.enqueue('World') }, cancel(reason) { console.log('cancelled', reason) } }) const readable = Readable.from(res) readable.destroy(new Error('MY REASON')) // Should log 'cancelled MY REASON'
- Fix
December 24, 2024
@whatwg-node/[email protected]
Patch Changes
-
#1926
bae5de1
Thanks @ardatan! - While callinghandleNodeRequest
or
handleNodeRequestAndResponse
,waitUntil
is not added automatically as inrequestListener
for
Node.js integration. This change addswaitUntil
into theserverContext
if not present.Fixes the issue with Fastify integration that uses the mentioned methods
December 17, 2024
@whatwg-node/[email protected]
Patch Changes
-
#1899
a84e84a
Thanks @ardatan! - - NewonDispose
hook which is alias of
Symbol.asyncDispose
for Explicit Resource Management- Registration of the server adapter's disposal to the global process termination listener is now
opt-in and configurable.
const plugin: ServerAdapterPlugin = { onDispose() { console.log('Server adapter is disposed') } } const serverAdapter = createServerAdapter(() => new Response('Hello world!'), { plugins: [plugin], // Register the server adapter's disposal to the global process termination listener // Then the server adapter will be disposed when the process exit signals only in Node.js! disposeOnProcessTerminate: true }) await serverAdapter.dispose() // Prints 'Server adapter is disposed'
- Registration of the server adapter's disposal to the global process termination listener is now