| export type DeferCallback = (error?: Error) => void; | ||
| export type DeferFunction = (calback: DeferCallback) => void; | ||
| export type AwaitCallback = (error?: Error) => void; | ||
| export default class Queue { | ||
| private _state; | ||
| constructor(parallelism?: number); | ||
| private _callAwait; | ||
| private _callDefer; | ||
| defer(defer: DeferFunction): void; | ||
| await(callback: AwaitCallback): void; | ||
| } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| Object.defineProperty(exports, "default", { | ||
| enumerable: true, | ||
| get: function() { | ||
| return Queue; | ||
| } | ||
| }); | ||
| var _LinkedArray = /*#__PURE__*/ _interop_require_default(require("./LinkedArray.js")); | ||
| function _class_call_check(instance, Constructor) { | ||
| if (!(instance instanceof Constructor)) { | ||
| throw new TypeError("Cannot call a class as a function"); | ||
| } | ||
| } | ||
| function _interop_require_default(obj) { | ||
| return obj && obj.__esModule ? obj : { | ||
| default: obj | ||
| }; | ||
| } | ||
| var Queue = /*#__PURE__*/ function() { | ||
| "use strict"; | ||
| function Queue() { | ||
| var parallelism = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Infinity; | ||
| _class_call_check(this, Queue); | ||
| this._state = { | ||
| parallelism: parallelism, | ||
| tasks: new _LinkedArray.default(), | ||
| runningCount: 0, | ||
| error: null, | ||
| awaitCallback: null, | ||
| awaitCalled: false | ||
| }; | ||
| this._callAwait = this._callAwait.bind(this); | ||
| this._callDefer = this._callDefer.bind(this); | ||
| } | ||
| var _proto = Queue.prototype; | ||
| _proto._callAwait = function _callAwait() { | ||
| if (this._state.awaitCalled || !this._state.awaitCallback) return; | ||
| this._state.awaitCalled = true; | ||
| return this._state.awaitCallback(this._state.error); | ||
| }; | ||
| _proto._callDefer = function _callDefer(err) { | ||
| this._state.runningCount--; | ||
| if (err && !this._state.error) this._state.error = err; | ||
| if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait(); | ||
| if (!this._state.tasks.length) return; | ||
| this._state.runningCount++; | ||
| this._state.tasks.shift()(this._callDefer); | ||
| }; | ||
| _proto.defer = function defer(defer) { | ||
| if (this._state.error) return; | ||
| if (this._state.runningCount < this._state.parallelism) { | ||
| this._state.runningCount++; | ||
| defer(this._callDefer); | ||
| } else this._state.tasks.push(defer); | ||
| }; | ||
| _proto.await = function _await(callback) { | ||
| if (this._state.awaitCallback) throw new Error("Awaiting callback was added twice: ".concat(callback)); | ||
| this._state.awaitCallback = callback; | ||
| if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait(); | ||
| }; | ||
| return Queue; | ||
| }(); | ||
| /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; } |
| {"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;\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":["Queue","parallelism","Infinity","_state","tasks","LinkedArray","runningCount","error","awaitCallback","awaitCalled","_callAwait","bind","_callDefer","err","length","shift","defer","push","await","callback","Error"],"mappings":";;;;;;;eAeqBA;;;kEAfG;;;;;;;;;;;AAeT,IAAA,AAAMA,sBAAN;;aAAMA;YAGPC,cAAAA,iEAAsBC;gCAHfF;QAIjB,IAAI,CAACG,MAAM,GAAG;YACZF,aAAAA;YACAG,OAAO,IAAIC,oBAAW;YACtBC,cAAc;YACdC,OAAO;YACPC,eAAe;YACfC,aAAa;QACf;QACA,IAAI,CAACC,UAAU,GAAG,IAAI,CAACA,UAAU,CAACC,IAAI,CAAC,IAAI;QAC3C,IAAI,CAACC,UAAU,GAAG,IAAI,CAACA,UAAU,CAACD,IAAI,CAAC,IAAI;;iBAb1BX;IAgBnB,OAAQU,UAIP,GAJD,SAAQA;QACN,IAAI,IAAI,CAACP,MAAM,CAACM,WAAW,IAAI,CAAC,IAAI,CAACN,MAAM,CAACK,aAAa,EAAE;QAC3D,IAAI,CAACL,MAAM,CAACM,WAAW,GAAG;QAC1B,OAAO,IAAI,CAACN,MAAM,CAACK,aAAa,CAAC,IAAI,CAACL,MAAM,CAACI,KAAK;IACpD;IAEA,OAAQK,UAOP,GAPD,SAAQA,WAAWC,GAAW;QAC5B,IAAI,CAACV,MAAM,CAACG,YAAY;QACxB,IAAIO,OAAO,CAAC,IAAI,CAACV,MAAM,CAACI,KAAK,EAAE,IAAI,CAACJ,MAAM,CAACI,KAAK,GAAGM;QACnD,IAAI,IAAI,CAACV,MAAM,CAACI,KAAK,IAAI,CAAE,CAAA,IAAI,CAACJ,MAAM,CAACC,KAAK,CAACU,MAAM,GAAG,IAAI,CAACX,MAAM,CAACG,YAAY,AAAD,GAAI,OAAO,IAAI,CAACI,UAAU;QACvG,IAAI,CAAC,IAAI,CAACP,MAAM,CAACC,KAAK,CAACU,MAAM,EAAE;QAC/B,IAAI,CAACX,MAAM,CAACG,YAAY;QACxB,IAAI,CAACH,MAAM,CAACC,KAAK,CAACW,KAAK,GAAG,IAAI,CAACH,UAAU;IAC3C;IAEAI,OAAAA,KAMC,GANDA,SAAAA,MAAMA,KAAoB;QACxB,IAAI,IAAI,CAACb,MAAM,CAACI,KAAK,EAAE;QACvB,IAAI,IAAI,CAACJ,MAAM,CAACG,YAAY,GAAG,IAAI,CAACH,MAAM,CAACF,WAAW,EAAE;YACtD,IAAI,CAACE,MAAM,CAACG,YAAY;YACxBU,MAAM,IAAI,CAACJ,UAAU;QACvB,OAAO,IAAI,CAACT,MAAM,CAACC,KAAK,CAACa,IAAI,CAACD;IAChC;IAEAE,OAAAA,KAIC,GAJDA,SAAAA,OAAMC,QAAuB;QAC3B,IAAI,IAAI,CAAChB,MAAM,CAACK,aAAa,EAAE,MAAM,IAAIY,MAAM,AAAC,sCAA8C,OAATD;QACrF,IAAI,CAAChB,MAAM,CAACK,aAAa,GAAGW;QAC5B,IAAI,IAAI,CAAChB,MAAM,CAACI,KAAK,IAAI,CAAE,CAAA,IAAI,CAACJ,MAAM,CAACC,KAAK,CAACU,MAAM,GAAG,IAAI,CAACX,MAAM,CAACG,YAAY,AAAD,GAAI,OAAO,IAAI,CAACI,UAAU;IACzG;WA3CmBV"} |
| declare class Node { | ||
| prev: this; | ||
| next: this; | ||
| value: unknown; | ||
| constructor(val: any); | ||
| link(next: any): any; | ||
| } | ||
| export default class LinkedArray { | ||
| node: Node | null; | ||
| length: number; | ||
| constructor(); | ||
| push(value: any): Node; | ||
| shift(): any; | ||
| } | ||
| export {}; |
| // stripped down version of https://github.com/mafintosh/fifo | ||
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| Object.defineProperty(exports, "default", { | ||
| enumerable: true, | ||
| get: function() { | ||
| return LinkedArray; | ||
| } | ||
| }); | ||
| function _class_call_check(instance, Constructor) { | ||
| if (!(instance instanceof Constructor)) { | ||
| throw new TypeError("Cannot call a class as a function"); | ||
| } | ||
| } | ||
| var Node = /*#__PURE__*/ function() { | ||
| "use strict"; | ||
| function Node(val) { | ||
| _class_call_check(this, Node); | ||
| this.prev = this.next = this; | ||
| this.value = val; | ||
| } | ||
| var _proto = Node.prototype; | ||
| _proto.link = function link(next) { | ||
| this.next = next; | ||
| next.prev = this; | ||
| return next; | ||
| }; | ||
| return Node; | ||
| }(); | ||
| var LinkedArray = /*#__PURE__*/ function() { | ||
| "use strict"; | ||
| function LinkedArray() { | ||
| _class_call_check(this, LinkedArray); | ||
| this.node = null; | ||
| this.length = 0; | ||
| } | ||
| var _proto = LinkedArray.prototype; | ||
| _proto.push = function push(value) { | ||
| var node = new Node(value); | ||
| this.length++; | ||
| if (!this.node) { | ||
| this.node = node; | ||
| return node; | ||
| } | ||
| this.node.prev.link(node); | ||
| node.link(this.node); | ||
| return node; | ||
| }; | ||
| _proto.shift = function shift() { | ||
| if (!this.node) throw new Error('Cannot shift: array empty'); | ||
| var node = this.node; | ||
| this.length--; | ||
| node.prev.link(node.next); | ||
| if (node === this.node) this.node = node.next === node ? null : node.next; | ||
| return node.link(node).value; | ||
| }; | ||
| return LinkedArray; | ||
| }(); | ||
| /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; } |
| {"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 {\n prev: this;\n next: this;\n value: unknown;\n\n constructor(val) {\n this.prev = this.next = this;\n this.value = val;\n }\n\n link(next) {\n this.next = next;\n next.prev = this;\n return next;\n }\n}\n\nexport default class LinkedArray {\n node: Node | null;\n length: number;\n\n constructor() {\n this.node = null;\n this.length = 0;\n }\n\n push(value) {\n const node = new Node(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() {\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":["LinkedArray","Node","val","prev","next","value","link","node","length","push","shift","Error"],"mappings":"AAAA,6DAA6D;;;;;;;;eAkBxCA;;;;;;;;AAjBrB,IAAA,AAAMC,qBAAN;;aAAMA,KAKQC,GAAG;gCALXD;QAMF,IAAI,CAACE,IAAI,GAAG,IAAI,CAACC,IAAI,GAAG,IAAI;QAC5B,IAAI,CAACC,KAAK,GAAGH;;iBAPXD;IAUJK,OAAAA,IAIC,GAJDA,SAAAA,KAAKF,IAAI;QACP,IAAI,CAACA,IAAI,GAAGA;QACZA,KAAKD,IAAI,GAAG,IAAI;QAChB,OAAOC;IACT;WAdIH;;AAiBS,IAAA,AAAMD,4BAAN;;aAAMA;gCAAAA;QAKjB,IAAI,CAACO,IAAI,GAAG;QACZ,IAAI,CAACC,MAAM,GAAG;;iBANGR;IASnBS,OAAAA,IAUC,GAVDA,SAAAA,KAAKJ,KAAK;QACR,IAAME,OAAO,IAAIN,KAAKI;QACtB,IAAI,CAACG,MAAM;QACX,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;YACd,IAAI,CAACA,IAAI,GAAGA;YACZ,OAAOA;QACT;QACA,IAAI,CAACA,IAAI,CAACJ,IAAI,CAACG,IAAI,CAACC;QACpBA,KAAKD,IAAI,CAAC,IAAI,CAACC,IAAI;QACnB,OAAOA;IACT;IAEAG,OAAAA,KAOC,GAPDA,SAAAA;QACE,IAAI,CAAC,IAAI,CAACH,IAAI,EAAE,MAAM,IAAII,MAAM;QAChC,IAAMJ,OAAO,IAAI,CAACA,IAAI;QACtB,IAAI,CAACC,MAAM;QACXD,KAAKJ,IAAI,CAACG,IAAI,CAACC,KAAKH,IAAI;QACxB,IAAIG,SAAS,IAAI,CAACA,IAAI,EAAE,IAAI,CAACA,IAAI,GAAGA,KAAKH,IAAI,KAAKG,OAAO,OAAOA,KAAKH,IAAI;QACzE,OAAOG,KAAKD,IAAI,CAACC,MAAMF,KAAK;IAC9B;WA5BmBL"} |
| { "type": "commonjs" } |
| export type DeferCallback = (error?: Error) => void; | ||
| export type DeferFunction = (calback: DeferCallback) => void; | ||
| export type AwaitCallback = (error?: Error) => void; | ||
| export default class Queue { | ||
| private _state; | ||
| constructor(parallelism?: number); | ||
| private _callAwait; | ||
| private _callDefer; | ||
| defer(defer: DeferFunction): void; | ||
| await(callback: AwaitCallback): void; | ||
| } |
| import LinkedArray from './LinkedArray.js'; | ||
| let Queue = class Queue { | ||
| _callAwait() { | ||
| if (this._state.awaitCalled || !this._state.awaitCallback) return; | ||
| this._state.awaitCalled = true; | ||
| return this._state.awaitCallback(this._state.error); | ||
| } | ||
| _callDefer(err) { | ||
| this._state.runningCount--; | ||
| if (err && !this._state.error) this._state.error = err; | ||
| if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait(); | ||
| if (!this._state.tasks.length) return; | ||
| this._state.runningCount++; | ||
| this._state.tasks.shift()(this._callDefer); | ||
| } | ||
| defer(defer) { | ||
| if (this._state.error) return; | ||
| if (this._state.runningCount < this._state.parallelism) { | ||
| this._state.runningCount++; | ||
| defer(this._callDefer); | ||
| } else this._state.tasks.push(defer); | ||
| } | ||
| await(callback) { | ||
| if (this._state.awaitCallback) throw new Error(`Awaiting callback was added twice: ${callback}`); | ||
| this._state.awaitCallback = callback; | ||
| if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait(); | ||
| } | ||
| constructor(parallelism = Infinity){ | ||
| this._state = { | ||
| parallelism, | ||
| tasks: new LinkedArray(), | ||
| runningCount: 0, | ||
| error: null, | ||
| awaitCallback: null, | ||
| awaitCalled: false | ||
| }; | ||
| this._callAwait = this._callAwait.bind(this); | ||
| this._callDefer = this._callDefer.bind(this); | ||
| } | ||
| }; | ||
| export { Queue as default }; |
| {"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;\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"} |
| declare class Node { | ||
| prev: this; | ||
| next: this; | ||
| value: unknown; | ||
| constructor(val: any); | ||
| link(next: any): any; | ||
| } | ||
| export default class LinkedArray { | ||
| node: Node | null; | ||
| length: number; | ||
| constructor(); | ||
| push(value: any): Node; | ||
| shift(): any; | ||
| } | ||
| export {}; |
| // stripped down version of https://github.com/mafintosh/fifo | ||
| let Node = class Node { | ||
| link(next) { | ||
| this.next = next; | ||
| next.prev = this; | ||
| return next; | ||
| } | ||
| constructor(val){ | ||
| this.prev = this.next = this; | ||
| this.value = val; | ||
| } | ||
| }; | ||
| let LinkedArray = class LinkedArray { | ||
| push(value) { | ||
| const node = new Node(value); | ||
| this.length++; | ||
| if (!this.node) { | ||
| this.node = node; | ||
| return node; | ||
| } | ||
| this.node.prev.link(node); | ||
| node.link(this.node); | ||
| return node; | ||
| } | ||
| shift() { | ||
| if (!this.node) throw new Error('Cannot shift: array empty'); | ||
| const node = this.node; | ||
| this.length--; | ||
| node.prev.link(node.next); | ||
| if (node === this.node) this.node = node.next === node ? null : node.next; | ||
| return node.link(node).value; | ||
| } | ||
| constructor(){ | ||
| this.node = null; | ||
| this.length = 0; | ||
| } | ||
| }; | ||
| export { LinkedArray as default }; |
| {"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 {\n prev: this;\n next: this;\n value: unknown;\n\n constructor(val) {\n this.prev = this.next = this;\n this.value = val;\n }\n\n link(next) {\n this.next = next;\n next.prev = this;\n return next;\n }\n}\n\nexport default class LinkedArray {\n node: Node | null;\n length: number;\n\n constructor() {\n this.node = null;\n this.length = 0;\n }\n\n push(value) {\n const node = new Node(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() {\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","val","value","LinkedArray","push","node","length","shift","Error"],"mappings":"AAAA,6DAA6D;AAC7D,IAAA,AAAMA,OAAN,MAAMA;IAUJC,KAAKC,IAAI,EAAE;QACT,IAAI,CAACA,IAAI,GAAGA;QACZA,KAAKC,IAAI,GAAG,IAAI;QAChB,OAAOD;IACT;IATAE,YAAYC,GAAG,CAAE;QACf,IAAI,CAACF,IAAI,GAAG,IAAI,CAACD,IAAI,GAAG,IAAI;QAC5B,IAAI,CAACI,KAAK,GAAGD;IACf;AAOF;AAEe,IAAA,AAAME,cAAN,MAAMA;IASnBC,KAAKF,KAAK,EAAE;QACV,MAAMG,OAAO,IAAIT,KAAKM;QACtB,IAAI,CAACI,MAAM;QACX,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;YACd,IAAI,CAACA,IAAI,GAAGA;YACZ,OAAOA;QACT;QACA,IAAI,CAACA,IAAI,CAACN,IAAI,CAACF,IAAI,CAACQ;QACpBA,KAAKR,IAAI,CAAC,IAAI,CAACQ,IAAI;QACnB,OAAOA;IACT;IAEAE,QAAQ;QACN,IAAI,CAAC,IAAI,CAACF,IAAI,EAAE,MAAM,IAAIG,MAAM;QAChC,MAAMH,OAAO,IAAI,CAACA,IAAI;QACtB,IAAI,CAACC,MAAM;QACXD,KAAKN,IAAI,CAACF,IAAI,CAACQ,KAAKP,IAAI;QACxB,IAAIO,SAAS,IAAI,CAACA,IAAI,EAAE,IAAI,CAACA,IAAI,GAAGA,KAAKP,IAAI,KAAKO,OAAO,OAAOA,KAAKP,IAAI;QACzE,OAAOO,KAAKR,IAAI,CAACQ,MAAMH,KAAK;IAC9B;IAxBAF,aAAc;QACZ,IAAI,CAACK,IAAI,GAAG;QACZ,IAAI,CAACC,MAAM,GAAG;IAChB;AAsBF;AA7BA,SAAqBH,yBA6BpB"} |
| { "type": "module" } |
+4
-4
| { | ||
| "name": "queue-cb", | ||
| "version": "1.4.17", | ||
| "version": "1.5.0", | ||
| "description": "A scalable queue for parallel callbacks", | ||
@@ -21,8 +21,8 @@ "keywords": [ | ||
| ".": { | ||
| "import": "./dist/esm/index.mjs", | ||
| "require": "./dist/cjs/index.cjs" | ||
| "import": "./dist/esm/index.js", | ||
| "require": "./dist/cjs/index.js" | ||
| }, | ||
| "./package.json": "./package.json" | ||
| }, | ||
| "main": "dist/cjs/index.cjs", | ||
| "main": "dist/cjs/index.js", | ||
| "types": "dist/cjs/index.d.cts", | ||
@@ -29,0 +29,0 @@ "files": [ |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| Object.defineProperty(exports, "default", { | ||
| enumerable: true, | ||
| get: function() { | ||
| return Queue; | ||
| } | ||
| }); | ||
| var _LinkedArray = /*#__PURE__*/ _interop_require_default(require("./LinkedArray.cjs")); | ||
| function _class_call_check(instance, Constructor) { | ||
| if (!(instance instanceof Constructor)) { | ||
| throw new TypeError("Cannot call a class as a function"); | ||
| } | ||
| } | ||
| function _interop_require_default(obj) { | ||
| return obj && obj.__esModule ? obj : { | ||
| default: obj | ||
| }; | ||
| } | ||
| var Queue = /*#__PURE__*/ function() { | ||
| "use strict"; | ||
| function Queue() { | ||
| var parallelism = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Infinity; | ||
| _class_call_check(this, Queue); | ||
| this._state = { | ||
| parallelism: parallelism, | ||
| tasks: new _LinkedArray.default(), | ||
| runningCount: 0, | ||
| error: null, | ||
| awaitCallback: null, | ||
| awaitCalled: false | ||
| }; | ||
| this._callAwait = this._callAwait.bind(this); | ||
| this._callDefer = this._callDefer.bind(this); | ||
| } | ||
| var _proto = Queue.prototype; | ||
| _proto._callAwait = function _callAwait() { | ||
| if (this._state.awaitCalled || !this._state.awaitCallback) return; | ||
| this._state.awaitCalled = true; | ||
| return this._state.awaitCallback(this._state.error); | ||
| }; | ||
| _proto._callDefer = function _callDefer(err) { | ||
| this._state.runningCount--; | ||
| if (err && !this._state.error) this._state.error = err; | ||
| if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait(); | ||
| if (!this._state.tasks.length) return; | ||
| this._state.runningCount++; | ||
| this._state.tasks.shift()(this._callDefer); | ||
| }; | ||
| _proto.defer = function defer(defer) { | ||
| if (this._state.error) return; | ||
| if (this._state.runningCount < this._state.parallelism) { | ||
| this._state.runningCount++; | ||
| defer(this._callDefer); | ||
| } else this._state.tasks.push(defer); | ||
| }; | ||
| _proto.await = function _await(callback) { | ||
| if (this._state.awaitCallback) throw new Error("Awaiting callback was added twice: ".concat(callback)); | ||
| this._state.awaitCallback = callback; | ||
| if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait(); | ||
| }; | ||
| return Queue; | ||
| }(); | ||
| /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; } |
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/utils/queue-cb/src/index.ts"],"sourcesContent":["import LinkedArray from './LinkedArray';\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;\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":["Queue","parallelism","Infinity","_state","tasks","LinkedArray","runningCount","error","awaitCallback","awaitCalled","_callAwait","bind","_callDefer","err","length","shift","defer","push","await","callback","Error"],"mappings":";;;;;;;eAeqBA;;;kEAfG;;;;;;;;;;;AAeT,IAAA,AAAMA,sBAAN;;aAAMA;YAGPC,cAAAA,iEAAsBC;gCAHfF;QAIjB,IAAI,CAACG,MAAM,GAAG;YACZF,aAAAA;YACAG,OAAO,IAAIC,oBAAW;YACtBC,cAAc;YACdC,OAAO;YACPC,eAAe;YACfC,aAAa;QACf;QACA,IAAI,CAACC,UAAU,GAAG,IAAI,CAACA,UAAU,CAACC,IAAI,CAAC,IAAI;QAC3C,IAAI,CAACC,UAAU,GAAG,IAAI,CAACA,UAAU,CAACD,IAAI,CAAC,IAAI;;iBAb1BX;IAgBnB,OAAQU,UAIP,GAJD,SAAQA;QACN,IAAI,IAAI,CAACP,MAAM,CAACM,WAAW,IAAI,CAAC,IAAI,CAACN,MAAM,CAACK,aAAa,EAAE;QAC3D,IAAI,CAACL,MAAM,CAACM,WAAW,GAAG;QAC1B,OAAO,IAAI,CAACN,MAAM,CAACK,aAAa,CAAC,IAAI,CAACL,MAAM,CAACI,KAAK;IACpD;IAEA,OAAQK,UAOP,GAPD,SAAQA,WAAWC,GAAW;QAC5B,IAAI,CAACV,MAAM,CAACG,YAAY;QACxB,IAAIO,OAAO,CAAC,IAAI,CAACV,MAAM,CAACI,KAAK,EAAE,IAAI,CAACJ,MAAM,CAACI,KAAK,GAAGM;QACnD,IAAI,IAAI,CAACV,MAAM,CAACI,KAAK,IAAI,CAAE,CAAA,IAAI,CAACJ,MAAM,CAACC,KAAK,CAACU,MAAM,GAAG,IAAI,CAACX,MAAM,CAACG,YAAY,AAAD,GAAI,OAAO,IAAI,CAACI,UAAU;QACvG,IAAI,CAAC,IAAI,CAACP,MAAM,CAACC,KAAK,CAACU,MAAM,EAAE;QAC/B,IAAI,CAACX,MAAM,CAACG,YAAY;QACxB,IAAI,CAACH,MAAM,CAACC,KAAK,CAACW,KAAK,GAAG,IAAI,CAACH,UAAU;IAC3C;IAEAI,OAAAA,KAMC,GANDA,SAAAA,MAAMA,KAAoB;QACxB,IAAI,IAAI,CAACb,MAAM,CAACI,KAAK,EAAE;QACvB,IAAI,IAAI,CAACJ,MAAM,CAACG,YAAY,GAAG,IAAI,CAACH,MAAM,CAACF,WAAW,EAAE;YACtD,IAAI,CAACE,MAAM,CAACG,YAAY;YACxBU,MAAM,IAAI,CAACJ,UAAU;QACvB,OAAO,IAAI,CAACT,MAAM,CAACC,KAAK,CAACa,IAAI,CAACD;IAChC;IAEAE,OAAAA,KAIC,GAJDA,SAAAA,OAAMC,QAAuB;QAC3B,IAAI,IAAI,CAAChB,MAAM,CAACK,aAAa,EAAE,MAAM,IAAIY,MAAM,AAAC,sCAA8C,OAATD;QACrF,IAAI,CAAChB,MAAM,CAACK,aAAa,GAAGW;QAC5B,IAAI,IAAI,CAAChB,MAAM,CAACI,KAAK,IAAI,CAAE,CAAA,IAAI,CAACJ,MAAM,CAACC,KAAK,CAACU,MAAM,GAAG,IAAI,CAACX,MAAM,CAACG,YAAY,AAAD,GAAI,OAAO,IAAI,CAACI,UAAU;IACzG;WA3CmBV"} |
| // stripped down version of https://github.com/mafintosh/fifo | ||
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| Object.defineProperty(exports, "default", { | ||
| enumerable: true, | ||
| get: function() { | ||
| return LinkedArray; | ||
| } | ||
| }); | ||
| function _class_call_check(instance, Constructor) { | ||
| if (!(instance instanceof Constructor)) { | ||
| throw new TypeError("Cannot call a class as a function"); | ||
| } | ||
| } | ||
| var Node = /*#__PURE__*/ function() { | ||
| "use strict"; | ||
| function Node(val) { | ||
| _class_call_check(this, Node); | ||
| this.prev = this.next = this; | ||
| this.value = val; | ||
| } | ||
| var _proto = Node.prototype; | ||
| _proto.link = function link(next) { | ||
| this.next = next; | ||
| next.prev = this; | ||
| return next; | ||
| }; | ||
| return Node; | ||
| }(); | ||
| var LinkedArray = /*#__PURE__*/ function() { | ||
| "use strict"; | ||
| function LinkedArray() { | ||
| _class_call_check(this, LinkedArray); | ||
| this.node = null; | ||
| this.length = 0; | ||
| } | ||
| var _proto = LinkedArray.prototype; | ||
| _proto.push = function push(value) { | ||
| var node = new Node(value); | ||
| this.length++; | ||
| if (!this.node) { | ||
| this.node = node; | ||
| return node; | ||
| } | ||
| this.node.prev.link(node); | ||
| node.link(this.node); | ||
| return node; | ||
| }; | ||
| _proto.shift = function shift() { | ||
| if (!this.node) throw new Error('Cannot shift: array empty'); | ||
| var node = this.node; | ||
| this.length--; | ||
| node.prev.link(node.next); | ||
| if (node === this.node) this.node = node.next === node ? null : node.next; | ||
| return node.link(node).value; | ||
| }; | ||
| return LinkedArray; | ||
| }(); | ||
| /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; } |
| {"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 {\n prev: this;\n next: this;\n value: unknown;\n\n constructor(val) {\n this.prev = this.next = this;\n this.value = val;\n }\n\n link(next) {\n this.next = next;\n next.prev = this;\n return next;\n }\n}\n\nexport default class LinkedArray {\n node: Node | null;\n length: number;\n\n constructor() {\n this.node = null;\n this.length = 0;\n }\n\n push(value) {\n const node = new Node(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() {\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":["LinkedArray","Node","val","prev","next","value","link","node","length","push","shift","Error"],"mappings":"AAAA,6DAA6D;;;;;;;;eAkBxCA;;;;;;;;AAjBrB,IAAA,AAAMC,qBAAN;;aAAMA,KAKQC,GAAG;gCALXD;QAMF,IAAI,CAACE,IAAI,GAAG,IAAI,CAACC,IAAI,GAAG,IAAI;QAC5B,IAAI,CAACC,KAAK,GAAGH;;iBAPXD;IAUJK,OAAAA,IAIC,GAJDA,SAAAA,KAAKF,IAAI;QACP,IAAI,CAACA,IAAI,GAAGA;QACZA,KAAKD,IAAI,GAAG,IAAI;QAChB,OAAOC;IACT;WAdIH;;AAiBS,IAAA,AAAMD,4BAAN;;aAAMA;gCAAAA;QAKjB,IAAI,CAACO,IAAI,GAAG;QACZ,IAAI,CAACC,MAAM,GAAG;;iBANGR;IASnBS,OAAAA,IAUC,GAVDA,SAAAA,KAAKJ,KAAK;QACR,IAAME,OAAO,IAAIN,KAAKI;QACtB,IAAI,CAACG,MAAM;QACX,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;YACd,IAAI,CAACA,IAAI,GAAGA;YACZ,OAAOA;QACT;QACA,IAAI,CAACA,IAAI,CAACJ,IAAI,CAACG,IAAI,CAACC;QACpBA,KAAKD,IAAI,CAAC,IAAI,CAACC,IAAI;QACnB,OAAOA;IACT;IAEAG,OAAAA,KAOC,GAPDA,SAAAA;QACE,IAAI,CAAC,IAAI,CAACH,IAAI,EAAE,MAAM,IAAII,MAAM;QAChC,IAAMJ,OAAO,IAAI,CAACA,IAAI;QACtB,IAAI,CAACC,MAAM;QACXD,KAAKJ,IAAI,CAACG,IAAI,CAACC,KAAKH,IAAI;QACxB,IAAIG,SAAS,IAAI,CAACA,IAAI,EAAE,IAAI,CAACA,IAAI,GAAGA,KAAKH,IAAI,KAAKG,OAAO,OAAOA,KAAKH,IAAI;QACzE,OAAOG,KAAKD,IAAI,CAACC,MAAMF,KAAK;IAC9B;WA5BmBL"} |
| export type DeferCallback = (error?: Error) => void; | ||
| export type DeferFunction = (calback: DeferCallback) => void; | ||
| export type AwaitCallback = (error?: Error) => void; | ||
| export default class Queue { | ||
| private _state; | ||
| constructor(parallelism?: number); | ||
| private _callAwait; | ||
| private _callDefer; | ||
| defer(defer: DeferFunction): void; | ||
| await(callback: AwaitCallback): void; | ||
| } |
| import LinkedArray from './LinkedArray.mjs'; | ||
| let Queue = class Queue { | ||
| _callAwait() { | ||
| if (this._state.awaitCalled || !this._state.awaitCallback) return; | ||
| this._state.awaitCalled = true; | ||
| return this._state.awaitCallback(this._state.error); | ||
| } | ||
| _callDefer(err) { | ||
| this._state.runningCount--; | ||
| if (err && !this._state.error) this._state.error = err; | ||
| if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait(); | ||
| if (!this._state.tasks.length) return; | ||
| this._state.runningCount++; | ||
| this._state.tasks.shift()(this._callDefer); | ||
| } | ||
| defer(defer) { | ||
| if (this._state.error) return; | ||
| if (this._state.runningCount < this._state.parallelism) { | ||
| this._state.runningCount++; | ||
| defer(this._callDefer); | ||
| } else this._state.tasks.push(defer); | ||
| } | ||
| await(callback) { | ||
| if (this._state.awaitCallback) throw new Error(`Awaiting callback was added twice: ${callback}`); | ||
| this._state.awaitCallback = callback; | ||
| if (this._state.error || !(this._state.tasks.length + this._state.runningCount)) return this._callAwait(); | ||
| } | ||
| constructor(parallelism = Infinity){ | ||
| this._state = { | ||
| parallelism, | ||
| tasks: new LinkedArray(), | ||
| runningCount: 0, | ||
| error: null, | ||
| awaitCallback: null, | ||
| awaitCalled: false | ||
| }; | ||
| this._callAwait = this._callAwait.bind(this); | ||
| this._callDefer = this._callDefer.bind(this); | ||
| } | ||
| }; | ||
| export { Queue as default }; |
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/utils/queue-cb/src/index.ts"],"sourcesContent":["import LinkedArray from './LinkedArray';\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;\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,gBAAgB;AAezB,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"} |
| declare class Node { | ||
| prev: this; | ||
| next: this; | ||
| value: unknown; | ||
| constructor(val: any); | ||
| link(next: any): any; | ||
| } | ||
| export default class LinkedArray { | ||
| node: Node | null; | ||
| length: number; | ||
| constructor(); | ||
| push(value: any): Node; | ||
| shift(): any; | ||
| } | ||
| export {}; |
| // stripped down version of https://github.com/mafintosh/fifo | ||
| let Node = class Node { | ||
| link(next) { | ||
| this.next = next; | ||
| next.prev = this; | ||
| return next; | ||
| } | ||
| constructor(val){ | ||
| this.prev = this.next = this; | ||
| this.value = val; | ||
| } | ||
| }; | ||
| let LinkedArray = class LinkedArray { | ||
| push(value) { | ||
| const node = new Node(value); | ||
| this.length++; | ||
| if (!this.node) { | ||
| this.node = node; | ||
| return node; | ||
| } | ||
| this.node.prev.link(node); | ||
| node.link(this.node); | ||
| return node; | ||
| } | ||
| shift() { | ||
| if (!this.node) throw new Error('Cannot shift: array empty'); | ||
| const node = this.node; | ||
| this.length--; | ||
| node.prev.link(node.next); | ||
| if (node === this.node) this.node = node.next === node ? null : node.next; | ||
| return node.link(node).value; | ||
| } | ||
| constructor(){ | ||
| this.node = null; | ||
| this.length = 0; | ||
| } | ||
| }; | ||
| export { LinkedArray as default }; |
| {"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 {\n prev: this;\n next: this;\n value: unknown;\n\n constructor(val) {\n this.prev = this.next = this;\n this.value = val;\n }\n\n link(next) {\n this.next = next;\n next.prev = this;\n return next;\n }\n}\n\nexport default class LinkedArray {\n node: Node | null;\n length: number;\n\n constructor() {\n this.node = null;\n this.length = 0;\n }\n\n push(value) {\n const node = new Node(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() {\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","val","value","LinkedArray","push","node","length","shift","Error"],"mappings":"AAAA,6DAA6D;AAC7D,IAAA,AAAMA,OAAN,MAAMA;IAUJC,KAAKC,IAAI,EAAE;QACT,IAAI,CAACA,IAAI,GAAGA;QACZA,KAAKC,IAAI,GAAG,IAAI;QAChB,OAAOD;IACT;IATAE,YAAYC,GAAG,CAAE;QACf,IAAI,CAACF,IAAI,GAAG,IAAI,CAACD,IAAI,GAAG,IAAI;QAC5B,IAAI,CAACI,KAAK,GAAGD;IACf;AAOF;AAEe,IAAA,AAAME,cAAN,MAAMA;IASnBC,KAAKF,KAAK,EAAE;QACV,MAAMG,OAAO,IAAIT,KAAKM;QACtB,IAAI,CAACI,MAAM;QACX,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;YACd,IAAI,CAACA,IAAI,GAAGA;YACZ,OAAOA;QACT;QACA,IAAI,CAACA,IAAI,CAACN,IAAI,CAACF,IAAI,CAACQ;QACpBA,KAAKR,IAAI,CAAC,IAAI,CAACQ,IAAI;QACnB,OAAOA;IACT;IAEAE,QAAQ;QACN,IAAI,CAAC,IAAI,CAACF,IAAI,EAAE,MAAM,IAAIG,MAAM;QAChC,MAAMH,OAAO,IAAI,CAACA,IAAI;QACtB,IAAI,CAACC,MAAM;QACXD,KAAKN,IAAI,CAACF,IAAI,CAACQ,KAAKP,IAAI;QACxB,IAAIO,SAAS,IAAI,CAACA,IAAI,EAAE,IAAI,CAACA,IAAI,GAAGA,KAAKP,IAAI,KAAKO,OAAO,OAAOA,KAAKP,IAAI;QACzE,OAAOO,KAAKR,IAAI,CAACQ,MAAMH,KAAK;IAC9B;IAxBAF,aAAc;QACZ,IAAI,CAACK,IAAI,GAAG;QACZ,IAAI,CAACC,MAAM,GAAG;IAChB;AAsBF;AA7BA,SAAqBH,yBA6BpB"} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
24188
3.04%19
26.67%256
25.49%1
Infinity%