elysiajs/elysia-html

tsc fails when used in an app that has tsconfig set to use the DOM lib on bun-types >= 1.0.19

Opened this issue · 1 comments

Hello!

Part of my CI is to run tsc/bunx --bun tsc --noemit for static analysis test.
This test started to trip once we started using elysia-html

bunx --bun tsc --noemit
../../node_modules/@elysiajs/html/src/handler.ts:42:4 - error TS2345: Argument of type 'TransformStream<any, any>' is not assignable to parameter of type 'ReadableWritablePair<any, any>'.
  Types of property 'readable' are incompatible.
    Type 'ReadableStream<any>' is missing the following properties from type 'ReadableStream<any>': values, [Symbol.asyncIterator]

 42    new TransformStream({
       ~~~~~~~~~~~~~~~~~~~~~
 43     transform(chunk, controller) {
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... 
 57     }
    ~~~~~
 58    })
    ~~~~~

../../node_modules/@elysiajs/html/src/handler.ts:63:3 - error TS2345: Argument of type 'ReadableStream<any>' is not assignable to parameter of type 'BodyInit | null | undefined'.
  Property 'prototype' is missing in type 'import("stream/web").ReadableStream<any>' but required in type 'ReadableStream<any>'.

63   stream,
     ~~~~~~

  ../../node_modules/typescript/lib/lib.dom.d.ts:18507:5
    18507     prototype: ReadableStream;
              ~~~~~~~~~
    'prototype' is declared here.


Found 2 errors in the same file, starting at: ../../node_modules/@elysiajs/html/src/handler.ts:42

The reason is that the TransformStream being used for the test is the one from DOM and not from the NodeJS/Bun Types

UPDATE: updated title to add "on bun-types >= 1.0.19"
upon further inspection

  1. the issue arises once you started using bun-types version 1.0.19 (the latest as of writing is 1.0.20)
  2. we have an automated check to see if later versions of bun-types work via dependabot, but it's not properly installing the latest bun-types package, hence the test is not accurately testing what it is intended to do
    i.e.: https://github.com/elysiajs/elysia-html/actions/runs/7320895423/job/19940603118?pr=78
    still uses 1.0.18:
image