UNPKG

@graphql-tools/graphql

Version:
25 lines (24 loc) 945 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isIterableObject = void 0; /** * Returns true if the provided object is an Object (i.e. not a string literal) * and implements the Iterator protocol. * * This may be used in place of [Array.isArray()][isArray] to determine if * an object should be iterated-over e.g. Array, Map, Set, Int8Array, * TypedArray, etc. but excludes string literals. * * @example * ```ts * isIterableObject([ 1, 2, 3 ]) // true * isIterableObject(new Map()) // true * isIterableObject('ABC') // false * isIterableObject({ key: 'value' }) // false * isIterableObject({ length: 1, 0: 'Alpha' }) // false * ``` */ function isIterableObject(maybeIterable) { return typeof maybeIterable === 'object' && typeof (maybeIterable === null || maybeIterable === void 0 ? void 0 : maybeIterable[Symbol.iterator]) === 'function'; } exports.isIterableObject = isIterableObject;