UNPKG

abort-controller-x-rxjs

Version:
26 lines 853 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fromAsyncGenerator = void 0; const rxjs_1 = require("rxjs"); /** * Turns abortable async generator to observable. */ function fromAsyncGenerator(fn) { return new rxjs_1.Observable(subscriber => { const abortController = new AbortController(); async function iterate() { for await (const item of fn(abortController.signal)) { if (subscriber.closed) { return; } subscriber.next(item); } } iterate().then(() => subscriber.complete(), err => subscriber.error(err)); return () => { abortController.abort(); }; }); } exports.fromAsyncGenerator = fromAsyncGenerator; //# sourceMappingURL=fromAsyncGenerator.js.map