An open API service indexing awesome lists of open source software.

https://github.com/idimetrix/tail-queue

TypeScript/JavaScript promise queue client library with concurrency control
https://github.com/idimetrix/tail-queue

Last synced: 4 months ago
JSON representation

TypeScript/JavaScript promise queue client library with concurrency control

Awesome Lists containing this project

README

        

- [tail-queue](#tail-queue)
- [Installation](#installation)
- [Demo](#demo)
- [Documentation](#documentation)
- [Classes](#classes)
- [Class: default\](#class-default%5Cqueuetype-enqueueoptionstype)
- [Type parameters](#type-parameters)
- [Hierarchy](#hierarchy)
- [Index](#index)
- [Constructors](#constructors)
- [Properties](#properties)
- [Accessors](#accessors)
- [Methods](#methods)
- [Class: PriorityQueue](#class-priorityqueue)
- [Hierarchy](#hierarchy-1)
- [Implements](#implements)
- [Index](#index-1)
- [Accessors](#accessors-1)
- [Methods](#methods-1)
- [tail-queue](#tail-queue-1)
- [Index](#index-2)
- [Classes](#classes-1)
- [Interfaces](#interfaces)
- [Type aliases](#type-aliases)
- [Functions](#functions)
- [Type aliases](#type-aliases-1)
- [ResolveFunction](#resolvefunction)
- [RunFunction](#runfunction)
- [Task](#task)
- [Functions](#functions-1)
- [PromiseFinally](#promisefinally)
- [PromiseTimeout](#promisetimeout)
- [empty](#empty)
- [lowerBound](#lowerbound)
- [Interfaces](#interfaces-1)
- [Interface: DefaultAddOptions](#interface-defaultaddoptions)
- [Hierarchy](#hierarchy-2)
- [Indexable](#indexable)
- [Index](#index-3)
- [Properties](#properties-1)
- [Interface: Options\](#interface-options%5Cqueuetype-queueoptions)
- [Type parameters](#type-parameters-1)
- [Hierarchy](#hierarchy-3)
- [Index](#index-4)
- [Properties](#properties-2)
- [Interface: PriorityQueueOptions](#interface-priorityqueueoptions)
- [Hierarchy](#hierarchy-4)
- [Indexable](#indexable-1)
- [Index](#index-5)
- [Properties](#properties-3)
- [Interface: PriorityQueueRunOptions](#interface-priorityqueuerunoptions)
- [Hierarchy](#hierarchy-5)
- [Indexable](#indexable-2)
- [Index](#index-6)
- [Properties](#properties-4)
- [Interface: Queue\](#interface-queue%5Celement-options)
- [Type parameters](#type-parameters-2)
- [Hierarchy](#hierarchy-6)
- [Implemented by](#implemented-by)
- [Index](#index-7)
- [Properties](#properties-5)
- [Interface: QueueAddOptions](#interface-queueaddoptions)
- [Hierarchy](#hierarchy-7)
- [Indexable](#indexable-3)

**[tail-queue](#readmemd)**

> [Globals](#globalsmd)

## tail-queue

#### TypeScript/JavaScript promise queue client library with concurrency control

## Installation

Install with [npm](https://www.npmjs.com):

```sh
$ npm install --save tail-queue
```

Install with [yarn](https://yarnpkg.com):

```sh
$ yarn add tail-queue
```

## [Demo](https://www.npmjs.com/package/tail-queue)

#### [Try online demo](https://www.npmjs.com/package/tail-queue)

## [Documentation](https://www.npmjs.com/package/tail-queue)

#### [Try online documentation](https://www.npmjs.com/package/tail-queue)

# Classes

**[tail-queue](#readmemd)**

> [Globals](#globalsmd) / default

## Class: default\

Promise queue with concurrency control.

### Type parameters

Name | Type | Default |
------ | ------ | ------ |
`QueueType` | [Queue](#interfacesqueuemd)\<[RunFunction](#runfunction), EnqueueOptionsType> | PriorityQueue |
`EnqueueOptionsType` | [QueueAddOptions](#interfacesqueueaddoptionsmd) | DefaultAddOptions |

### Hierarchy

* EventEmitter

↳ **default**

### Index

#### Constructors

* [constructor](#constructor)

#### Properties

* [defaultMaxListeners](#defaultmaxlisteners)

#### Accessors

* [concurrency](#concurrency)
* [isPaused](#ispaused)
* [pending](#pending)
* [size](#size)
* [timeout](#timeout)

#### Methods

* [add](#add)
* [addAll](#addall)
* [addListener](#addlistener)
* [clear](#clear)
* [emit](#emit)
* [eventNames](#eventnames)
* [getMaxListeners](#getmaxlisteners)
* [listenerCount](#listenercount)
* [listeners](#listeners)
* [off](#off)
* [on](#on)
* [onEmpty](#onempty)
* [onIdle](#onidle)
* [once](#once)
* [pause](#pause)
* [prependListener](#prependlistener)
* [prependOnceListener](#prependoncelistener)
* [rawListeners](#rawlisteners)
* [removeAllListeners](#removealllisteners)
* [removeListener](#removelistener)
* [setMaxListeners](#setmaxlisteners)
* [sizeBy](#sizeby)
* [start](#start)
* [listenerCount](#listenercount)

### Constructors

#### constructor

\+ **new default**(`options?`: Options\): [default](#classesdefaultmd)

*Defined in [src/index.ts:37](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L37)*

##### Parameters:

Name | Type |
------ | ------ |
`options?` | Options\ |

**Returns:** [default](#classesdefaultmd)

### Properties

#### defaultMaxListeners

▪ `Static` **defaultMaxListeners**: number

*Inherited from [default](#classesdefaultmd).[defaultMaxListeners](#defaultmaxlisteners)*

*Defined in node_modules/@types/events/index.d.ts:11*

### Accessors

#### concurrency

• get **concurrency**(): number

*Defined in [src/index.ts:215](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L215)*

**Returns:** number

• set **concurrency**(`newConcurrency`: number): void

*Defined in [src/index.ts:219](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L219)*

##### Parameters:

Name | Type |
------ | ------ |
`newConcurrency` | number |

**Returns:** void

___

#### isPaused

• get **isPaused**(): boolean

*Defined in [src/index.ts:395](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L395)*

Whether the queue is currently paused.

**Returns:** boolean

___

#### pending

• get **pending**(): number

*Defined in [src/index.ts:388](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L388)*

Number of pending promises.

**Returns:** number

___

#### size

• get **size**(): number

*Defined in [src/index.ts:372](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L372)*

Size of the queue.

**Returns:** number

___

#### timeout

• get **timeout**(): number \| undefined

*Defined in [src/index.ts:399](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L399)*

Set the timeout for future operations.

**Returns:** number \| undefined

• set **timeout**(`milliseconds`: number \| undefined): void

*Defined in [src/index.ts:406](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L406)*

Set the timeout for future operations.

##### Parameters:

Name | Type |
------ | ------ |
`milliseconds` | number \| undefined |

**Returns:** void

### Methods

#### add

▸ **add**\(`fn`: [Task](#task)\, `options`: Partial\): Promise\

*Defined in [src/index.ts:234](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L234)*

Adds a sync or async task to the queue. Always returns a promise.

##### Type parameters:

Name |
------ |
`TaskResultType` |

##### Parameters:

Name | Type | Default value |
------ | ------ | ------ |
`fn` | [Task](#task)\ | - |
`options` | Partial\ | {} |

**Returns:** Promise\

___

#### addAll

▸ **addAll**\(`functions`: ReadonlyArray\<[Task](#task)\>, `options?`: EnqueueOptionsType): Promise\

*Defined in [src/index.ts:285](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L285)*

Same as `.add()`, but accepts an array of sync or async functions.

##### Type parameters:

Name |
------ |
`TaskResultsType` |

##### Parameters:

Name | Type |
------ | ------ |
`functions` | ReadonlyArray\<[Task](#task)\> |
`options?` | EnqueueOptionsType |

**Returns:** Promise\

A promise that resolves when all functions are resolved.

___

#### addListener

▸ **addListener**(`type`: string \| number, `listener`: Listener): this

*Inherited from [default](#classesdefaultmd).[addListener](#addlistener)*

*Defined in node_modules/@types/events/index.d.ts:17*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |
`listener` | Listener |

**Returns:** this

___

#### clear

▸ **clear**(): void

*Defined in [src/index.ts:323](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L323)*

Clear the queue.

**Returns:** void

___

#### emit

▸ **emit**(`type`: string \| number, ...`args`: any[]): boolean

*Inherited from [default](#classesdefaultmd).[emit](#emit)*

*Defined in node_modules/@types/events/index.d.ts:16*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |
`...args` | any[] |

**Returns:** boolean

___

#### eventNames

▸ **eventNames**(): Array\

*Inherited from [default](#classesdefaultmd).[eventNames](#eventnames)*

*Defined in node_modules/@types/events/index.d.ts:13*

**Returns:** Array\

___

#### getMaxListeners

▸ **getMaxListeners**(): number

*Inherited from [default](#classesdefaultmd).[getMaxListeners](#getmaxlisteners)*

*Defined in node_modules/@types/events/index.d.ts:15*

**Returns:** number

___

#### listenerCount

▸ **listenerCount**(`type`: string \| number): number

*Inherited from [default](#classesdefaultmd).[listenerCount](#listenercount)*

*Defined in node_modules/@types/events/index.d.ts:26*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |

**Returns:** number

___

#### listeners

▸ **listeners**(`type`: string \| number): Listener[]

*Inherited from [default](#classesdefaultmd).[listeners](#listeners)*

*Defined in node_modules/@types/events/index.d.ts:25*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |

**Returns:** Listener[]

___

#### off

▸ **off**(`type`: string \| number, `listener`: Listener): this

*Inherited from [default](#classesdefaultmd).[off](#off)*

*Defined in node_modules/@types/events/index.d.ts:23*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |
`listener` | Listener |

**Returns:** this

___

#### on

▸ **on**(`type`: string \| number, `listener`: Listener): this

*Inherited from [default](#classesdefaultmd).[on](#on)*

*Defined in node_modules/@types/events/index.d.ts:18*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |
`listener` | Listener |

**Returns:** this

___

#### onEmpty

▸ **onEmpty**(): Promise\

*Defined in [src/index.ts:332](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L332)*

Can be called multiple times. Useful if you for example add additional items at a later time.

**Returns:** Promise\

A promise that settles when the queue becomes empty.

___

#### onIdle

▸ **onIdle**(): Promise\

*Defined in [src/index.ts:353](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L353)*

The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.

**Returns:** Promise\

A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.

___

#### once

▸ **once**(`type`: string \| number, `listener`: Listener): this

*Inherited from [default](#classesdefaultmd).[once](#once)*

*Defined in node_modules/@types/events/index.d.ts:19*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |
`listener` | Listener |

**Returns:** this

___

#### pause

▸ **pause**(): void

*Defined in [src/index.ts:316](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L316)*

Put queue execution on hold.

**Returns:** void

___

#### prependListener

▸ **prependListener**(`type`: string \| number, `listener`: Listener): this

*Inherited from [default](#classesdefaultmd).[prependListener](#prependlistener)*

*Defined in node_modules/@types/events/index.d.ts:20*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |
`listener` | Listener |

**Returns:** this

___

#### prependOnceListener

▸ **prependOnceListener**(`type`: string \| number, `listener`: Listener): this

*Inherited from [default](#classesdefaultmd).[prependOnceListener](#prependoncelistener)*

*Defined in node_modules/@types/events/index.d.ts:21*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |
`listener` | Listener |

**Returns:** this

___

#### rawListeners

▸ **rawListeners**(`type`: string \| number): Listener[]

*Inherited from [default](#classesdefaultmd).[rawListeners](#rawlisteners)*

*Defined in node_modules/@types/events/index.d.ts:27*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |

**Returns:** Listener[]

___

#### removeAllListeners

▸ **removeAllListeners**(`type?`: string \| number): this

*Inherited from [default](#classesdefaultmd).[removeAllListeners](#removealllisteners)*

*Defined in node_modules/@types/events/index.d.ts:24*

##### Parameters:

Name | Type |
------ | ------ |
`type?` | string \| number |

**Returns:** this

___

#### removeListener

▸ **removeListener**(`type`: string \| number, `listener`: Listener): this

*Inherited from [default](#classesdefaultmd).[removeListener](#removelistener)*

*Defined in node_modules/@types/events/index.d.ts:22*

##### Parameters:

Name | Type |
------ | ------ |
`type` | string \| number |
`listener` | Listener |

**Returns:** this

___

#### setMaxListeners

▸ **setMaxListeners**(`n`: number): this

*Inherited from [default](#classesdefaultmd).[setMaxListeners](#setmaxlisteners)*

*Defined in node_modules/@types/events/index.d.ts:14*

##### Parameters:

Name | Type |
------ | ------ |
`n` | number |

**Returns:** this

___

#### sizeBy

▸ **sizeBy**(`options`: Readonly\>): number

*Defined in [src/index.ts:381](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L381)*

Size of the queue, filtered by the given options.

For example, this can be used to find the number of items remaining in the queue with a specific priority level.

##### Parameters:

Name | Type |
------ | ------ |
`options` | Readonly\> |

**Returns:** number

___

#### start

▸ **start**(): this

*Defined in [src/index.ts:301](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/index.ts#L301)*

Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)

**Returns:** this

___

#### listenerCount

▸ `Static`**listenerCount**(`emitter`: EventEmitter, `type`: string \| number): number

*Inherited from [default](#classesdefaultmd).[listenerCount](#listenercount)*

*Defined in node_modules/@types/events/index.d.ts:10*

##### Parameters:

Name | Type |
------ | ------ |
`emitter` | EventEmitter |
`type` | string \| number |

**Returns:** number

**[tail-queue](#readmemd)**

> [Globals](#globalsmd) / PriorityQueue

## Class: PriorityQueue

### Hierarchy

* **PriorityQueue**

### Implements

* [Queue](#interfacesqueuemd)\<[RunFunction](#runfunction), [PriorityQueueOptions](#interfacespriorityqueueoptionsmd)>

### Index

#### Accessors

* [size](#size)

#### Methods

* [dequeue](#dequeue)
* [enqueue](#enqueue)
* [filter](#filter)

### Accessors

#### size

• get **size**(): number

*Defined in [src/priority-queue.ts:60](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/priority-queue.ts#L60)*

**Returns:** number

### Methods

#### dequeue

▸ **dequeue**(): [RunFunction](#runfunction) \| undefined

*Defined in [src/priority-queue.ts:45](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/priority-queue.ts#L45)*

**Returns:** [RunFunction](#runfunction) \| undefined

___

#### enqueue

▸ **enqueue**(`run`: [RunFunction](#runfunction), `options?`: Partial\<[PriorityQueueOptions](#interfacespriorityqueueoptionsmd)>): void

*Defined in [src/priority-queue.ts:13](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/priority-queue.ts#L13)*

##### Parameters:

Name | Type |
------ | ------ |
`run` | [RunFunction](#runfunction) |
`options?` | Partial\<[PriorityQueueOptions](#interfacespriorityqueueoptionsmd)> |

**Returns:** void

___

#### filter

▸ **filter**(`options`: Readonly\>): [RunFunction](#runfunction)[]

*Defined in [src/priority-queue.ts:49](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/priority-queue.ts#L49)*

##### Parameters:

Name | Type |
------ | ------ |
`options` | Readonly\> |

**Returns:** [RunFunction](#runfunction)[]

**[tail-queue](#readmemd)**

> Globals

# tail-queue

## Index

### Classes

* [PriorityQueue](#classespriorityqueuemd)
* [default](#classesdefaultmd)

### Interfaces

* [DefaultAddOptions](#interfacesdefaultaddoptionsmd)
* [Options](#interfacesoptionsmd)
* [PriorityQueueOptions](#interfacespriorityqueueoptionsmd)
* [PriorityQueueRunOptions](#interfacespriorityqueuerunoptionsmd)
* [Queue](#interfacesqueuemd)
* [QueueAddOptions](#interfacesqueueaddoptionsmd)

### Type aliases

* [ResolveFunction](#resolvefunction)
* [RunFunction](#runfunction)
* [Task](#task)

### Functions

* [PromiseFinally](#promisefinally)
* [PromiseTimeout](#promisetimeout)
* [empty](#empty)
* [lowerBound](#lowerbound)

## Type aliases

### ResolveFunction

Ƭ **ResolveFunction**\: (value?: T \| PromiseLike\) => void

*Defined in [src/types.ts:9](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L9)*

#### Type parameters:

Name | Default |
------ | ------ |
`T` | void |

___

### RunFunction

Ƭ **RunFunction**: () => Promise\

*Defined in [src/types.ts:8](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L8)*

___

### Task

Ƭ **Task**\: () => PromiseLike\ \| () => TaskResultType

*Defined in [src/types.ts:10](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L10)*

#### Type parameters:

Name |
------ |
`TaskResultType` |

## Functions

### PromiseFinally

▸ **PromiseFinally**\(`promise`: T, `fallback`: any): Promise\

*Defined in [src/utils.ts:1](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/utils.ts#L1)*

#### Type parameters:

Name | Default |
------ | ------ |
`T` | any |

#### Parameters:

Name | Type |
------ | ------ |
`promise` | T |
`fallback` | any |

**Returns:** Promise\

___

### PromiseTimeout

▸ **PromiseTimeout**(`promise`: any, `milliseconds`: number, `fallback`: any): Promise\

*Defined in [src/utils.ts:18](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/utils.ts#L18)*

#### Parameters:

Name | Type |
------ | ------ |
`promise` | any |
`milliseconds` | number |
`fallback` | any |

**Returns:** Promise\

___

### empty

▸ `Const`**empty**(): void

*Defined in [src/utils.ts:83](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/utils.ts#L83)*

**Returns:** void

___

### lowerBound

▸ **lowerBound**\(`array`: readonly T[], `value`: T, `comparator`: (a: T,b: T) => number): number

*Defined in [src/utils.ts:60](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/utils.ts#L60)*

#### Type parameters:

Name |
------ |
`T` |

#### Parameters:

Name | Type |
------ | ------ |
`array` | readonly T[] |
`value` | T |
`comparator` | (a: T,b: T) => number |

**Returns:** number

# Interfaces

**[tail-queue](#readmemd)**

> [Globals](#globalsmd) / DefaultAddOptions

## Interface: DefaultAddOptions

### Hierarchy

* [QueueAddOptions](#interfacesqueueaddoptionsmd)

↳ **DefaultAddOptions**

### Indexable

▪ [key: string]: unknown

### Index

#### Properties

* [priority](#priority)

### Properties

#### priority

• `Optional` `Readonly` **priority**: undefined \| number

*Defined in [src/options.ts:72](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L72)*

Priority of operation. Operations with greater priority will be scheduled first.

**`default`** 0

**[tail-queue](#readmemd)**

> [Globals](#globalsmd) / Options

## Interface: Options\

### Type parameters

Name | Type |
------ | ------ |
`QueueType` | [Queue](#interfacesqueuemd)\<[RunFunction](#runfunction), QueueOptions> |
`QueueOptions` | [QueueAddOptions](#interfacesqueueaddoptionsmd) |

### Hierarchy

* **Options**

### Index

#### Properties

* [autoStart](#autostart)
* [carryoverConcurrencyCount](#carryoverconcurrencycount)
* [concurrency](#concurrency)
* [interval](#interval)
* [intervalCap](#intervalcap)
* [queueClass](#queueclass)
* [throwOnTimeout](#throwontimeout)
* [timeout](#timeout)

### Properties

#### autoStart

• `Optional` `Readonly` **autoStart**: undefined \| false \| true

*Defined in [src/options.ts:21](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L21)*

Whether queue tasks within concurrency limit, are auto-executed as soon as they're added.

**`default`** true

___

#### carryoverConcurrencyCount

• `Optional` `Readonly` **carryoverConcurrencyCount**: undefined \| false \| true

*Defined in [src/options.ts:51](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L51)*

Whether the task must finish in the given interval or will be carried over into the next interval count.

**`default`** false

___

#### concurrency

• `Optional` `Readonly` **concurrency**: undefined \| number

*Defined in [src/options.ts:14](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L14)*

Concurrency limit.

Minimum: `1`.

**`default`** Infinity

___

#### interval

• `Optional` `Readonly` **interval**: undefined \| number

*Defined in [src/options.ts:44](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L44)*

The length of time in milliseconds before the interval count resets. Must be finite.

Minimum: `0`.

**`default`** 0

___

#### intervalCap

• `Optional` `Readonly` **intervalCap**: undefined \| number

*Defined in [src/options.ts:35](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L35)*

The max number of runs in the given interval of time.

Minimum: `1`.

**`default`** Infinity

___

#### queueClass

• `Optional` `Readonly` **queueClass**: undefined \| {}

*Defined in [src/options.ts:26](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L26)*

Class with a `enqueue` and `dequeue` method, and a `size` getter. See the [Custom QueueClass](https://github.com/sindresorhus/p-queue#custom-queueclass) section.

___

#### throwOnTimeout

• `Optional` **throwOnTimeout**: undefined \| false \| true

*Defined in [src/options.ts:63](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L63)*

Whether or not a timeout is considered an exception.

**`default`** false

___

#### timeout

• `Optional` **timeout**: undefined \| number

*Defined in [src/options.ts:56](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/options.ts#L56)*

Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.

**[tail-queue](#readmemd)**

> [Globals](#globalsmd) / PriorityQueueOptions

## Interface: PriorityQueueOptions

### Hierarchy

* [QueueAddOptions](#interfacesqueueaddoptionsmd)

↳ **PriorityQueueOptions**

↳↳ [PriorityQueueRunOptions](#interfacespriorityqueuerunoptionsmd)

### Indexable

▪ [key: string]: unknown

### Index

#### Properties

* [priority](#priority)

### Properties

#### priority

• `Optional` **priority**: undefined \| number

*Defined in [src/types.ts:19](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L19)*

**[tail-queue](#readmemd)**

> [Globals](#globalsmd) / PriorityQueueRunOptions

## Interface: PriorityQueueRunOptions

### Hierarchy

* [PriorityQueueOptions](#interfacespriorityqueueoptionsmd)

↳ **PriorityQueueRunOptions**

### Indexable

▪ [key: string]: unknown

### Index

#### Properties

* [priority](#priority)
* [run](#run)

### Properties

#### priority

• `Optional` **priority**: undefined \| number

*Inherited from [PriorityQueueOptions](#interfacespriorityqueueoptionsmd).[priority](#priority)*

*Defined in [src/types.ts:19](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L19)*

___

#### run

• **run**: [RunFunction](#runfunction)

*Defined in [src/types.ts:23](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L23)*

**[tail-queue](#readmemd)**

> [Globals](#globalsmd) / Queue

## Interface: Queue\

### Type parameters

Name |
------ |
`Element` |
`Options` |

### Hierarchy

* **Queue**

### Implemented by

* [PriorityQueue](#classespriorityqueuemd)

### Index

#### Properties

* [dequeue](#dequeue)
* [enqueue](#enqueue)
* [filter](#filter)
* [size](#size)

### Properties

#### dequeue

• **dequeue**: () => Element \| undefined

*Defined in [src/types.ts:4](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L4)*

___

#### enqueue

• **enqueue**: (run: Element,options?: Partial\) => void

*Defined in [src/types.ts:5](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L5)*

___

#### filter

• **filter**: (options: Partial\) => Element[]

*Defined in [src/types.ts:3](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L3)*

___

#### size

• **size**: number

*Defined in [src/types.ts:2](https://github.com/idimetrix/tail-queue/blob/dcc7f42/src/types.ts#L2)*

**[tail-queue](#readmemd)**

> [Globals](#globalsmd) / QueueAddOptions

## Interface: QueueAddOptions

### Hierarchy

* **QueueAddOptions**

↳ [PriorityQueueOptions](#interfacespriorityqueueoptionsmd)

↳ [DefaultAddOptions](#interfacesdefaultaddoptionsmd)

### Indexable

▪ [key: string]: unknown