Skip to content

Commit

Permalink
fix(utils): observableToAsyncIterable return type (#2177)
Browse files Browse the repository at this point in the history
revert to old behavior of returning an AsyncIterableIterator
  • Loading branch information
yaacovCR committed Nov 1, 2020
1 parent 856e23f commit e317663
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
5 changes: 5 additions & 0 deletions .changeset/wet-garlics-tickle.md
@@ -0,0 +1,5 @@
---
'@graphql-tools/utils': patch
---

fix(utils): revert to old observableToAsyncIterable return type
27 changes: 13 additions & 14 deletions packages/utils/src/observableToAsyncIterable.ts
Expand Up @@ -14,7 +14,7 @@ export interface Observable<T> {

export type Callback = (value?: any) => any;

export function observableToAsyncIterable<T>(observable: Observable<T>): AsyncIterable<T> {
export function observableToAsyncIterable<T>(observable: Observable<T>): AsyncIterableIterator<T> {
const pullQueue: Array<Callback> = [];
const pushQueue: Array<any> = [];

Expand Down Expand Up @@ -70,20 +70,19 @@ export function observableToAsyncIterable<T>(observable: Observable<T>): AsyncIt
};

return {
next() {
return listening ? pullValue() : this.return();
},
return() {
emptyQueue();
return Promise.resolve({ value: undefined, done: true });
},
throw(error) {
emptyQueue();
return Promise.reject(error);
},
[Symbol.asyncIterator]() {
return {
next() {
return listening ? pullValue() : this.return();
},
return() {
emptyQueue();
return Promise.resolve({ value: undefined, done: true });
},
throw(error) {
emptyQueue();
return Promise.reject(error);
},
};
return this;
},
};
}

0 comments on commit e317663

Please sign in to comment.