Sha256: 7e202e256dc7578654e18c80e030fdaa3c18789b75b58e1f2434b17e774bd03b

Contents?: true

Size: 879 Bytes

Versions: 26

Compression:

Stored size: 879 Bytes

Contents

/**
 * This is the same as TypeScript's `Iterable`, but with all three type parameters.
 * @todo Remove once TypeScript 5.6 is the minimum.
 */
export interface Iterable<T, TReturn, TNext> {
  [Symbol.iterator](): Iterator<T, TReturn, TNext>
}

/**
 * This is the same as TypeScript's `AsyncIterable`, but with all three type parameters.
 * @todo Remove once TypeScript 5.6 is the minimum.
 */
export interface AsyncIterable<T, TReturn, TNext> {
  [Symbol.asyncIterator](): AsyncIterator<T, TReturn, TNext>
}

/**
 * Determines if the given function is an iterator.
 */
export function isIterable<IteratorType>(
  fn: any,
): fn is
  | Iterable<IteratorType, IteratorType, IteratorType>
  | AsyncIterable<IteratorType, IteratorType, IteratorType> {
  if (!fn) {
    return false
  }

  return (
    Reflect.has(fn, Symbol.iterator) || Reflect.has(fn, Symbol.asyncIterator)
  )
}

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
clapton-0.0.26 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.25 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.24 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.23 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.22 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.21 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.20 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.19 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.18 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.17 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.16 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.15 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.14 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.13 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.12 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.11 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.10 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.9 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.8 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts
clapton-0.0.7 lib/clapton/javascripts/node_modules/msw/src/core/utils/internal/isIterable.ts