timing-provider
Version:
An implementation of the timing provider specification.
14 lines • 618 B
JavaScript
import { concatMap, from, scan } from 'rxjs';
export const enforceOrder = (isFirstValue) => (source) => source.pipe(scan(([values, bufferedValues], value) => {
if (isFirstValue(value)) {
if (bufferedValues === null) {
throw new Error('Another value has been identified as the first value already.');
}
return [[value, ...bufferedValues], null];
}
if (bufferedValues === null) {
return [[value], bufferedValues];
}
return [values, [...bufferedValues, value]];
}, [[], []]), concatMap(([values]) => from(values)));
//# sourceMappingURL=enforce-order.js.map