all repos — kitten @ main

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();
}