UNPKG

1.21 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = asyncIteratorReject;
7
8var _iterall = require("iterall");
9
10function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
12/**
13 * Given an error, returns an AsyncIterable which will fail with that error.
14 *
15 * Similar to Promise.reject(error)
16 */
17function asyncIteratorReject(error) {
18 var isComplete = false;
19 /* TODO: Flow doesn't support symbols as keys:
20 https://github.com/facebook/flow/issues/3258 */
21
22 return _defineProperty({
23 next: function next() {
24 var result = isComplete ? Promise.resolve({
25 value: undefined,
26 done: true
27 }) : Promise.reject(error);
28 isComplete = true;
29 return result;
30 },
31 return: function _return() {
32 isComplete = true;
33 return Promise.resolve({
34 value: undefined,
35 done: true
36 });
37 },
38 throw: function _throw() {
39 isComplete = true;
40 return Promise.reject(error);
41 }
42 }, _iterall.$$asyncIterator, function () {
43 return this;
44 });
45}