federation/gateway/node_modules/graphql/jsutils/isAsyncIterable.js.flow
2020-11-14 16:43:58 +01:00

18 lines
627 B
Text

// @flow strict
import { SYMBOL_ASYNC_ITERATOR } from '../polyfills/symbols';
/**
* Returns true if the provided object implements the AsyncIterator protocol via
* either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
*/
declare function isAsyncIterable(value: mixed): boolean %checks(value instanceof
AsyncIterable);
// eslint-disable-next-line no-redeclare
export default function isAsyncIterable(maybeAsyncIterable) {
if (maybeAsyncIterable == null || typeof maybeAsyncIterable !== 'object') {
return false;
}
return typeof maybeAsyncIterable[SYMBOL_ASYNC_ITERATOR] === 'function';
}