@lzptec/concurrency
Version:
A Lightweight concurrency manager
1 lines • 2.2 kB
Source Map (JSON)
{"version":3,"sources":["../src/base/queue.ts"],"names":["_elements","_offset","Queue","elements","__privateAdd","__privateSet","element","__privateGet","first"],"mappings":"63BAAAA,IAAAA,CAAAA,CAAAC,CAAaC,CAAAA,CAAAA,CAAN,KAAe,CAIlB,YAAYC,CAAgB,CAAA,CAH5BC,CAAA,CAAA,IAAA,CAAAJ,CACAI,CAAAA,CAAAA,CAAAA,CAAA,KAAAH,CAAU,CAAA,CAAA,CAAA,CAGNI,CAAA,CAAA,IAAA,CAAKL,CAAY,CAAA,KAAA,CAAM,OAAQG,CAAAA,CAAQ,CAAIA,CAAAA,CAAAA,CAAW,EAAC,EAC3D,CAEA,OAAA,CAAQG,EAAY,CAChB,OAAAC,CAAA,CAAA,IAAA,CAAKP,CAAU,CAAA,CAAA,IAAA,CAAKM,CAAO,CAAA,CACpB,IACX,CAEA,OAAU,EAAA,CACN,GAAI,IAAA,CAAK,SAAW,CAChB,CAAA,OAEJ,IAAME,CAAAA,CAAQD,CAAA,CAAA,IAAA,CAAKP,CAAUO,CAAAA,CAAAA,CAAAA,CAAA,IAAKN,CAAAA,CAAAA,CAAO,CAGzC,CAAA,OAFAI,CAAA,CAAA,IAAA,CAAKJ,EAALM,CAAA,CAAA,IAAA,CAAKN,CAAW,CAAA,CAAA,CAAA,CAAA,CAEZM,CAAA,CAAA,IAAA,CAAKN,GAAU,CAAIM,CAAAA,CAAAA,CAAA,IAAKP,CAAAA,CAAAA,CAAAA,CAAU,MAEtCK,GAAAA,CAAAA,CAAA,KAAKL,CAAYO,CAAAA,CAAAA,CAAA,IAAKP,CAAAA,CAAAA,CAAAA,CAAU,KAAMO,CAAAA,CAAAA,CAAA,IAAKN,CAAAA,CAAAA,CAAO,CAClDI,CAAAA,CAAAA,CAAAA,CAAA,IAAKJ,CAAAA,CAAAA,CAAU,CACRO,CAAAA,CAAAA,CAAAA,CACX,CAEA,KAAQ,EAAA,CACJH,CAAA,CAAA,IAAA,CAAKL,CAAY,CAAA,EACjBK,CAAAA,CAAAA,CAAAA,CAAA,IAAKJ,CAAAA,CAAAA,CAAU,CACnB,EAAA,CAEA,IAAI,MAAA,EAAS,CACT,OAAOM,CAAAA,CAAA,IAAKP,CAAAA,CAAAA,CAAAA,CAAU,MAASO,CAAAA,CAAAA,CAAA,IAAKN,CAAAA,CAAAA,CACxC,CACJ,EAlCID,CAAA,CAAA,IAAA,OAAA,CACAC,CAAA,CAAA,IAAA,OAAA","file":"chunk-ZFKFOLTS.cjs","sourcesContent":["export class Queue<T> {\n #elements: T[];\n #offset = 0;\n\n constructor(elements?: T[]) {\n this.#elements = Array.isArray(elements) ? elements : [];\n }\n\n enqueue(element: T) {\n this.#elements.push(element);\n return this;\n }\n\n dequeue() {\n if (this.length === 0)\n return undefined;\n\n const first = this.#elements[this.#offset];\n this.#offset += 1;\n\n if (this.#offset * 2 < this.#elements.length) return first;\n\n this.#elements = this.#elements.slice(this.#offset);\n this.#offset = 0;\n return first;\n }\n\n clear() {\n this.#elements = [];\n this.#offset = 0;\n }\n\n get length() {\n return this.#elements.length - this.#offset;\n }\n}\n"]}