web / lib/services/rate-limit-service / RateLimitService
Class: RateLimitService
Constructors
Constructor
new RateLimitService(
payload
):RateLimitService
Parameters
payload
BasePayload
Returns
RateLimitService
Methods
destroy()
destroy():
void
Cleanup method to clear interval and cache
Returns
void
checkRateLimit()
checkRateLimit(
identifier
,limit
,windowMs
):object
Check if a request should be rate limited
Parameters
identifier
string
IP address or session ID
limit
number
= 10
Maximum requests allowed
windowMs
number
= ...
Time window in milliseconds
Returns
object
Object containing rate limit status
allowed
allowed:
boolean
remaining
remaining:
number
resetTime
resetTime:
number
blocked
blocked:
boolean
getRateLimitStatus()
getRateLimitStatus(
identifier
):null
| {count
:number
;resetTime
:number
;blocked
:boolean
; }
Get current rate limit status without incrementing
Parameters
identifier
string
Returns
null
| { count
: number
; resetTime
: number
; blocked
: boolean
; }
resetRateLimit()
resetRateLimit(
identifier
):void
Reset rate limit for an identifier
Parameters
identifier
string
Returns
void
blockIdentifier()
blockIdentifier(
identifier
,durationMs
):void
Block an identifier immediately
Parameters
identifier
string
durationMs
number
= ...
Returns
void
getRateLimitHeaders()
getRateLimitHeaders(
identifier
,limit
):Record
<string
,string
>
Get rate limit headers for HTTP responses
Parameters
identifier
string
limit
number
Returns
Record
<string
, string
>
getStatistics()
getStatistics():
object
Get statistics about current rate limits
Returns
object
totalEntries
totalEntries:
number
blockedEntries
blockedEntries:
number
activeEntries
activeEntries:
number