Skip to content

Commit 487379b

Browse files
fix() invalid async iterator when enhacers used
1 parent 62460bf commit 487379b

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

lib/utils/async-iterator.util.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ export const createAsyncIterator = async <T = any>(
1212
): Promise<AsyncIterator<T>> => {
1313
const asyncIterator = await lazyFactory;
1414
const getNextValue = async () => {
15+
if (!asyncIterator || typeof asyncIterator.next !== 'function') {
16+
return Promise.reject(asyncIterator);
17+
}
18+
1519
const payload = await asyncIterator.next();
1620
if (payload.done === true) {
1721
return payload;
@@ -26,7 +30,15 @@ export const createAsyncIterator = async <T = any>(
2630
return getNextValue();
2731
},
2832
return() {
29-
return asyncIterator.return();
33+
const isAsyncIterator =
34+
asyncIterator && typeof asyncIterator.return === 'function';
35+
36+
return isAsyncIterator
37+
? asyncIterator.return()
38+
: Promise.resolve({
39+
done: true,
40+
value: asyncIterator,
41+
});
3042
},
3143
throw(error: any) {
3244
return asyncIterator.throw(error);

0 commit comments

Comments
 (0)