Skip to content

December 10, 2024

Choose a tag to compare

@theguild-bot theguild-bot released this 10 Dec 21:24
· 1281 commits to master since this release
ded85ee

@whatwg-node/node-fetch@0.7.5

Patch Changes

  • #1872
    7fb47d8
    Thanks @ardatan! - Fix the error thrown `ENOTFOUND` when a parsed
    URL with IPV6 hostname is given

    Instead of using the parsed URL passed to the fetch function, let node:http parse it again.
    This way, the IPV6 hostname is correctly resolved.

  • #1872
    7fb47d8
    Thanks @ardatan! - url.searchParams parameter should reflect the
    changes in toString()

    const url = new URL('http://example.com/?a=b')
    url.searchParams.set('a', 'c')
    console.log(url.toString()) // http://example.com/?a=c
  • #1872
    7fb47d8
    Thanks @ardatan! - Fix IPV6 parsing in `URL`;

    new URL('http://[::1]') should parse the host as `[::1]` not `::1`.

@whatwg-node/server@0.9.61

Patch Changes

  • #1872
    7fb47d8
    Thanks @ardatan! - Wait for remaining promises during asyncDispose
    correctly

    The asyncDispose function should wait for all remaining promises to resolve before returning.
    This ensures that the server is fully disposed of before the function returns.

    import { createServerAdapter } from '@whatwg-node/server'
    
    const deferred = Promise.withResolvers()
    
    const adapter = createServerAdapter((req, ctx) => {
      ctx.waitUntil(deferred.promise)
      return new Response('Hello, world!')
    })
    
    const res = await adapter.fetch('http://example.com')
    console.assert(res.status === 200)
    console.assert((await res.text()) === 'Hello, world!')
    
    let disposed = false
    adapter[Symbol.asyncDispose]().then(() => {
      disposed = true
    })
    
    console.assert(!disposed)
    
    deferred.resolve()
    
    console.assert(disposed)