UNPKG

@loken/hierarchies

Version:

Library for working with hierarchies of identifiers and identifiable objects.

20 lines (19 loc) 757 B
import { SequenceSignal } from "./sequence-signal.js"; const traverseSequence = (options) => options.signal !== void 0 ? traverseSignalSequence(options) : traverseFullSequence(options); function* traverseSignalSequence(options) { const signal = new SequenceSignal(options), signalFn = options.signal; let res = signal.tryGetNext(); for (; res[1]; ) signalFn(res[0], signal), signal.shouldYield() && (yield res[0]), signal.cleanup(), res = signal.tryGetNext(); } function* traverseFullSequence(options) { let current = options.first; for (; current !== void 0; ) yield current, current = options.next(current); } export { traverseFullSequence, traverseSequence, traverseSignalSequence }; //# sourceMappingURL=sequence-traverse.js.map