INNER CODE UNIT · TypeScript
enforceCreateRateLimits
Hash-Studios/Prism · infra/cloudflare/worker/src/index.ts:300
async function enforceCreateRateLimits(ip: string, env: Env): Promise<boolean> {
const tenMinuteOk = await bumpRateCounter(env, `rl:10m:${ip}`, 20, 600);
if (!tenMinuteOk) {
return false;
}
return bumpRateCounter(env, `rl:1d:${ip}`, 200, 86400);
}
async function bumpRateCounter(env: Env, key: string, limit: number, ttlSeconds: number): Promise<boolean> {
const existing = await env.LINKS_KV.get(key);
const current = Number.parseInt(existing ?? '0', 10);
if (current >= limit) {
return false;
}
await env.LINKS_KV.put(key, String(current + 1), { expirationTtl: ttlSeconds });
return true;
}