typed-utilities
Version:
Strongly typed general purpose utilities
47 lines (35 loc) • 892 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.withRunToCompletion = exports.runToCompletion = exports.nextify = exports.next = void 0;
const next = iter => {
const {
value,
done
} = iter.next();
if (done) {
throw new Error(`Iterable is done`);
}
return value;
};
exports.next = next;
const nextify = iter => () => next(iter);
exports.nextify = nextify;
const runToCompletion = iter => new Promise((resolve, reject) => {
while (true) {
try {
const next = iter.next();
if (next.done) {
resolve(next.value);
return;
}
} catch (error) {
reject(error);
}
}
});
exports.runToCompletion = runToCompletion;
const withRunToCompletion = fn => async () => await runToCompletion(fn());
exports.withRunToCompletion = withRunToCompletion;
//# sourceMappingURL=Iterator.js.map