All files / Api/Concurrency/Streams createConcurrencyIntervalStream.js

100% Statements 9/9
100% Branches 0/0
100% Functions 5/5
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 251x 1x               6x           10x 10x   2x   15x        
import { interval } from 'rxjs';
import {
    filter,
    map,
    switchMap,
    withLatestFrom,
    distinctUntilChanged,
} from 'rxjs/operators';
 
const createConcurrencyIntervalStream = (
    concurrencyStoreUpdate$,
    scheduler,
) =>
    concurrencyStoreUpdate$
        .pipe(
            map(({ updateIntervalMs }) => updateIntervalMs),
            filter(updateIntervalMs => updateIntervalMs > 0),
            distinctUntilChanged(),
            switchMap(updateIntervalMs => interval(updateIntervalMs, scheduler)),
            withLatestFrom(concurrencyStoreUpdate$),
            map(([, latestConcurrency]) => latestConcurrency),
        );
 
export default createConcurrencyIntervalStream;