@loken/hierarchies
Version:
Library for working with hierarchies of identifiers and identifiable objects.
20 lines (19 loc) • 757 B
JavaScript
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