1.0.0 • Published 8 years ago

meditate v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

Meditate

Code Climate

Meditate on your streaming data with a promise!

Install

# npm i -S meditate

Usage

const observable1 = Meditate();

const observable2 = Meditate(
  (data, push, next) => {
    // do something with data
    // either return a value
    // called push(data); or
    // end(data);
    // - if a value is returned this
    // value will be wrapped in a Promise
    return fetch('http://www.example.com/data.json');
  },
  endingPromise => {
    // endPromise will either resolve
    // to any unread data in the buffer
    // or an empty array
    return endPromise.then(item => item * 2);
  }
);

Use as a Readable Stream

Once an observable has been created it can be used as a iterable:

const a = ['a', 'b', 'c', 'd'];
var i = -1;

const obs = Meditate(function (data, push, end) {
  ++i < (a.length - 1) ? push(a[i]) : end(a[i]);
});

const b = [];
for (var v of obs) b.push(v);

return Promise.all(b).then(function (res) {
  // do something with res
});

More documentation to come...