1.0.1 • Published 6 years ago

pull-to-promise v1.0.1

Weekly downloads
332
License
MIT
Repository
github
Last release
6 years ago

Pull stream to promise

Convert a pull stream into a promise.

toPromise(stream[, expected])	-> Promise(<value>);

toPromise(stream)				-> Promise(<value>);
toPromise(stream, false)		-> Promise();
toPromise(stream, n)			-> Promise(Array(<value>, ..n));
toPromise(stream, true)			-> Promise(Array <values>);
toPromise.binary(stream)		-> Promise(<value | undefined>);

expected being false for no value, true for any number of values or an integer for a specific number of values. If the expected count is not met an error is thrown.

var pull = require('pull-stream');
var toPromise = require('pull-to-promise');

toPromise(pull(
	pull.values([ 'first', 'second' ]),
	pull.take(1)
))
	.then(console.log);	// "first"
toPromise(pull(
	pull.values([ 'first', 'second', 'third' ]),
	pull.take(2)
), true)
	.then(console.log);	// [ "first", "second" ]

A few shortcuts exist:

toPromise.any		// toPromise(ps, true)
toPromise.none		// toPromise(ps, false)
toPromise.binary	// toPromise(ps, true).then(throwIfMoreThanOne).get(0)

pull(
	pull.values([ 'first', 'second', 'third' ]),
	pull.take(2),
	toPromise.any
))
	.then(console.log);	// [ "first", "second" ]

You may inject your own Promise library if you wish, otherwise the library will default to the Promise global.

var toPromise = require('pull-to-promise');

toPromise.Promise = require('pinkie-promise');