40 lines
1006 B
TypeScript
40 lines
1006 B
TypeScript
// Metro module 12733 (f12734).
|
|
export default function rateLimit(c19990_0, c19990_1, c19990_2) {
|
|
let c19990_3;
|
|
let c19990_4 = [];
|
|
const wrapper2 = function wrapper(...args) {
|
|
let r25;
|
|
let c27354_0 = args;
|
|
const r14 = Date.now();
|
|
if (c19990_3 != null) {
|
|
clearTimeout(c19990_3);
|
|
c19990_3 = null;
|
|
}
|
|
const length = c19990_4.length;
|
|
let r19 = c19990_4;
|
|
if (length > 0) {
|
|
const r20 = c19990_4[0];
|
|
r19 = c19990_4;
|
|
if (r20 <= r14) {
|
|
do {
|
|
c19990_4.shift();
|
|
const length2 = c19990_4.length;
|
|
r19 = c19990_4;
|
|
if (!(length2 > 0)) {
|
|
break;
|
|
}
|
|
r25 = c19990_4[0];
|
|
r19 = c19990_4;
|
|
} while (r25 <= r14);
|
|
}
|
|
}
|
|
if (r19.length < c19990_0) {
|
|
r19.push(r14 + c19990_1);
|
|
c19990_2.apply(void 0, [...args]);
|
|
} else {
|
|
c19990_3 = setTimeout(() => wrapper2.apply(void 0, [...c27354_0]), r19[0] - r14);
|
|
}
|
|
};
|
|
return wrapper2;
|
|
};
|