Files
discord-decomp/_bundle/Module6432.js
T
2026-11-01 12:12:55 +02:00

48 lines
1.5 KiB
JavaScript

// Metro module 6432 (f6433).
import { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from "./SyncPromise_6392";
import { SentryError } from "./SentryError_6425";
export function makePromiseBuffer(c15730_0) {
const r2 = [];
let c15730_1 = r2;
return {
$: r2,
add: function add(a0) {
if (c15730_0 === void 0 || c15730_1.length < c15730_0) {
const r26 = a0();
let c25878_0 = r26;
if (c15730_1.indexOf(r26) === -1) {
c15730_1.push(r26);
}
r26.then(() => c15730_1.splice(c15730_1.indexOf(c25878_0), 1)[0] || Promise.resolve(void 0)).then(null, () => (c15730_1.splice(c15730_1.indexOf(c25878_0), 1)[0] || Promise.resolve(void 0)).then(null, () => {}));
return r26;
}
return rejectedSyncPromise(new SentryError("Not adding Promise because buffer limit was reached."));
},
drain: function drain(c25879_0) {
return new SyncPromise((a0, c29772_1) => {
let c29772_3;
const length2 = c15730_1.length;
const length = length2;
if (length2) {
c29772_3 = setTimeout(() => {
if (c25879_0 && c25879_0 > 0) {
a0(false);
}
}, c25879_0);
c15730_1.forEach((item) => {
resolvedSyncPromise(item).then(() => {
length = length - 1;
if (!length) {
clearTimeout(c29772_3);
a0(true);
}
}, c29772_1);
});
return void 0;
}
return a0(true);
});
}
};
}