48 lines
1.5 KiB
JavaScript
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);
|
|
});
|
|
}
|
|
};
|
|
}
|