reason-waffle

0.1.0 • Public • Published

Waffle.re

Waffle is simple streams library for reasonML, inspired by flyd, and was originally created for implementing Meiosis for state management - still haven't used it for that yet 😇 .

Since Waffle is still under development, it lacks many of the features in flyd(e.g. combining streams, atomic updates, ...), so you're welcome to help 😄

Example:

let input = Waffle.stream();

let inc = Waffle.map(i => i + 1);

(inc |> Waffle.pipe) @@ input;

((i => Js.log(i)) |> Waffle.on) @@ inc; /* adding a listner */

input#pour(1); /* inc logs 2 */
Js.log(input#peek() == Some(1)); /* logs true */

(5 |> Waffle.pour) @@ inc; /* inc logs 6 */

let sum = Waffle.scanAndPipe((acc, v) => acc + v, 0, inc);

((i => Js.log(i)) |> Waffle.on) @@ sum; /* sum logs 6 (from inc + 0) */

Js.log("acc sum:");

(2 |> Waffle.pour) @@ sum; /* sum logs 8 */
(5 |> Waffle.pour) @@ sum; /* sum logs 13 */

Installation

npm install --save reason-waffle

Then add reason-waffle to bs-dependencies in your bsconfig.json:

{
  ...
  "bs-dependencies": ["reason-waffle"]
}

More... well, you know 😅

Readme

Keywords

Package Sidebar

Install

npm i reason-waffle

Weekly Downloads

0

Version

0.1.0

License

MIT

Unpacked Size

16.5 kB

Total Files

8

Last publish

Collaborators

  • zurajanainazayda