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.toWebandReadable.fromWebreturn if thewebStreamAdaptersis an empty object? - What is the purpose of the
newStreamReadableFromReadableStreamandnewReadableStreamFromStreamReadablefunctions, 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