Defined in: queuer.ts:160
A flexible queue that processes items with configurable wait times, expiration, and priority.
Features:
Running behavior:
Manual processing is also supported when automatic processing is disabled:
Queue behavior defaults to FIFO:
Priority queue:
Stack (LIFO):
Double-ended queue:
Item expiration:
Example usage:
// Auto-processing queue with wait time
const autoQueue = new Queuer<number>((n) => console.log(n), {
started: true, // Begin processing immediately
wait: 1000, // Wait 1s between items
onExecute: (item) => console.log(`Processed ${item}`)
});
autoQueue.addItem(1); // Will process after 1s
autoQueue.addItem(2); // Will process 1s after first item
// Manual processing queue
const manualQueue = new Queuer<number>((n) => console.log(n), {
started: false
});
manualQueue.addItem(1); // [1]
manualQueue.addItem(2); // [1, 2]
manualQueue.execute(); // logs 1, queue is [2]
manualQueue.getNextItem(); // returns 2, queue is empty
// Auto-processing queue with wait time
const autoQueue = new Queuer<number>((n) => console.log(n), {
started: true, // Begin processing immediately
wait: 1000, // Wait 1s between items
onExecute: (item) => console.log(`Processed ${item}`)
});
autoQueue.addItem(1); // Will process after 1s
autoQueue.addItem(2); // Will process 1s after first item
// Manual processing queue
const manualQueue = new Queuer<number>((n) => console.log(n), {
started: false
});
manualQueue.addItem(1); // [1]
manualQueue.addItem(2); // [1, 2]
manualQueue.execute(); // logs 1, queue is [2]
manualQueue.getNextItem(); // returns 2, queue is empty
• TValue
new Queuer<TValue>(fn, initialOptions): Queuer<TValue>
new Queuer<TValue>(fn, initialOptions): Queuer<TValue>
Defined in: queuer.ts:171
(item) => void
QueuerOptions<TValue> = {}
Queuer<TValue>
addItem(
item,
position,
runOnUpdate): boolean
addItem(
item,
position,
runOnUpdate): boolean
Defined in: queuer.ts:343
Adds an item to the queue. If the queue is full, the item is rejected and onReject is called. Items can be inserted based on priority or at the front/back depending on configuration.
Returns true if the item was added, false if the queue is full.
Example usage:
queuer.addItem('task');
queuer.addItem('task2', 'front');
queuer.addItem('task');
queuer.addItem('task2', 'front');
TValue
QueuePosition = ...
boolean = true
boolean
clear(): void
clear(): void
Defined in: queuer.ts:313
Removes all pending items from the queue. Does not affect items being processed.
void
execute(position?): undefined | TValue
execute(position?): undefined | TValue
Defined in: queuer.ts:431
Removes and returns the next item from the queue and processes it using the provided function.
Example usage:
queuer.execute();
// LIFO
queuer.execute('back');
queuer.execute();
// LIFO
queuer.execute('back');
undefined | TValue
getExecutionCount(): number
getExecutionCount(): number
Defined in: queuer.ts:490
Returns the number of items that have been processed and removed from the queue.
number
getExpirationCount(): number
getExpirationCount(): number
Defined in: queuer.ts:504
Returns the number of items that have expired and been removed from the queue.
number
getIsEmpty(): boolean
getIsEmpty(): boolean
Defined in: queuer.ts:462
Returns true if the queue is empty (no pending items).
boolean
getIsFull(): boolean
getIsFull(): boolean
Defined in: queuer.ts:469
Returns true if the queue is full (reached maxSize).
boolean
getIsIdle(): boolean
getIsIdle(): boolean
Defined in: queuer.ts:518
Returns true if the queuer is running but has no items to process.
boolean
getIsRunning(): boolean
getIsRunning(): boolean
Defined in: queuer.ts:511
Returns true if the queuer is currently running (processing items).
boolean
getNextItem(position): undefined | TValue
getNextItem(position): undefined | TValue
Defined in: queuer.ts:401
Removes and returns the next item from the queue without executing the function. Use for manual queue management. Normally, use execute() to process items.
Example usage:
// FIFO
queuer.getNextItem();
// LIFO
queuer.getNextItem('back');
// FIFO
queuer.getNextItem();
// LIFO
queuer.getNextItem('back');
QueuePosition = ...
undefined | TValue
getOptions(): Required<QueuerOptions<TValue>>
getOptions(): Required<QueuerOptions<TValue>>
Defined in: queuer.ts:195
Returns the current queuer options, including defaults and any overrides.
Required<QueuerOptions<TValue>>
getRejectionCount(): number
getRejectionCount(): number
Defined in: queuer.ts:497
Returns the number of items that have been rejected from being added to the queue.
number
getSize(): number
getSize(): number
Defined in: queuer.ts:476
Returns the number of pending items in the queue.
number
getWait(): number
getWait(): number
Defined in: queuer.ts:203
Returns the current wait time (in milliseconds) between processing items. If a function is provided, it is called with the queuer instance.
number
peekAllItems(): TValue[]
peekAllItems(): TValue[]
Defined in: queuer.ts:483
Returns a copy of all items in the queue.
TValue[]
peekNextItem(position): undefined | TValue
peekNextItem(position): undefined | TValue
Defined in: queuer.ts:450
Returns the next item in the queue without removing it.
Example usage:
queuer.peekNextItem(); // front
queuer.peekNextItem('back'); // back
queuer.peekNextItem(); // front
queuer.peekNextItem('back'); // back
QueuePosition = ...
undefined | TValue
reset(withInitialItems?): void
reset(withInitialItems?): void
Defined in: queuer.ts:322
Resets the queuer to its initial state. Optionally repopulates with initial items. Does not affect callbacks or options.
boolean
void
setOptions(newOptions): void
setOptions(newOptions): void
Defined in: queuer.ts:188
Updates the queuer options. New options are merged with existing options.
Partial<QueuerOptions<TValue>>
void
start(): void
start(): void
Defined in: queuer.ts:301
Starts processing items in the queue. If already running, does nothing.
void
stop(): void
stop(): void
Defined in: queuer.ts:292
Stops processing items in the queue. Does not clear the queue.
void
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.