Skip to content

Commit e4ace79

Browse files
fix(json): replace concatMap with mergeMap for improved data handling
1 parent 0d9a51e commit e4ace79

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

packages/operators/src/json.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { concatAll, concatMap, from, map, Observable, of, toArray } from 'rxjs';
1+
import { concatAll, concatMap, from, map, mergeMap, Observable, of, toArray } from 'rxjs';
22

33
import { createAsyncReplacer, createSyncReplacer } from './json/replacer.js';
44
import { createAsyncReviver, createSyncReviver } from './json/reviver.js';
@@ -52,7 +52,7 @@ export const parse = syncTransforms => source =>
5252

5353
const traverse = transforms => source =>
5454
source.pipe(
55-
concatMap(data => of(data).pipe(getOperator(data)(transforms))),
55+
mergeMap(data => of(data).pipe(getOperator(data)(transforms))),
5656
transform(transforms)
5757
//
5858
);

packages/operators/src/json.test.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,19 @@ describe('log', () => {
3737
];
3838

3939
const data = Promise.resolve({
40+
image: new Promise(resolve =>
41+
setTimeout(
42+
() => resolve(readFile('./packages/operators/fixtures/images/test_image.jpg')),
43+
1000
44+
)
45+
),
4046
text: Promise.resolve('hello world'),
4147
bigInt: BigInt(123),
4248
date: new Date(),
4349
url: new URL('https://example.com'),
4450
regexp: /\w/g,
4551
globalSymbol: Symbol.for('foo'),
4652
symbol: Symbol('bar'),
47-
image: readFile('./packages/operators/fixtures/images/test_image.jpg'),
4853
array: [
4954
Promise.resolve('hello world'),
5055
BigInt(123),
@@ -55,14 +60,19 @@ describe('log', () => {
5560
Symbol('bar')
5661
],
5762
nested: of({
63+
image: new Promise(resolve =>
64+
setTimeout(
65+
() => resolve(readFile('./packages/operators/fixtures/images/test_image.jpg')),
66+
1000
67+
)
68+
),
5869
text: Promise.resolve('hello world'),
5970
bigInt: BigInt(123),
6071
date: new Date(),
6172
url: new URL('https://example.com'),
6273
regexp: Promise.resolve(new RegExp('\\w', 'g')),
6374
globalSymbol: Symbol.for('foo'),
64-
symbol: Symbol('bar'),
65-
image: from(readFile('./packages/operators/fixtures/images/test_image.jpg'))
75+
symbol: Symbol('bar')
6676
})
6777
});
6878
console.log('DATA', data);

0 commit comments

Comments
 (0)