UNPKG

@jasmith79/sequable

Version:

Library functions for working with generators

47 lines (46 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toIterable = exports.toIterator = void 0; function isIterable(x) { return Boolean(x && typeof x[Symbol.iterator] === "function"); } /** * Converts the given Iterable or generator function to an Iterator, given * an Iterator just returns it. * * @param iter The Iterable, Iterator, or generator function to convert. */ function toIterator(iter) { if (isIterable(iter)) { return iter[Symbol.iterator](); } else if (typeof iter === "function") { return iter(); } else { return iter; } } exports.toIterator = toIterator; /** * Converts the given Iterator or generator function to an Iterable, given * an Iterable just returns it. * * @param iter The Iterable, Iterator, or generator function to convert. */ function toIterable(iter) { if (isIterable(iter)) { return iter; } else if (typeof iter === "function") { return { [Symbol.iterator]: iter, }; } else { return { [Symbol.iterator]: () => iter, }; } } exports.toIterable = toIterable;