Skip to content

Commit 7213642

Browse files
committedAug 17, 2017
feat(parseobservablemarble): support grouped value
1 parent 2da7dbc commit 7213642

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed
 

‎src/marbles/parseObservableMarble.ts

+9-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const parseObservableMarble = <T>(
1919
const frameOffset = subscriptionIndex < 0 ? 0 : subscriptionIndex;
2020

2121
const values = Array.from(marble).filter(token => token !== ObservableMarbleToken.NOOP).slice(frameOffset).reduce((
22-
acc: { currentOffset: number; messages: Array<TestMessage<T>> },
22+
acc: { currentOffset: number; messages: Array<TestMessage<T>>; simultaneousGrouped: boolean },
2323
token: any
2424
) => {
2525
let message: TestMessage<T> | null = null;
@@ -37,9 +37,11 @@ const parseObservableMarble = <T>(
3737
case ObservableMarbleToken.TIMEFRAME_EXPAND:
3838
break;
3939
case ObservableMarbleToken.SIMULTANEOUS_START:
40-
acc.currentOffset += 1 * frameTimeFactor;
40+
acc.simultaneousGrouped = true;
4141
break;
4242
case ObservableMarbleToken.SIMULTANEOUS_END:
43+
acc.currentOffset += 1 * frameTimeFactor;
44+
acc.simultaneousGrouped = false;
4345
break;
4446
case SubscriptionMarbleToken.SUBSCRIBE:
4547
break;
@@ -50,13 +52,16 @@ const parseObservableMarble = <T>(
5052

5153
if (!!message) {
5254
acc.messages.push(message);
53-
acc.currentOffset += 1 * frameTimeFactor;
55+
if (!acc.simultaneousGrouped) {
56+
acc.currentOffset += 1 * frameTimeFactor;
57+
}
5458
}
5559

5660
return acc;
5761
}, {
5862
currentOffset: frameOffset,
59-
messages: []
63+
messages: [],
64+
simultaneousGrouped: false
6065
});
6166

6267
return values.messages;

0 commit comments

Comments
 (0)