Comments (3)
Some more thoughts on this...
Right now, the polyfill always replaces the global stream implementations. However, if the native implementation were fully spec-compliant, the polyfill should detect this and simply use the native implementation. (At the moment, Chrome 68 is the closest to full compliance, supporting everything except for readable byte streams.)
If the polyfill would re-export the native implementation, then we can't provide ReadableStream.from
without mutating the global ReadableStream
. Therefore, we should not use static utility methods.
from web-streams-polyfill.
Looks like the spec is planing on adding ReadableStream.from(iterable)
now as well.
It could serve as a grate utility to convert the polyfill stream to/from a native one (until you are using native streams - #20)
maybe could have two implementation in the meanwhile?
window.ReadableStream.from(iterable)
// converts iterable to nativepolyfill.ReadableStream.from(iterable)
// converts iterable to polyfilled version
all doe the later one would quickly be obsolete when you are using native streams.
the native ReadableStream would also need asyncIterable to work...
from web-streams-polyfill.
Good idea!
Indeed, if ReadableStream.from()
becomes a thing, the polyfill can provide a version which also handles conversions. Aside from accepting an (async) iterable, it could also accept a native ReadableStream
(even if the native stream is not async iterable itself).
I'll keep it in mind when I (eventually) get to this. Right now, I'm keeping an eye on the ongoing work for converting the spec to WebIDL, in particular on the functional changes that will be needed for the polyfill...
from web-streams-polyfill.
Related Issues (20)
- Use in a streaming library for nodejs and browsers HOT 6
- dom-exception.ts HOT 6
- closing a stream followed by respond(0) can error if close is not syncronously putting stream in closed state HOT 5
- `pipeTo` doesn't use `signal.reason` as error HOT 2
- Example for polyfilling TextDecoderStream in previous browsers HOT 2
- `pipeTo` with `preventCancel: true` never settle if `readable` doesn't produce new chunks HOT 2
- Upgrading to Typescript 4.9 results in error TS2322 when using web-streams-polyfill HOT 3
- Abilities to support web streams under IE8-? HOT 3
- signal with pre aborted HOT 5
- Running WPT HOT 13
- [question/help] tee:ing a async iterator HOT 6
- Ready to boost your popularity to like 22 mil download / week? HOT 14
- Upgrading to Typescript 4.4 results in error TS2345 when using web-streams-polyfill HOT 5
- ERR_UNSUPPORTED_DIR_IMPORT HOT 2
- Building with rollup ends with circular dependency warnings HOT 2
- `Cannot abort a stream that already has a writer` HOT 9
- "TypeError: Failed to execute 'pipeThrough' on 'ReadableStream'" HOT 4
- Issue with dynamic import HOT 3
- The stream is not in a state that permits enqueue; new Response(readable).blob().text() resolve to [object ReadableStream] not underlying source HOT 10
- ReadableStream and File/Blob HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from web-streams-polyfill.