UNPKG

ix

Version:

The Interactive Extensions for JavaScript

41 lines (40 loc) 1.55 kB
import { IterableX } from '../iterablex.js'; import { OperatorFunction } from '../../interfaces.js'; /** @ignore */ export declare class BufferIterable<TSource> extends IterableX<TSource[]> { private _source; private _count; private _skip; constructor(source: Iterable<TSource>, count: number, skip: number); [Symbol.iterator](): Generator<TSource[], void, unknown>; } /** * Generates a sequence of buffers over the source sequence, with specified length and possible overlap. * @example <caption>Creates a sequence of buffers with and without skip</caption> * const source = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; * * // Without skip * const result = buffer(source, 5); * const result = Ix.Iterable.from(source).buffer(5); * for (const item of result) { * console.log(result); * } * // => [0, 1, 2, 3, 4] * // => [5, 6, 7, 8, 9] * * // With skip * const result = buffer(source, 3, 4); * const result = Ix.Iterable.from(source).buffer(3, 4); * for (const item of result) { * console.log(result); * } * // => [0, 1, 2] * // => [4, 5, 6] * // => [8, 9] * @param {Iterabel<TSource>} source Source sequence * @param {number} count Number of elements for allocated buffers. * @param {number} [skip] Number of elements to skip between the start of consecutive buffers. If not specified, defaults * to the count. * @return {IterableX<TSource>[]} Sequence of buffers containing source sequence elements */ export declare function buffer<TSource>(count: number, skip?: number): OperatorFunction<TSource, TSource[]>;