File tree Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,10 @@ export const createAsyncIterator = async <T = any>(
12
12
) : Promise < AsyncIterator < T > > => {
13
13
const asyncIterator = await lazyFactory ;
14
14
const getNextValue = async ( ) => {
15
+ if ( ! asyncIterator || typeof asyncIterator . next !== 'function' ) {
16
+ return Promise . reject ( asyncIterator ) ;
17
+ }
18
+
15
19
const payload = await asyncIterator . next ( ) ;
16
20
if ( payload . done === true ) {
17
21
return payload ;
@@ -26,7 +30,15 @@ export const createAsyncIterator = async <T = any>(
26
30
return getNextValue ( ) ;
27
31
} ,
28
32
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
+ } ) ;
30
42
} ,
31
43
throw ( error : any ) {
32
44
return asyncIterator . throw ( error ) ;
You can’t perform that action at this time.
0 commit comments