npm install rxjs-branch
const branches = await firstValueFrom(
range(0, 10).pipe(
branch(
value => value % 2 === 0,
(state, value) => state,
),
mergeMap(value$ =>
value$.pipe(
map(([state, value]) => value),
toArray(),
),
),
toArray(),
),
);
expect(branches).toEqual([
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[2, 3, 4, 5, 6, 7, 8, 9],
[4, 5, 6, 7, 8, 9],
[6, 7, 8, 9],
[8, 9],
]);
MIT License.