You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

queue-cb

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

queue-cb - npm Package Compare versions

Comparing version
1.5.1
to
1.5.2
+1
-1
dist/esm/index.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/utils/queue-cb/src/index.ts"],"sourcesContent":["import LinkedArray from './LinkedArray.js';\n\nexport type DeferCallback = (error?: Error) => void;\nexport type DeferFunction = (calback: DeferCallback) => void;\nexport type AwaitCallback = (error?: Error) => void;\n\ninterface QueueState {\n parallelism: number;\n tasks: LinkedArray<DeferFunction>;\n runningCount: number;\n error: Error | null;\n awaitCalled: boolean;\n awaitCallback: AwaitCallback | null;\n}\n\nexport default class Queue {\n private _state: QueueState;\n\n constructor(parallelism: number = Infinity) {\n this._state = {\n parallelism,\n tasks: new LinkedArray(),\n runningCount: 0,\n error: null,\n awaitCallback: null,\n awaitCalled: false,\n };\n this._callAwait = this._callAwait.bind(this);\n this._callDefer = this._callDefer.bind(this);\n }\n\n private _callAwait() {\n if (this._state.awaitCalled || !this._state.awaitCallback) return;\n this._state.awaitCalled = true;\n return this._state.awaitCallback(this._state.error);\n }\n\n private _callDefer(err?: Error) {\n this._state.runningCount--;\n if (err && !this._state.error) this._state.error = err;\n if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait();\n if (!this._state.tasks.length) return;\n this._state.runningCount++;\n this._state.tasks.shift()(this._callDefer);\n }\n\n defer(defer: DeferFunction) {\n if (this._state.error) return;\n if (this._state.runningCount < this._state.parallelism) {\n this._state.runningCount++;\n defer(this._callDefer);\n } else this._state.tasks.push(defer);\n }\n\n await(callback: AwaitCallback) {\n if (this._state.awaitCallback) throw new Error(`Awaiting callback was added twice: ${callback}`);\n this._state.awaitCallback = callback;\n if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait();\n }\n}\n"],"names":["LinkedArray","Queue","_callAwait","_state","awaitCalled","awaitCallback","error","_callDefer","err","runningCount","tasks","length","shift","defer","parallelism","push","await","callback","Error","constructor","Infinity","bind"],"mappings":"AAAA,OAAOA,iBAAiB,mBAAmB;AAe5B,IAAA,AAAMC,QAAN,MAAMA;IAgBXC,aAAa;QACnB,IAAI,IAAI,CAACC,MAAM,CAACC,WAAW,IAAI,CAAC,IAAI,CAACD,MAAM,CAACE,aAAa,EAAE;QAC3D,IAAI,CAACF,MAAM,CAACC,WAAW,GAAG;QAC1B,OAAO,IAAI,CAACD,MAAM,CAACE,aAAa,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK;IACpD;IAEQC,WAAWC,GAAW,EAAE;QAC9B,IAAI,CAACL,MAAM,CAACM,YAAY;QACxB,IAAID,OAAO,CAAC,IAAI,CAACL,MAAM,CAACG,KAAK,EAAE,IAAI,CAACH,MAAM,CAACG,KAAK,GAAGE;QACnD,IAAI,IAAI,CAACL,MAAM,CAACG,KAAK,IAAI,CAAE,CAAA,IAAI,CAACH,MAAM,CAACO,KAAK,CAACC,MAAM,GAAG,IAAI,CAACR,MAAM,CAACM,YAAY,AAAD,GAAI,OAAO,IAAI,CAACP,UAAU;QACvG,IAAI,CAAC,IAAI,CAACC,MAAM,CAACO,KAAK,CAACC,MAAM,EAAE;QAC/B,IAAI,CAACR,MAAM,CAACM,YAAY;QACxB,IAAI,CAACN,MAAM,CAACO,KAAK,CAACE,KAAK,GAAG,IAAI,CAACL,UAAU;IAC3C;IAEAM,MAAMA,KAAoB,EAAE;QAC1B,IAAI,IAAI,CAACV,MAAM,CAACG,KAAK,EAAE;QACvB,IAAI,IAAI,CAACH,MAAM,CAACM,YAAY,GAAG,IAAI,CAACN,MAAM,CAACW,WAAW,EAAE;YACtD,IAAI,CAACX,MAAM,CAACM,YAAY;YACxBI,MAAM,IAAI,CAACN,UAAU;QACvB,OAAO,IAAI,CAACJ,MAAM,CAACO,KAAK,CAACK,IAAI,CAACF;IAChC;IAEAG,MAAMC,QAAuB,EAAE;QAC7B,IAAI,IAAI,CAACd,MAAM,CAACE,aAAa,EAAE,MAAM,IAAIa,MAAM,CAAC,mCAAmC,EAAED,UAAU;QAC/F,IAAI,CAACd,MAAM,CAACE,aAAa,GAAGY;QAC5B,IAAI,IAAI,CAACd,MAAM,CAACG,KAAK,IAAI,CAAE,CAAA,IAAI,CAACH,MAAM,CAACO,KAAK,CAACC,MAAM,GAAG,IAAI,CAACR,MAAM,CAACM,YAAY,AAAD,GAAI,OAAO,IAAI,CAACP,UAAU;IACzG;IAxCAiB,YAAYL,cAAsBM,QAAQ,CAAE;QAC1C,IAAI,CAACjB,MAAM,GAAG;YACZW;YACAJ,OAAO,IAAIV;YACXS,cAAc;YACdH,OAAO;YACPD,eAAe;YACfD,aAAa;QACf;QACA,IAAI,CAACF,UAAU,GAAG,IAAI,CAACA,UAAU,CAACmB,IAAI,CAAC,IAAI;QAC3C,IAAI,CAACd,UAAU,GAAG,IAAI,CAACA,UAAU,CAACc,IAAI,CAAC,IAAI;IAC7C;AA8BF;AA5CA,SAAqBpB,mBA4CpB"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/utils/queue-cb/src/index.ts"],"sourcesContent":["import LinkedArray from './LinkedArray.js';\n\nexport type DeferCallback = (error?: Error) => void;\nexport type DeferFunction = (calback: DeferCallback) => void;\nexport type AwaitCallback = (error?: Error) => void;\n\ninterface QueueState {\n parallelism: number;\n tasks: LinkedArray<DeferFunction>;\n runningCount: number;\n error: Error | null;\n awaitCalled: boolean;\n awaitCallback: AwaitCallback | null;\n}\n\nexport default class Queue {\n private _state: QueueState;\n\n constructor(parallelism: number = Infinity) {\n this._state = {\n parallelism,\n tasks: new LinkedArray(),\n runningCount: 0,\n error: null,\n awaitCallback: null,\n awaitCalled: false,\n };\n this._callAwait = this._callAwait.bind(this);\n this._callDefer = this._callDefer.bind(this);\n }\n\n private _callAwait() {\n if (this._state.awaitCalled || !this._state.awaitCallback) return;\n this._state.awaitCalled = true;\n return this._state.awaitCallback(this._state.error);\n }\n\n private _callDefer(err?: Error) {\n this._state.runningCount--;\n if (err && !this._state.error) this._state.error = err;\n if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait();\n if (!this._state.tasks.length) return;\n this._state.runningCount++;\n this._state.tasks.shift()(this._callDefer);\n }\n\n defer(defer: DeferFunction) {\n if (this._state.error) return;\n if (this._state.runningCount < this._state.parallelism) {\n this._state.runningCount++;\n defer(this._callDefer);\n } else this._state.tasks.push(defer);\n }\n\n await(callback: AwaitCallback) {\n if (this._state.awaitCallback) throw new Error(`Awaiting callback was added twice: ${callback}`);\n this._state.awaitCallback = callback;\n if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait();\n }\n}\n"],"names":["LinkedArray","Queue","_callAwait","_state","awaitCalled","awaitCallback","error","_callDefer","err","runningCount","tasks","length","shift","defer","parallelism","push","await","callback","Error","Infinity","bind"],"mappings":"AAAA,OAAOA,iBAAiB,mBAAmB;AAe5B,IAAA,AAAMC,QAAN,MAAMA;IAgBXC,aAAa;QACnB,IAAI,IAAI,CAACC,MAAM,CAACC,WAAW,IAAI,CAAC,IAAI,CAACD,MAAM,CAACE,aAAa,EAAE;QAC3D,IAAI,CAACF,MAAM,CAACC,WAAW,GAAG;QAC1B,OAAO,IAAI,CAACD,MAAM,CAACE,aAAa,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK;IACpD;IAEQC,WAAWC,GAAW,EAAE;QAC9B,IAAI,CAACL,MAAM,CAACM,YAAY;QACxB,IAAID,OAAO,CAAC,IAAI,CAACL,MAAM,CAACG,KAAK,EAAE,IAAI,CAACH,MAAM,CAACG,KAAK,GAAGE;QACnD,IAAI,IAAI,CAACL,MAAM,CAACG,KAAK,IAAI,CAAE,CAAA,IAAI,CAACH,MAAM,CAACO,KAAK,CAACC,MAAM,GAAG,IAAI,CAACR,MAAM,CAACM,YAAY,AAAD,GAAI,OAAO,IAAI,CAACP,UAAU;QACvG,IAAI,CAAC,IAAI,CAACC,MAAM,CAACO,KAAK,CAACC,MAAM,EAAE;QAC/B,IAAI,CAACR,MAAM,CAACM,YAAY;QACxB,IAAI,CAACN,MAAM,CAACO,KAAK,CAACE,KAAK,GAAG,IAAI,CAACL,UAAU;IAC3C;IAEAM,MAAMA,KAAoB,EAAE;QAC1B,IAAI,IAAI,CAACV,MAAM,CAACG,KAAK,EAAE;QACvB,IAAI,IAAI,CAACH,MAAM,CAACM,YAAY,GAAG,IAAI,CAACN,MAAM,CAACW,WAAW,EAAE;YACtD,IAAI,CAACX,MAAM,CAACM,YAAY;YACxBI,MAAM,IAAI,CAACN,UAAU;QACvB,OAAO,IAAI,CAACJ,MAAM,CAACO,KAAK,CAACK,IAAI,CAACF;IAChC;IAEAG,MAAMC,QAAuB,EAAE;QAC7B,IAAI,IAAI,CAACd,MAAM,CAACE,aAAa,EAAE,MAAM,IAAIa,MAAM,CAAC,mCAAmC,EAAED,UAAU;QAC/F,IAAI,CAACd,MAAM,CAACE,aAAa,GAAGY;QAC5B,IAAI,IAAI,CAACd,MAAM,CAACG,KAAK,IAAI,CAAE,CAAA,IAAI,CAACH,MAAM,CAACO,KAAK,CAACC,MAAM,GAAG,IAAI,CAACR,MAAM,CAACM,YAAY,AAAD,GAAI,OAAO,IAAI,CAACP,UAAU;IACzG;IAxCA,YAAYY,cAAsBK,QAAQ,CAAE;QAC1C,IAAI,CAAChB,MAAM,GAAG;YACZW;YACAJ,OAAO,IAAIV;YACXS,cAAc;YACdH,OAAO;YACPD,eAAe;YACfD,aAAa;QACf;QACA,IAAI,CAACF,UAAU,GAAG,IAAI,CAACA,UAAU,CAACkB,IAAI,CAAC,IAAI;QAC3C,IAAI,CAACb,UAAU,GAAG,IAAI,CAACA,UAAU,CAACa,IAAI,CAAC,IAAI;IAC7C;AA8BF;AA5CA,SAAqBnB,mBA4CpB"}

@@ -1,1 +0,1 @@

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/utils/queue-cb/src/LinkedArray.ts"],"sourcesContent":["// stripped down version of https://github.com/mafintosh/fifo\nclass Node<T> {\n prev: Node<T>;\n next: Node<T>;\n value: T;\n\n constructor(value: T) {\n this.prev = this.next = this;\n this.value = value;\n }\n\n link(next: Node<T>): Node<T> {\n this.next = next;\n next.prev = this;\n return next;\n }\n}\n\nexport default class LinkedArray<T> {\n node: Node<T> | null;\n length: number;\n\n constructor() {\n this.node = null;\n this.length = 0;\n }\n\n push(value: T): Node<T> {\n const node = new Node<T>(value);\n this.length++;\n if (!this.node) {\n this.node = node;\n return node;\n }\n this.node.prev.link(node);\n node.link(this.node);\n return node;\n }\n\n shift(): T | null {\n if (!this.node) throw new Error('Cannot shift: array empty');\n const node = this.node;\n this.length--;\n node.prev.link(node.next);\n if (node === this.node) this.node = node.next === node ? null : node.next;\n return node.link(node).value;\n }\n}\n"],"names":["Node","link","next","prev","constructor","value","LinkedArray","push","node","length","shift","Error"],"mappings":"AAAA,6DAA6D;AAC7D,IAAA,AAAMA,OAAN,MAAMA;IAUJC,KAAKC,IAAa,EAAW;QAC3B,IAAI,CAACA,IAAI,GAAGA;QACZA,KAAKC,IAAI,GAAG,IAAI;QAChB,OAAOD;IACT;IATAE,YAAYC,KAAQ,CAAE;QACpB,IAAI,CAACF,IAAI,GAAG,IAAI,CAACD,IAAI,GAAG,IAAI;QAC5B,IAAI,CAACG,KAAK,GAAGA;IACf;AAOF;AAEe,IAAA,AAAMC,cAAN,MAAMA;IASnBC,KAAKF,KAAQ,EAAW;QACtB,MAAMG,OAAO,IAAIR,KAAQK;QACzB,IAAI,CAACI,MAAM;QACX,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;YACd,IAAI,CAACA,IAAI,GAAGA;YACZ,OAAOA;QACT;QACA,IAAI,CAACA,IAAI,CAACL,IAAI,CAACF,IAAI,CAACO;QACpBA,KAAKP,IAAI,CAAC,IAAI,CAACO,IAAI;QACnB,OAAOA;IACT;IAEAE,QAAkB;QAChB,IAAI,CAAC,IAAI,CAACF,IAAI,EAAE,MAAM,IAAIG,MAAM;QAChC,MAAMH,OAAO,IAAI,CAACA,IAAI;QACtB,IAAI,CAACC,MAAM;QACXD,KAAKL,IAAI,CAACF,IAAI,CAACO,KAAKN,IAAI;QACxB,IAAIM,SAAS,IAAI,CAACA,IAAI,EAAE,IAAI,CAACA,IAAI,GAAGA,KAAKN,IAAI,KAAKM,OAAO,OAAOA,KAAKN,IAAI;QACzE,OAAOM,KAAKP,IAAI,CAACO,MAAMH,KAAK;IAC9B;IAxBAD,aAAc;QACZ,IAAI,CAACI,IAAI,GAAG;QACZ,IAAI,CAACC,MAAM,GAAG;IAChB;AAsBF;AA7BA,SAAqBH,yBA6BpB"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/utils/queue-cb/src/LinkedArray.ts"],"sourcesContent":["// stripped down version of https://github.com/mafintosh/fifo\nclass Node<T> {\n prev: Node<T>;\n next: Node<T>;\n value: T;\n\n constructor(value: T) {\n this.prev = this.next = this;\n this.value = value;\n }\n\n link(next: Node<T>): Node<T> {\n this.next = next;\n next.prev = this;\n return next;\n }\n}\n\nexport default class LinkedArray<T> {\n node: Node<T> | null;\n length: number;\n\n constructor() {\n this.node = null;\n this.length = 0;\n }\n\n push(value: T): Node<T> {\n const node = new Node<T>(value);\n this.length++;\n if (!this.node) {\n this.node = node;\n return node;\n }\n this.node.prev.link(node);\n node.link(this.node);\n return node;\n }\n\n shift(): T | null {\n if (!this.node) throw new Error('Cannot shift: array empty');\n const node = this.node;\n this.length--;\n node.prev.link(node.next);\n if (node === this.node) this.node = node.next === node ? null : node.next;\n return node.link(node).value;\n }\n}\n"],"names":["Node","link","next","prev","value","LinkedArray","push","node","length","shift","Error"],"mappings":"AAAA,6DAA6D;AAC7D,IAAA,AAAMA,OAAN,MAAMA;IAUJC,KAAKC,IAAa,EAAW;QAC3B,IAAI,CAACA,IAAI,GAAGA;QACZA,KAAKC,IAAI,GAAG,IAAI;QAChB,OAAOD;IACT;IATA,YAAYE,KAAQ,CAAE;QACpB,IAAI,CAACD,IAAI,GAAG,IAAI,CAACD,IAAI,GAAG,IAAI;QAC5B,IAAI,CAACE,KAAK,GAAGA;IACf;AAOF;AAEe,IAAA,AAAMC,cAAN,MAAMA;IASnBC,KAAKF,KAAQ,EAAW;QACtB,MAAMG,OAAO,IAAIP,KAAQI;QACzB,IAAI,CAACI,MAAM;QACX,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;YACd,IAAI,CAACA,IAAI,GAAGA;YACZ,OAAOA;QACT;QACA,IAAI,CAACA,IAAI,CAACJ,IAAI,CAACF,IAAI,CAACM;QACpBA,KAAKN,IAAI,CAAC,IAAI,CAACM,IAAI;QACnB,OAAOA;IACT;IAEAE,QAAkB;QAChB,IAAI,CAAC,IAAI,CAACF,IAAI,EAAE,MAAM,IAAIG,MAAM;QAChC,MAAMH,OAAO,IAAI,CAACA,IAAI;QACtB,IAAI,CAACC,MAAM;QACXD,KAAKJ,IAAI,CAACF,IAAI,CAACM,KAAKL,IAAI;QACxB,IAAIK,SAAS,IAAI,CAACA,IAAI,EAAE,IAAI,CAACA,IAAI,GAAGA,KAAKL,IAAI,KAAKK,OAAO,OAAOA,KAAKL,IAAI;QACzE,OAAOK,KAAKN,IAAI,CAACM,MAAMH,KAAK;IAC9B;IAxBA,aAAc;QACZ,IAAI,CAACG,IAAI,GAAG;QACZ,IAAI,CAACC,MAAM,GAAG;IAChB;AAsBF;AA7BA,SAAqBH,yBA6BpB"}
{
"name": "queue-cb",
"version": "1.5.1",
"version": "1.5.2",
"description": "A scalable queue for parallel callbacks",

@@ -5,0 +5,0 @@ "keywords": [