Defined in: queuer.ts:122
A flexible queue data structure that defaults to FIFO (First In First Out) behavior with optional position overrides for stack-like or double-ended operations.
The queuer can automatically process items as they are added, with configurable wait times between processing each item. Processing can be started/stopped and the queuer will maintain its state.
Supports priority-based ordering when a getPriority function is provided. Items with higher priority values will be processed first.
Default queue behavior:
Stack (LIFO) behavior:
Double-ended queuer behavior:
Processing behavior:
// FIFO queuer
const queuer = new Queuer<number>();
queuer.addItem(1); // [1]
queuer.addItem(2); // [1, 2]
queuer.getNextItem(); // returns 1, queuer is [2]
// Priority queuer with processing
const priorityQueue = new Queuer<number>({
getPriority: (n) => n, // Higher numbers have priority
started: true, // Begin processing immediately
wait: 1000, // Wait 1s between items
onGetNextItem: (item, queuer) => console.log(item)
});
priorityQueue.addItem(1); // [1]
priorityQueue.addItem(3); // [3, 1] - 3 processed first
priorityQueue.addItem(2); // [3, 2, 1]
// FIFO queuer
const queuer = new Queuer<number>();
queuer.addItem(1); // [1]
queuer.addItem(2); // [1, 2]
queuer.getNextItem(); // returns 1, queuer is [2]
// Priority queuer with processing
const priorityQueue = new Queuer<number>({
getPriority: (n) => n, // Higher numbers have priority
started: true, // Begin processing immediately
wait: 1000, // Wait 1s between items
onGetNextItem: (item, queuer) => console.log(item)
});
priorityQueue.addItem(1); // [1]
priorityQueue.addItem(3); // [3, 1] - 3 processed first
priorityQueue.addItem(2); // [3, 2, 1]
• TValue
new Queuer<TValue>(initialOptions): Queuer<TValue>
new Queuer<TValue>(initialOptions): Queuer<TValue>
Defined in: queuer.ts:131
QueuerOptions<TValue> = defaultOptions
Queuer<TValue>
addItem(
item,
position,
runOnUpdate): boolean
addItem(
item,
position,
runOnUpdate): boolean
Defined in: queuer.ts:231
Adds an item to the queuer and starts processing if not already running
TValue
QueuePosition = ...
boolean = true
boolean
true if item was added, false if queuer is full
clear(): void
clear(): void
Defined in: queuer.ts:210
Removes all items from the queuer
void
getAllItems(): TValue[]
getAllItems(): TValue[]
Defined in: queuer.ts:347
Returns a copy of all items in the queuer
TValue[]
getExecutionCount(): number
getExecutionCount(): number
Defined in: queuer.ts:354
Returns the number of items that have been removed from the queuer
number
getIsEmpty(): boolean
getIsEmpty(): boolean
Defined in: queuer.ts:326
Returns true if the queuer is empty
boolean
getIsFull(): boolean
getIsFull(): boolean
Defined in: queuer.ts:333
Returns true if the queuer is full
boolean
getIsIdle(): boolean
getIsIdle(): boolean
Defined in: queuer.ts:375
Returns true if the queuer is running but has no items to process
boolean
getIsRunning(): boolean
getIsRunning(): boolean
Defined in: queuer.ts:368
Returns true if the queuer is running
boolean
getNextItem(position): undefined | TValue
getNextItem(position): undefined | TValue
Defined in: queuer.ts:284
Removes and returns an item from the queuer using shift (default) or pop
QueuePosition = ...
undefined | TValue
// Standard FIFO queuer
queuer.getNextItem()
// Stack-like behavior (LIFO)
queuer.getNextItem('back')
// Standard FIFO queuer
queuer.getNextItem()
// Stack-like behavior (LIFO)
queuer.getNextItem('back')
getOptions(): Required<QueuerOptions<TValue>>
getOptions(): Required<QueuerOptions<TValue>>
Defined in: queuer.ts:156
Returns the current queuer options
Required<QueuerOptions<TValue>>
getPeek(position): undefined | TValue
getPeek(position): undefined | TValue
Defined in: queuer.ts:314
Returns an item without removing it
QueuePosition = ...
undefined | TValue
// Look at next item to getNextItem
queuer.getPeek()
// Look at last item (like stack top)
queuer.getPeek('back')
// Look at next item to getNextItem
queuer.getPeek()
// Look at last item (like stack top)
queuer.getPeek('back')
getRejectionCount(): number
getRejectionCount(): number
Defined in: queuer.ts:361
Returns the number of items that have been rejected from the queuer
number
getSize(): number
getSize(): number
Defined in: queuer.ts:340
Returns the current size of the queuer
number
reset(withInitialItems?): void
reset(withInitialItems?): void
Defined in: queuer.ts:218
Resets the queuer to its initial state
boolean
void
setOptions(newOptions): QueuerOptions<TValue>
setOptions(newOptions): QueuerOptions<TValue>
Defined in: queuer.ts:146
Updates the queuer options Returns the new options state
Partial<QueuerOptions<TValue>>
QueuerOptions<TValue>
start(): void
start(): void
Defined in: queuer.ts:198
Starts the queuer and processes items
void
stop(): void
stop(): void
Defined in: queuer.ts:189
Stops the queuer from processing items
void
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.