aboutsummaryrefslogtreecommitdiff
path: root/node_modules/observable-to-promise/index.js
blob: 7109b70e592e0c97939bd22fc67d00cd0acc07a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'use strict';
const isObservable = require('is-observable');
const symbolObservable = require('symbol-observable').default;

module.exports = val => {
	if (!isObservable(val)) {
		throw new TypeError('Expected an Observable');
	}

	const ret = [];

	return new Promise((resolve, reject) => {
		val[symbolObservable]().subscribe({
			next: x => {
				ret.push(x);
			},
			error: reject,
			complete: () => {
				resolve(ret);
			}
		});
	});
};