Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@mattiasbuelens/web-streams-polyfill

MattiasBuelens154.6kMITdeprecated0.3.2TypeScript support: included

moved to web-streams-polyfill@2.0.0

Web Streams, based on the WHATWG spec reference implementation

streams, whatwg, polyfill

readme

web-streams-polyfill

Web Streams, based on the WHATWG spec reference implementation.

build status npm version license Join the chat at https://gitter.im/web-streams-polyfill/Lobby

Usage

This library comes in multiple variants:

  • @mattiasbuelens/web-streams-polyfill: a polyfill that replaces the native stream implementations. Recommended for use in web apps supporting older browsers through a <script> tag.
  • @mattiasbuelens/web-streams-polyfill/es6: a polyfill targeting ES2015+ environments. Recommended for use in web apps supporting modern browsers through a <script> tag.
  • @mattiasbuelens/web-streams-polyfill/es2018: a polyfill targeting ES2018+ environments. Required for ReadableStream async iterable support.
  • @mattiasbuelens/web-streams-polyfill/ponyfill: a ponyfill that provides the stream implementations without replacing any globals. Recommended for use in legacy Node applications, or in web libraries supporting older browsers.
  • @mattiasbuelens/web-streams-polyfill/ponyfill/es6: a ponyfill targeting ES2015+ environments. Recommended for use in Node 6+ applications, or in web libraries supporting modern browsers.
  • @mattiasbuelens/web-streams-polyfill/ponyfill/es2018: a ponyfill targeting ES2018+ environments. Recommended for use in Node 10+ applications.

Each variant also includes TypeScript type definitions, compatible with the DOM type definitions for streams included in TypeScript.

Usage as a polyfill:

<!-- option 1: hosted by unpkg CDN -->
<script src="https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js"></script>
<!-- option 2: self hosted -->
<script src="/path/to/web-streams-polyfill/dist/polyfill.min.js"></script>
<script>
var readable = new ReadableStream();
</script>

Usage as a Node module:

var streams = require("@mattiasbuelens/web-streams-polyfill/ponyfill");
var readable = new streams.ReadableStream();

Usage as a ES2015 module:

import { ReadableStream } from "@mattiasbuelens/web-streams-polyfill/ponyfill";
const readable = new ReadableStream();

Compatibility

The polyfill and ponyfill variants work in any ES5-compatible environment that has a global Promise. If you need to support older browsers or Node versions that do not have a native Promise implementation (check the support table), you must first include a Promise polyfill (e.g. promise-polyfill).

The polyfill/es6 and ponyfill/es6 variants work in any ES2015-compatible environment.

The polyfill/es2018 and ponyfill/es2018 variants work in any ES2018-compatible environment.

Compliance

The polyfill implements version 2c8f35e (21 Feb 2019) of the streams specification.

The type definitions are compatible with the built-in stream types of TypeScript 3.3.

Contributors

Thanks to these people for their work on the original polyfill:

changelog

Changelog

Tags:

  • 💥 Breaking Change
  • 👓 Spec Compliance
  • 🚀 New Feature
  • 🐛 Bug Fix
  • 📝 Documentation
  • 🏠 Internal
  • 💅 Polish

v0.3.2 (2019-03-10)

  • 🚀 Add @@asyncIterator to ReadableStream (#11)
  • 🚀 Add polyfill/es2018 and ponyfill/es2018 variants (#11)
  • 🐛 Fix using unsupported Object.assign on Internet Explorer
  • 👓 Align with spec version 2c8f35e (#11, #12)

v0.3.1 (2019-02-25)

  • 🐛 Fix ES5 build target (#9)

v0.3.0 (2019-02-21)

  • 💥 Breaking change: The type of TransformStream<R, W> is changed to TransformStream<I, O> and the meaning of the two type parameters is flipped, to align the polyfill with the built-in type definitions of TypeScript 3.2.
  • 🚀 Add polyfill/es6 variant
  • 🐛 Fix memory leak when using streams in a microtask loop in Node.js (#8)
  • 🏠 Switch to TypeScript (#7)
  • 💅 Improve type definitions (#7)

v0.2.1 (2018-12-31)

  • 🐛 Do not copy ArrayBuffer when transferring chunk to readable byte stream (#3, #4)
  • 👓 Align with spec version 1116de0

v0.2.0 (2018-11-15)

v0.1.0 (2018-08-15)