NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4001 most downloaded on npm
A tiny but capable push & pull stream library for TypeScript and Flow
Last release 6 months ago
24 Mar 2026
Ships unpredictably
gaps range from 8 days to 1.6 years
Some releases are documented
notes for 34 of 59 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
87 releases · first in 2018
Replace for...in with for...of Object.keys() to avoid iterating inherited properties Submitted by @majgaard (See #177)
Nothing published for this version
Exclude sourcesContent from published sourcemaps Submitted by @kitten (See `68e608f`)
One column per quarter.
Nothing published for this version
Add missing Symbol.observable global declaration back to typings Submitted by @kitten (See #168)
Nothing published for this version
Improve compatibility of fromAsyncIterable and toAsyncIterable. The toAsyncIterable will now output an object that's both an AsyncIterator and an Asyn
fromAsyncIterable and toAsyncIterable. The toAsyncIterable will now output an object that's both an AsyncIterator and an AsyncIterable. Both helpers will now use a polyfill for Symbol.asyncIterator to improve compatibility with the Hermes engine and Babel transpilation
Submitted by @kitten (See #165)Nothing published for this version
Publish with npm provenance Submitted by @kitten (See #161)
⚠️ Fix missing declare keyword on internal ambient enums Submitted by @kitten (See #159)
Add addOne argument to takeWhile, allowing an additional value to be issued Submitted by @kitten (See #156)
⚠️ Fix missing source contents in Wonka sourcemaps Submitted by @kitten (See `56d9708`)
Make closed: boolean on ObservableSubscriptions a required field to comply with the Observable proposal's type spec Submitted by @naporin0624 (See #15
closed: boolean on ObservableSubscriptions a required field to comply with the Observable proposal's type spec
Submitted by @naporin0624 (See #151)Add missing overload definition for filter, which allows types to be narrowed, e.g. by specifying a type predicate return type Submitted by @kitten (S
⚠️ Fix overload of pipe type not being applied in bundled d.ts file, by @kitten (See #144)
⚠️ Fix missing Symbol.observable typings and remove const enum exports, which aren't usable in isolated modules, by @kitten (See #141)
⚠️ Fix accidental addition of postinstall script rather than prepare script, by @kitten (See #138)
Implement toAsyncIterable, converting a Wonka source to a JS Async Iterable, by @kitten (See #133)
toAsyncIterable, converting a Wonka source to a JS Async Iterable, by @kitten (See #133)d.ts bundling. Only a single wonka.d.ts typings file will now be available to TypeScript, by @kitten (See #135)wonka internals and exports. This will replace the documentation and give consumers more guidance on each of the library's extensive utilities, by @kitten (See #136)Fix takeUntil missing a Close signal to the notifier source emitting a Push signal (See #128)
takeUntil missing a Close signal to the notifier source emitting a Push signal (See #128)Remove deprecated Node.js package.json root folder mapping (See #127)
Reduce size by deriving multiple sources from make
Some minor fixes and goodies 🎉
makefromIterable (which takes over functionality from fromArray)
combine as a variadic function and zip for any length of an array of sourcesHowever, the fromList API has been removed so far, and we reserve ourselves room to make more breaking changes were behaviour before was broken.
In v6.0.0 of Wonka, we've migrated fully to TypeScript.
If you're using this project with Reason or OCaml before, we're sorry for
the inconvenience. However, v4 and v5-rc will remain usable for these
platforms and languages.
The move of Wonka to a TypeScript-first codebase allows us to focus on the goals of the project that have been most relevant for the urql project. These goals ultimately don't surround being cross-platform and supporting Reason but being a low-overhead, low-size streaming utility library that remains bug free. However, the previous codebase didn't allow us to always guarantee the latter (low-size) as best as we'd like and caused problems for keeping the library bug-free, as a Reason codebase simply isn't as accessible as a TypeScript codebase.
The internal API and data structures of Wonka haven't changed in v6.0.0
compared to the prior releases and are based on v4.0.14. This means that
from a TypeScript, Flow, and JS perspective, v6.0.0 is backwards compatible
and continues to function as before.
However, the fromList API has been removed so far, and we reserve ourselves
room to make more breaking changes were behaviour before was broken.
We're also dropping IE11 support and are now bundling against an ES2015 target.
Add package.json:exports entry for raw file access, by @Austaras (See #96)
Upgrade to BuckleScript 8, by @Austaras (See #88)
Nothing published for this version
Upgrade bundling process and work around an issue with React Native's uglify-es minification which could lead to broken output code.
uglify-es minification which could lead to broken output code.Add minification to automatically squash away implicit returns that return undefined due to a unit return type (See https://github.com/kitten/wonka/co
undefined due to a unit return type (See https://github.com/kitten/wonka/commit/c1c5d590f281b36791e8f024ff3113201a06b5f3)Remove some implicit returns (See https://github.com/kitten/wonka/commit/14fe9f6ab32891a470a1f9e50f779337b533fecb)
return source calls (See https://github.com/kitten/wonka/commit/835f4675ba69e2369011266412906f635b1d0912)Upgrade BuckleScript and other dependencies
Curry._1 and Curry._2 helpers with inline expressionsSee https://github.com/kitten/wonka/commit/1102b364580520b8a447702669de0225e1a46561
Add "./package.json": "./package.json" entry to package.json:exports (See https://github.com/kitten/wonka/commit/3ac8e68f1469874c6f141b8c31f42e45a947d
"./package.json": "./package.json" entry to package.json:exports (See https://github.com/kitten/wonka/commit/3ac8e68f1469874c6f141b8c31f42e45a947d610)Nothing published for this version
Nothing published for this version
This fixes an edge case in switchMap and concatMap where synchronous Push signals would come in from a hot source before Start and would hence be omit
This fixes an edge case in switchMap and concatMap where synchronous Push signals would come in from a hot source before Start and would hence be omitted, which is undesirable.
Fix flow type generation See: #68
Fix flow type generation See: #68
Fix Esy/Dune build process See: #66
Fix Esy/Dune build process See: #66
This is a hotfix for v4.0.0 that fixes the filenames for TypeScript's typings output. Previously typechecking may fail on case-sensitive filesystems d
This is a hotfix for v4.0.0 that fixes the filenames for TypeScript's typings output. Previously typechecking may fail on case-sensitive filesystems due to mismatching imports generated by genType in the TypeScript typings.
This release has no breaking changes for Reason/OCaml in terms of API changes. You can use the library exactly as you have before.
In v4.0.0 of Wonka, we’ve migrated to BuckleScript v7 and genType for automatic type generation for TypeScript. The Flow types are derived from the automatic types and are generated by flowgen.
This may mean that bsb-native and Dune/Esy builds are temporarily broken, as they haven’t been tested yet. If so, they will be fixed in a future minor release. Please stick with v3.2.2 if you’re having trouble.
This release has no breaking changes for Reason/OCaml in terms of API changes. You can use the library exactly as you have before.
The test suite has been rewritten and a huge amount of operators have been revised to behave more predictably and correctly, especially when they're used with synchronous or iterable (cold) sources.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
There aren't any breaking changes in Reason/OCaml (although bsb-native and dune support may be momentarily broken).
This is a prerelease for v4.0.0 :tada:
In the v4 releases Wonka is focusing on adding some smaller missing functionality and increasing it's rigidity. Specifically it's looking to fix some edge cases and providing an even more consistent experience, without odd timing issues or bugs.
In this first release Wonka has been upgraded to BuckleScript v7.0.2 and is now using genType to generate its TypeScript typings (from which the Flow typings are derived).
There aren't any breaking changes in Reason/OCaml (although bsb-native and dune support may be momentarily broken).
The biggest breaking change in TypeScript/Flow/JS comes from the move to BS7, where records now compile to raw, objects so the following migrations have to be made when moving to Wonka v4:
// before:
const [unsubscribe] = Wonka.subscribe(fn)(source);
// after:
const { unsubscribe } = Wonka.subscribe(fn)(source);
// before:
const [source, next, complete] = Wonka.makeSubject();
// after:
const { source, next, complete } = Wonka.makeSubject();
// before:
Wonka.make(([next, complete]) => { /* ... */ });
// after:
Wonka.make(({ next, complete }) => { /* ... */ });
This release doesn't introduce any changes except for reducing the bundle-size of the distributed ESM and CJS dist files.
This release doesn't introduce any changes except for reducing the bundle-size of the distributed ESM and CJS dist files.
This release fixes a bug where onEnd would swallow and not propagate the End signal upwards.
This release fixes a bug where onEnd would swallow and not propagate the End signal upwards.
This release adds the toArray sink utility. Read more about it in the docs
This release adds the toArray sink utility. Read more about it in the docs
It also adds the missing sideEffects: true flag to the package.json file.
Nothing published for this version
With this release a new documentation site for Wonka is finally ready! You can find it at wonka.kitten.sh. It contains a "Getting Started" guide, docs
With this release a new documentation site for Wonka is finally ready! You can find it at wonka.kitten.sh. It contains a "Getting Started" guide, docs on how Wonka works and why it exists, and an extensive API reference with sections for each utility (sources, operators, and sinks)
This release also introduces four new operators! :tada:
fromObservable has been added to convert spec-compliant JS Observables to Wonka sources, and toObservable has been added to convert Wonka sources to JS Observables.
fromCallbag has been added to convert spec-compliant JS Callbags to Wonka sources, and toCallbag has been added to convert Wonka sources to JS Callbags.
This should facilitate full interoperability with Observables (including libraries like zen-observable and RxJS) and with Callbags!
Furthermore, the buffer operator has been added. It can be used to group emitted values from a Wonka source into arrays every time a notifier source emits.
The sample operator has been moved out of WonkaJs and is now usable in non-JavaScript environments. It never actually used any JS APIs and has erroneously been locked down before.
Lastly, this release fixes a bug in the bsconfig.json config. Before the namespace flag has been flipped to true, which caused unexpected issues. This wasn't needed since all modules in Wonka have been named to avoid conflicts already and caused every module to only be accessible under Wonka.Wonka instead of just Wonka.
No breaking changes should've been introduced :tada:
This is a very exciting, new release. Exciting because it adds support for two new environments: Flow and Dune!
This brings the list of supported JS, Reason, and OCaml environments up to all popular ones, since Flow is still popular for typed JS and Dune is an ever-growing build toolchain for native Reason/OCaml.
Hence the full list of supported environments is now:
No breaking changes should've been introduced :tada:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →