113 lines
3.3 KiB
TypeScript
113 lines
3.3 KiB
TypeScript
// Module ID: 7078
|
|
// Function ID: 56608
|
|
// Name: Queue
|
|
// Dependencies: [6, 7, 3, 13, 2]
|
|
|
|
// Module 7078 (Queue)
|
|
import _classCallCheck from "_classCallCheck";
|
|
import _defineProperties from "_defineProperties";
|
|
import importDefaultResult from "arrayCopy";
|
|
|
|
importDefaultResult = new importDefaultResult("Queue");
|
|
const tmp4 = (() => {
|
|
class Queue {
|
|
constructor() {
|
|
tmp = arg0;
|
|
num = arg1;
|
|
self = this;
|
|
if (arg0 === undefined) {
|
|
tmp = outer1_4;
|
|
}
|
|
if (num === undefined) {
|
|
num = 100;
|
|
}
|
|
tmp2 = outer1_2(self, Queue);
|
|
self.logger = tmp;
|
|
self.defaultRetryAfter = num;
|
|
tmp3 = Queue(outer1_1[3]);
|
|
tmp3 = new tmp3();
|
|
self.queue = tmp3;
|
|
self.timeout = null;
|
|
self.draining = false;
|
|
return;
|
|
}
|
|
}
|
|
let obj = {
|
|
key: "enqueue",
|
|
value(message, success, logId) {
|
|
const queue = this.queue;
|
|
queue.push({ message, success, logId });
|
|
this._drainIfNecessary();
|
|
}
|
|
};
|
|
const items = [obj, , , ];
|
|
obj = {
|
|
key: "length",
|
|
get() {
|
|
return this.queue.length;
|
|
}
|
|
};
|
|
items[1] = obj;
|
|
obj = {
|
|
key: "_drainIfNecessary",
|
|
value() {
|
|
let _classCallCheck;
|
|
let logId;
|
|
let self = this;
|
|
self = this;
|
|
if (null === this.timeout) {
|
|
if (0 !== self.queue.length) {
|
|
if (true !== self.draining) {
|
|
self.draining = true;
|
|
let queue = self.queue;
|
|
const arr = queue.shift();
|
|
({ success: _classCallCheck, logId } = arr);
|
|
let logger = self.logger;
|
|
let _HermesInternal = HermesInternal;
|
|
logger.log("Draining message from queue LogId:" + logId + " QueueLength: " + self.queue.length);
|
|
self.drain(arr.message, (retryAfter) => {
|
|
const logger = self.logger;
|
|
logger.log("Finished draining message from queue LogId:" + logId + " QueueLength: " + self.queue.length);
|
|
self.draining = false;
|
|
if (null == retryAfter) {
|
|
const _setImmediate = setImmediate;
|
|
setImmediate(() => outer1_0._drainIfNecessary());
|
|
callback(arg1);
|
|
} else {
|
|
let defaultRetryAfter = retryAfter.retryAfter;
|
|
if (null == defaultRetryAfter) {
|
|
defaultRetryAfter = self.defaultRetryAfter;
|
|
}
|
|
const logger2 = self.logger;
|
|
const _HermesInternal = HermesInternal;
|
|
logger2.info("Rate limited. Delaying draining of queue for " + defaultRetryAfter + " ms. LogId:" + logId + " QueueLength: " + self.queue.length);
|
|
const _setTimeout = setTimeout;
|
|
self.timeout = setTimeout(() => {
|
|
const queue = outer1_0.queue;
|
|
queue.unshift(outer1_1);
|
|
outer1_0.timeout = null;
|
|
outer1_0._drainIfNecessary();
|
|
}, defaultRetryAfter);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
items[2] = obj;
|
|
items[3] = {
|
|
key: "clear",
|
|
value() {
|
|
const queue = this.queue;
|
|
queue.clear();
|
|
clearTimeout(this.timeout);
|
|
this.timeout = null;
|
|
this.draining = false;
|
|
}
|
|
};
|
|
return callback(Queue, items);
|
|
})();
|
|
const result = require("timestamp").fileFinishedImporting("utils/Queue.tsx");
|
|
|
|
export default tmp4;
|