Rate Limit
mrdoge-ui/rate-limitFreeUtility
In-memory, per-instance rate limiter for gating routes that have no user session to check instead.
Install it
npx shadcn@latest add https://mrdoge.co/r/rate-limit.jsonSource
1import "server-only"23// In-memory, per-instance limiter — imperfect across multiple serverless4// replicas (each has its own memory), but a real floor against naive5// scraping/abuse with zero new infra. For a stronger guarantee, put the6// route behind Vercel Firewall or Cloudflare Rate Limiting too — this is7// meant as defense in depth, not a replacement for that.8const hits = new Map<string, { count: number; resetAt: number }>()910// Sweep expired entries occasionally so `hits` doesn't grow unbounded11// across the life of a warm instance.12let lastSweep = Date.now()13function sweep(now: number) {14 if (now - lastSweep < 60_000) return15 lastSweep = now16 for (const [key, entry] of hits) {17 if (now > entry.resetAt) hits.delete(key)18 }19}2021export function isRateLimited(key: string, { windowMs = 60_000, max = 20 } = {}): boolean {22 const now = Date.now()23 sweep(now)2425 const entry = hits.get(key)26 if (!entry || now > entry.resetAt) {27 hits.set(key, { count: 1, resetAt: now + windowMs })28 return false29 }3031 entry.count++32 return entry.count > max33}
Files it writes
More from mrdoge-ui
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Bet Slip Adapter (Mr. Doge SDK)mrdoge-bet-slip-adapter | mrdoge-ui | Utilities | Free | 1 dep | |
| Mr. Doge Clientmrdoge-client | mrdoge-ui | Utilities | Free | 1 dep | |
| Conflict Adapter (Mr. Doge SDK)mrdoge-conflict-adapter | mrdoge-ui | Utilities | Free | 1 dep | |
| Match Card Adapter (Mr. Doge SDK)mrdoge-match-card-adapter | mrdoge-ui | Utilities | Free | 1 dep | |
| Match Highlight Adapter (Mr. Doge SDK)mrdoge-match-highlight-adapter | mrdoge-ui | Utilities | Free | 1 dep | |
| Match Timeline Adapter (Mr. Doge SDK)mrdoge-match-timeline-adapter | mrdoge-ui | Utilities | Free | 1 dep | |
| Odds Selector Adapter (Mr. Doge SDK)mrdoge-odds-selector-adapter | mrdoge-ui | Utilities | Free | 1 dep | |
| Stats List Adapter (Mr. Doge SDK)mrdoge-stats-list-adapter | mrdoge-ui | Utilities | Free | 1 dep |
