readable-stream
readable-stream copied to clipboard
`Readable.fromWeb` and `Readable.toWeb` do not seems to be properly implemented
First, thank you for your amazing work on readable-stream
!
Readable.fromWeb
an Readable.toWeb
are calling the newStreamReadableFromReadableStream
and newReadableStreamFromStreamReadable
functions on the webStreamsAdapters
.
However webStreamsAdapters
is only defined as an empty object leading to a failure.
The same problem seems to affect Writable
and Duplex
.
Thanks for reporting! Which Node.js version are you using? This module does not include WebStreams, so I won't expect those method to work... however we should likely throw a better exception.
Thanks for reporting! Which Node.js version are you using?
NodeJS v18.7.0 so I would expect WebStreams to be available.
This module does not include WebStreams, so I won't expect those method to work... however we should likely throw a better exception.
What about having an implementation for cases like NodeJS 16+ and modern web browsers were WebStreams are available?
@mcollina I think the ask is for these methods to work since the environment this package runs in (either Node to support several versions or browsers) often does have web streams?
I understand now, thanks!
Would you like to send a PR? I'll be a bit low on time for the coming months.
Hi @mcollina @benjamingr, since this is an old issue, just wanted to know if this is still relevant or if has it been solved in any way, if not I can work on this.
Had a couple of questions:
- What should the
Readable.toWeb
andReadable.fromWeb
return if thewebStreamAdapters
is an empty object? - What is the purpose of the
newStreamReadableFromReadableStream
andnewReadableStreamFromStreamReadable
functions, as I don't see them defined anywhere in the codebase?
Those are node core functions: https://nodejs.org/api/stream.html#streamreadablefromwebreadablestream-options
Those functions have not been extracted correctly and should have been removed from this module. Use them from require('stream')
.
I think the ask is for these methods to work since the environment this package runs in (either Node to support several versions or browsers) often does have web streams?
@mcollina addressing the issue of the empty webStreamsAdapters
object if the webstreamAdapters is undefined, we can solve it by using a condition and returning something else other than the empty object (as @benjamingr mentioned). That might solve this issue and the failures cause to the users using this method.
Well, I think we should not have these methods to begin with and remove them in the build process.
Would you suggest removing both methods from the readable.js
, so as not to cause further confusion on the origins of these methods? or as you mentioned, modify the build (build.mjs
) file and somehow remove it over there.
Change build.mjs so that they are removed from the build when this module is extracted from Node.js.
Docs need to be updated too