Skip to main content

Function: rateLimiter()

rateLimiter(customLimits?): MiddlewareHandler<ChiveEnv>

Defined in: src/api/middleware/rate-limit.ts:191

Rate limiting middleware factory.

Parameters

customLimits?

Partial<Record<RateLimitTier, number>>

Optional custom limits per tier

Returns

MiddlewareHandler<ChiveEnv>

Hono middleware handler

Remarks

Creates middleware that enforces tiered rate limits:

  • Determines tier from authenticated user or falls back to anonymous
  • Uses IP for anonymous, DID for authenticated users
  • Sets standard rate limit headers on all responses
  • Throws RateLimitError when limit exceeded

Example

// Apply to all routes
app.use('*', rateLimiter());

// Custom limits for specific routes
app.use('/api/heavy', rateLimiter({ anonymous: 10, authenticated: 50 }));