// TypeScript Version: 3.4 import { EP, Iter } from './utils'; /** * https://github.com/rudty/nodekell#repeat * * **Note** * - if use with run or run like function, please use lambda expression or function * ```ts * const a = Promise.resolve('a'); * const r0 = await F.run(a, e => repeat(e)); * const r1 = await F.run(a, e => repeat(10, e)); * ``` * @param supply */ export function repeat(length: number | Promise, supply: Promise<() => T>): AsyncIterableIterator>; export function repeat(length: number | Promise, supply: () => T): AsyncIterableIterator>; export function repeat(length: number | Promise, supply: T): AsyncIterableIterator>; export function repeat(supply: Promise<() => T>): AsyncIterableIterator>; export function repeat(supply: () => T): AsyncIterableIterator>; export function repeat(supply: T): AsyncIterableIterator>; /** * https://github.com/rudty/nodekell#range * * @param endOrBegin * @param end * @param step */ export function range(end?: number): IterableIterator; export function range(begin: number, end: number, step?: number): IterableIterator; /** * https://github.com/rudty/nodekell#iterate * * @param f * @param value */ export function iterate(f: (value: T) => (T | Promise), value: T | Promise): AsyncIterableIterator; export function iterate(f: (value: T) => (T | Promise)): (value: T | Promise) => AsyncIterableIterator; /** * https://github.com/rudty/nodekell#enumerate * * @param iter */ // export function enumerate(iter: Iter>): AsyncIterableIterator<[number, T]>; export function enumerate(iter: Iter): AsyncIterableIterator<[number, EP]>;