Skip to content

Commit 5dcaad5

Browse files
fix(json): update traverseInstructions to handle undefined constructor cases
1 parent f660406 commit 5dcaad5

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

packages/operators/src/json.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ const traverseInstructions = {
2727
source.pipe(
2828
concatMap(value => value),
2929
traverse(transforms)
30-
)
30+
),
31+
[undefined]: () => source => source
3132
};
3233

3334
export const serialize = (asyncTransforms, syncTransforms) => source =>
@@ -52,12 +53,13 @@ export const parse = syncTransforms => source =>
5253

5354
const traverse = transforms => source =>
5455
source.pipe(
55-
mergeMap(data => of(data).pipe(getOperator(data)(transforms))),
56+
mergeMap(data => of(data).pipe(traverseInstructions[getInstructionKey(data)](transforms))),
5657
transform(transforms)
5758
//
5859
);
5960

60-
const getOperator = data => traverseInstructions[data.constructor] || (() => source => source);
61+
const getInstructionKey = ({ constructor }) =>
62+
constructor in traverseInstructions ? constructor : undefined;
6163

6264
const transform = transforms => source =>
6365
source.pipe(concatMap(data => of(data).pipe(findTransform(transforms, data).handler())));

0 commit comments

Comments
 (0)