node icon indicating copy to clipboard operation
node copied to clipboard

fs: make `FileHandle.readableWebStream` always create byte streams

Open isker opened this issue 4 months ago • 1 comments

The original implementation of the experimental FileHandle.readableWebStream API created non-type: 'bytes' streams, which prevented callers from creating mode: 'byob' readers from the returned stream, which means they could not achieve the associated "zero-copy" performance characteristics.

Then, #46933 added a parameter allowing callers to pass the type parameter down to the ReadableStream constructor, exposing the same semantics to callers of FileHandle.readableWebStream.

But there is no point to giving callers this choice: FileHandle-derived streams are by their very nature byte streams. We should not require callers to explicitly opt in to having byte stream semantics. Moreover, I do not see a situation in which callers would ever want to have a non-bytes stream: bytes-streams only do anything differently than normal ones if mode: 'byob' is passed to getReader.

So, remove the options parameter and always create a ReadableStream with type: 'bytes'.

Fixes #54041.

isker avatar Oct 19 '24 23:10 isker