UNPKG

@fbltd/async

Version:

Miscellaneous async utils

23 lines (22 loc) 629 B
import { symAI } from "../../constants.js"; import { getStream } from "./get.stream.js"; export function onceStream(dep) { const stream = getStream(dep); const iterator = stream[symAI](); return { get isDisposed() { return stream.isDisposed; }, dispose: () => stream.dispose(), [symAI]() { return { next: async () => { const result = await iterator.next(); if (!result.done) stream.dispose(); return result; } }; }, }; }