Class PriorityMutable<V>

Simple priority queue implementation. Higher numbers mean higher priority.

const pm = new PriorityMutable();

// Add items with a priority (higher numeric value = higher value)
pm.enqueueWithPriority(`hello`, 4);
pm.enqueueWithPriotity(`there`, 1);

Type Parameters

  • V

Hierarchy (view full)

Implements

Constructors

Properties

data: readonly Readonly<{
    item: V;
    priority: number;
}>[]
eq: IsEqual<Readonly<{
    item: V;
    priority: number;
}>>
options: QueueOpts<Readonly<{
    item: V;
    priority: number;
}>>

Accessors

  • get isDisposed(): boolean
  • Returns boolean

  • get isEmpty(): boolean
  • Returns true if queue is empty

    Returns boolean

  • get isFull(): boolean
  • Is queue full? Returns false if no capacity has been set

    Returns boolean

  • get length(): number
  • Number of items in queue

    Returns number

  • get peek(): undefined | V
  • Returns front of queue (oldest item), or undefined if queue is empty

    Returns undefined | V

Methods

  • Returns the item at given rank (0 being front of queue)

    Parameters

    • index: number

    Returns Readonly<{
        item: V;
        priority: number;
    }>

  • Parameters

    • item: V
    • priority: number
    • addIfMissing: boolean = false
    • Optionaleq: IsEqual<V>

    Returns void

  • Dequeues (removes oldest item / item at front of queue)

    Use peek to look at the item at front of queue without removing it.

    Returns undefined | Readonly<{
        item: V;
        priority: number;
    }>

    Item, or undefined if queue is empty

  • Enqueues (adds items to back of queue). If a capacity is set, not all items might be added.

    Parameters

    • Rest...toAdd: readonly Readonly<{
          item: V;
          priority: number;
      }>[]

    Returns number

    How many items were added

  • Adds an item with a given priority

    Parameters

    • item: V

      Item

    • priority: number

      Priority (higher numeric value means higher priority)

    Returns void

  • Fire event

    Type Parameters

    Parameters

    • type: K

      Type of event

    • args: QueueMutableEvents<Readonly<{
          item: V;
          priority: number;
      }>>[K]

      Arguments for event

    Returns void

  • Parameters

    • result: readonly Readonly<{
          item: V;
          priority: number;
      }>[]
    • attemptedToAdd: readonly Readonly<{
          item: V;
          priority: number;
      }>[]

    Returns void

  • Parameters

    • removed: readonly Readonly<{
          item: V;
          priority: number;
      }>[]
    • finalData: readonly Readonly<{
          item: V;
          priority: number;
      }>[]

    Returns void

  • Peeks at the item with highest priority without removing it. undefined if queue is empty.

    Returns undefined | V

  • Peeks at the item with the lowest priority without removing it. undefined if queue is empty.

    Returns undefined | V

  • Removes values that match predicate.

    Parameters

    • predicate: ((item: Readonly<{
          item: V;
          priority: number;
      }>) => boolean)
        • (item): boolean
        • Parameters

          • item: Readonly<{
                item: V;
                priority: number;
            }>

          Returns boolean

    Returns number

    Returns number of items removed.