@loken/hierarchies
Version:
Library for working with hierarchies of identifiers and identifiable objects.
21 lines (20 loc) • 822 B
JavaScript
import { SequenceSignal } from "./sequence-signal.js";
const flattenSequence = (options) => options.signal !== void 0 ? flattenSignalSequence(options) : flattenFullSequence(options), flattenSignalSequence = (options) => {
const result = [], signal = new SequenceSignal(options), signalFn = options.signal;
let res = signal.tryGetNext();
for (; res[1]; )
signalFn(res[0], signal), signal.shouldYield() && result.push(res[0]), signal.cleanup(), res = signal.tryGetNext();
return result;
}, flattenFullSequence = (options) => {
const result = [];
let current = options.first;
for (; current !== void 0; )
result.push(current), current = options.next(current);
return result;
};
export {
flattenFullSequence,
flattenSequence,
flattenSignalSequence
};
//# sourceMappingURL=sequence-flatten.js.map