foop
Version:
interfaces that describe their intentions.
47 lines (45 loc) • 2.63 kB
JavaScript
var toS = require('./toS')
/**
* @param {*} x value
* @return {boolean} isIterator
*
* @since 3.0.0
* @memberOf is
* @func
* @name isIterator
* @see https://github.com/jonschlinkert/kind-of/pull/12
* @see https://github.com/facebook/immutable-js/blob/master/src/Iterator.js#L59
*
* @example
*
* isIterator(new Set().values())
* //=> true
* isIterator(new Map.entries())
* //=> true
* isIterator(new Map())
* //=> false
* isIterator('')
* //=> false
* isIterator(1)
* //=> false
*
* @example
*
* const e = {}
* eh[Symbol.toStringTag] = '[Map Iterator]'
* isIterator(eh)
* //=> true
* eh[Symbol.toStringTag] = '[Set Iterator]'
* isIterator(eh)
* //=> true
*
* @example
*
* class Eh extends Set()
* isIterator(new Eh().values())
* //=> true
*
*/
// eslint-disable-next-line
module.exports = function (x) { return ~toS(x).indexOf('Iterator'); }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlcmF0b3IuanMiLCJzb3VyY2VzIjpbIml0ZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRvUyA9IHJlcXVpcmUoJy4vdG9TJylcblxuLyoqXG4gKiBAcGFyYW0gIHsqfSB4IHZhbHVlXG4gKiBAcmV0dXJuIHtib29sZWFufSBpc0l0ZXJhdG9yXG4gKlxuICogQHNpbmNlIDMuMC4wXG4gKiBAbWVtYmVyT2YgaXNcbiAqIEBmdW5jXG4gKiBAbmFtZSBpc0l0ZXJhdG9yXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qb25zY2hsaW5rZXJ0L2tpbmQtb2YvcHVsbC8xMlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svaW1tdXRhYmxlLWpzL2Jsb2IvbWFzdGVyL3NyYy9JdGVyYXRvci5qcyNMNTlcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICBpc0l0ZXJhdG9yKG5ldyBTZXQoKS52YWx1ZXMoKSlcbiAqICAvLz0+IHRydWVcbiAqICBpc0l0ZXJhdG9yKG5ldyBNYXAuZW50cmllcygpKVxuICogIC8vPT4gdHJ1ZVxuICogIGlzSXRlcmF0b3IobmV3IE1hcCgpKVxuICogIC8vPT4gZmFsc2VcbiAqICBpc0l0ZXJhdG9yKCcnKVxuICogIC8vPT4gZmFsc2VcbiAqICBpc0l0ZXJhdG9yKDEpXG4gKiAgLy89PiBmYWxzZVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogIGNvbnN0IGUgPSB7fVxuICogIGVoW1N5bWJvbC50b1N0cmluZ1RhZ10gPSAnW01hcCBJdGVyYXRvcl0nXG4gKiAgaXNJdGVyYXRvcihlaClcbiAqICAvLz0+IHRydWVcbiAqICBlaFtTeW1ib2wudG9TdHJpbmdUYWddID0gJ1tTZXQgSXRlcmF0b3JdJ1xuICogIGlzSXRlcmF0b3IoZWgpXG4gKiAgLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgY2xhc3MgRWggZXh0ZW5kcyBTZXQoKVxuICogIGlzSXRlcmF0b3IobmV3IEVoKCkudmFsdWVzKCkpXG4gKiAgLy89PiB0cnVlXG4gKlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbm1vZHVsZS5leHBvcnRzID0geCA9PiB+dG9TKHgpLmluZGV4T2YoJ0l0ZXJhdG9yJylcbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QzVCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQSxDQUFDLENBQUEsQ0FBQyxBQUFHLFNBQUEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFBOyJ9