Defined in: batcher.ts:145
A class that collects items and processes them in batches.
Batching is a technique for grouping multiple operations together to be processed as a single unit. This synchronous version is lighter weight and often all you need - upgrade to AsyncBatcher when you need promises, retry support, abort/cancel capabilities, or advanced error handling.
The Batcher provides a flexible way to implement batching with configurable:
State Management:
const batcher = new Batcher<number>(
(items) => console.log('Processing batch:', items),
{
maxSize: 5,
wait: 2000,
onExecute: (batch, batcher) => console.log('Batch executed:', batch)
}
);
batcher.addItem(1);
batcher.addItem(2);
// After 2 seconds or when 5 items are added, whichever comes first,
// the batch will be processed
// batcher.flush() // manually trigger a batch
const batcher = new Batcher<number>(
(items) => console.log('Processing batch:', items),
{
maxSize: 5,
wait: 2000,
onExecute: (batch, batcher) => console.log('Batch executed:', batch)
}
);
batcher.addItem(1);
batcher.addItem(2);
// After 2 seconds or when 5 items are added, whichever comes first,
// the batch will be processed
// batcher.flush() // manually trigger a batch
TValue
new Batcher<TValue>(fn, initialOptions): Batcher<TValue>;
new Batcher<TValue>(fn, initialOptions): Batcher<TValue>;
Defined in: batcher.ts:153
(items) => void
BatcherOptions<TValue>
Batcher<TValue>
fn: (items) => void;
fn: (items) => void;
Defined in: batcher.ts:154
TValue[]
void
key: string | undefined;
key: string | undefined;
Defined in: batcher.ts:149
options: BatcherOptionsWithOptionalCallbacks<TValue>;
options: BatcherOptionsWithOptionalCallbacks<TValue>;
Defined in: batcher.ts:150
readonly store: Store<Readonly<BatcherState<TValue>>>;
readonly store: Store<Readonly<BatcherState<TValue>>>;
Defined in: batcher.ts:146
addItem(item): void;
addItem(item): void;
Defined in: batcher.ts:207
Adds an item to the batcher If the batch size is reached, timeout occurs, or shouldProcess returns true, the batch will be processed
TValue
void
cancel(): void;
cancel(): void;
Defined in: batcher.ts:285
Cancels any pending execution that was scheduled. Does NOT clear out the items.
void
clear(): void;
clear(): void;
Defined in: batcher.ts:277
Removes all items from the batcher
void
flush(): void;
flush(): void;
Defined in: batcher.ts:255
Processes the current batch of items immediately
void
peekAllItems(): TValue[];
peekAllItems(): TValue[];
Defined in: batcher.ts:263
Returns a copy of all items in the batcher
TValue[]
reset(): void;
reset(): void;
Defined in: batcher.ts:293
Resets the batcher state to its default values
void
setOptions(newOptions): void;
setOptions(newOptions): void;
Defined in: batcher.ts:176
Updates the batcher options
Partial<BatcherOptions<TValue>>
void
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.