pkgs/examples/src/index.ts (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import { RESTClient } from "@purrkit/rest";
import { RateLimitManager } from "@purrkit/ratelimit";
const limiter = new RateLimitManager({
onDebug: (msg, data) => {
console.log(`[REST Debug] ${msg}`, data || "");
},
onRateLimit: ({ routeId, global, delayMs, bucketHash }) => {
const type = global ? "GLOBAL" : "LOCAL";
console.warn(
`[RateLimit] Hit ${type} limit on ${routeId}. Pausing for ${delayMs}ms (bucket: ${bucketHash})`,
);
},
});
const rest = RESTClient({
token: process.env.TOKEN!,
fetch: limiter.fetch,
});
for (let i = 0; i < 50; i++) {
await rest.users.me.get();
}
|