UNPKG

@lou.codes/iterables

Version:
27 lines (26 loc) 864 B
import { isIterable } from "@lou.codes/predicates"; import { createIterableIterator } from "./createIterableIterator.js"; /** * Takes a value, iterable and yields it. * * @category Generators * @example * ```typescript * const iterable = toIterable(1); * const iterator = getIterator(iterable); * iterator.next(); // { value: 1, done: false } * iterator.next(); // { value: undefined, done: true } * ``` * @see {@link createIterableIterator} * * @template ValueOrIterable Generic of value or iterable to yield. * @param valueOrIterable Vale or iterable to yield. * @returns Yielded item or iterable. */ export const toIterable = valueOrIterable => createIterableIterator(function* () { // eslint-disable-next-line @typescript-eslint/no-unused-expressions isIterable(valueOrIterable) ? yield* valueOrIterable : yield valueOrIterable; });