docs: add comments in queue implementation
authorJérôme Benoit <jerome.benoit@sap.com>
Thu, 4 May 2023 22:34:56 +0000 (00:34 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Thu, 4 May 2023 22:34:56 +0000 (00:34 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
.eslintrc.js
src/queue.ts

index 5845044780d7fdcee92dd5419fe725857bcf3ec4..d7004cc55ff8460161f54f766086dd78d7612eb8 100644 (file)
@@ -49,6 +49,7 @@ module.exports = defineConfig({
           'ctx',
           'deprecations',
           'dequeue',
+          'dequeued',
           'ecma',
           'enqueue',
           'enum',
index 35f9025e121bb861729df62a0064a3aa0176387c..a2a613814e86dcd5ab13b7122d8c26a7e647d610 100644 (file)
@@ -2,6 +2,8 @@
 
 /**
  * Queue
+ *
+ * @typeParam T - Type of queue items.
  */
 export class Queue<T> {
   private items: Record<number, T>
@@ -14,16 +16,34 @@ 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.
+   * @returns `undefined` if the queue is empty.
+   */
   public dequeue (): T | undefined {
     if (this.size <= 0) return undefined
     const item = this.items[this.head]