UNPKG

foxts

Version:

Opinionated collection of common TypeScript utils by @SukkaW

2 lines (1 loc) 525 B
var e;e=Symbol.iterator;class t{constructor(){this.head=null,this.tail=null,this.$size=0,this.push=this.enqueue,this.shift=this.dequeue,this.clear()}enqueue(e){let t=[e,null];this.head?this.tail[1]=t:this.head=t,this.tail=t,this.$size++}dequeue(){let e=this.head;if(e)return this.head=this.head[1],this.$size--,e[0]}peek(){return this.head?.[0]}clear(){this.head=null,this.tail=null,this.$size=0}get size(){return this.$size}get length(){return this.$size}*[e](){let e=this.head;for(;e;)yield e[0],e=e[1]}}export{t as FIFO};