moderator-toolbox-nxg-for-reddit / util/data/iter

util/data/iter

Functions

forEachChunked()

forEachChunked<T>(array, chunkSize, delay, call, complete?, start?): false | void

Defined in: extension/data/util/data/iter.ts:17

Iterates over array in chunks of chunkSize, calling call on each item with a delay ms pause between chunks to keep the UI responsive.

Type Parameters

T

T

Parameters

array

ArrayLike<T> | null

The array-like to iterate (no-op when null).

chunkSize

number

Number of items to process per chunk.

delay

number

Milliseconds to pause between chunks.

call

(item, index, array) => unknown

Callback run for each item; return false to stop early.

complete?

() => void

Optional callback invoked after all items have been processed.

start?

() => void

Optional callback invoked before the first chunk.

Returns

false | void

false if arguments are invalid (same as calling complete).


forEachChunkedDynamic()

forEachChunkedDynamic<T>(array, process, options?): Promise<unknown> | undefined

Defined in: extension/data/util/data/iter.ts:66

Iterates over array using requestAnimationFrame to spread processing over multiple frames. Dynamically adjusts chunk size to target framerate FPS.

Type Parameters

T

T

Parameters

array

Iterable<T>

The iterable to process.

process

(item) => void

Callback run for each item.

options?
framerate?

number

Target frames per second.

nerf?

number

Smoothing factor (0-1) for chunk size adjustment.

size?

number

Initial items per frame.

Returns

Promise<unknown> | undefined

A promise that resolves to the original iterable when done.

Type Aliases

MaybeAsyncIterable

MaybeAsyncIterable<T> = Iterable<T> | AsyncIterable<T>

Defined in: extension/data/util/data/iter.ts:4

Either a synchronous or an asynchronous iterable of T.

Type Parameters

T

T