chore: v2.4.12
[poolifier.git] / src / queue.ts
index 11766e4e9109dc4356be0a4b589ee5e5ed9b7bd3..ab606547b1f77fb08ab6b203e0053ad182b481e6 100644 (file)
@@ -1,5 +1,9 @@
+// Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
+
 /**
  * Queue
+ *
+ * @typeParam T - Type of queue items.
  */
 export class Queue<T> {
   private items: Record<number, T>
@@ -12,16 +16,33 @@ export class Queue<T> {
     this.tail = 0
   }
 
+  /**
+   * Get the size of the queue.
+   *
+   * @returns The size of the queue.
+   * @readonly
+   */
   public get size (): number {
     return this.tail - this.head
   }
 
+  /**
+   * Enqueue an item.
+   *
+   * @param item - Item to enqueue.
+   * @returns The new size of the queue.
+   */
   public enqueue (item: T): number {
     this.items[this.tail] = item
     this.tail++
     return this.size
   }
 
+  /**
+   * Dequeue an item.
+   *
+   * @returns The dequeued item or `undefined` if the queue is empty.
+   */
   public dequeue (): T | undefined {
     if (this.size <= 0) return undefined
     const item = this.items[this.head]