Files
discord-decomp/lib/uploader/UploaderQueue.tsx
T
2026-11-01 12:12:55 +02:00

90 lines
2.4 KiB
TypeScript

// Metro module 6152 (f6153).
import Logger from "../../modules/debug/Logger";
let c3894_1 = new Logger("UploaderQueue.tsx");
class UploaderQueue {
constructor() {
return {
__proto__: new.target.prototype,
queue: [],
drainingQueue: false
};
}
enqueue(a0) {
this.queue.unshift(a0);
c3894_1.log("enqueue() - alreadying draining? " + (this.drainingQueue ? "yes" : "no"));
if (!this.drainingQueue) {
this.drainQueue();
}
}
async drainQueue() {
const _this = this;
let c25724_0, c25724_1, c25724_2;
let c25724_3 = 0;
const r20 = "drainQueue() - No uploads left, setting drainingQueue to false";
const r15 = void 0;
L13: {
L12: {
try {
let env29676;
c25724_1 = r15;
const r36 = env29676 = {};
c25724_0 = r36;
env29676[0] = void 0;
_this.drainingQueue = true;
c3894_1.log(`drainQueue() - starting, queue length: ${_this.queue.length}`);
const r46 = _this.queue.pop();
if (r46 == null) {
c3894_1.log(r20);
_this.drainingQueue = false;
break L13;
}
c25724_3 = 1;
c3894_1.log("drainQueue() - start uploader");
env29676[0] = r46();
await new Promise((resolve) => {
const r4 = env29676[0];
if (r4._aborted || r4._errored) {
resolve();
}
r4.addListener("complete", () => resolve());
r4.addListener("error", () => resolve());
});
c3894_1.log(`drainQueue() Uploader complete - ${env29676[0].id}`);
c25724_3 = 0;
_this.drainQueue();
} catch ($e) {
const r34 = $e;
let r8 = r34;
c25724_2 = r34;
if (c25724_3 !== 0) {
while (true) {
try {
const r107 = c25724_2;
c25724_3 = 0;
env29676[1] = r107;
c3894_1.error(env29676[1]);
_this.drainQueue();
break L12;
} catch (r103) {
r8 = r103;
c25724_2 = r103;
if (c25724_3 === 0) {
break;
}
}
}
}
throw r8;
}
}
return void 0;
}
}
}
const r31 = {
__proto__: UploaderQueue.prototype,
queue: [],
drainingQueue: false
};
export default r31;