@monstermann/fn
Version:
A utility library for TypeScript.
30 lines (29 loc) • 571 B
JavaScript
//#region src/promise/internals/queue.ts
function createQueue() {
return {
head: void 0,
size: 0,
tail: void 0
};
}
function enqueue(queue, value) {
const node = {
next: void 0,
value
};
if (queue.head) {
queue.tail.next = node;
queue.tail = node;
} else queue.head = queue.tail = node;
queue.size++;
}
function dequeue(queue) {
const current = queue.head;
if (!current) return void 0;
queue.head = current.next;
if (!queue.head) queue.tail = void 0;
queue.size--;
return current.value;
}
//#endregion
export { createQueue, dequeue, enqueue };