RateLimiterAlgorithm
Defined in: src/window-rate-limiter.ts:29
The admission logic of a rate limiter, without waiting or telemetry. The in-memory WindowCounter implements it;
implement it over Redis (one Lua script per acquire) to share a limit between processes. acquire may be async.
Properties
Section titled “Properties”permitLimit
Section titled “permitLimit”
readonlypermitLimit:number
Defined in: src/window-rate-limiter.ts:30
Methods
Section titled “Methods”acquire()
Section titled “acquire()”acquire(
permits,now):MaybePromise<AcquireResult>
Defined in: src/window-rate-limiter.ts:32
Takes permits if they fit, else says how many ms until they would. permits is never above permitLimit.
Parameters
Section titled “Parameters”permits
Section titled “permits”number
number
Returns
Section titled “Returns”adjust()?
Section titled “adjust()?”
optionaladjust(points,now):MaybePromise<void>
Defined in: src/window-rate-limiter.ts:34
Charges (points > 0) or refunds (points < 0) permits without admission check: penalty / reward. Optional.
Parameters
Section titled “Parameters”points
Section titled “points”number
number
Returns
Section titled “Returns”MaybePromise<void>
restore()?
Section titled “restore()?”
optionalrestore(state,now):void
Defined in: src/window-rate-limiter.ts:38
Loads a snapshot, aging it by the time passed since it was taken. Optional.
Parameters
Section titled “Parameters”unknown
number
Returns
Section titled “Returns”void
snapshot()?
Section titled “snapshot()?”
optionalsnapshot(now):unknown
Defined in: src/window-rate-limiter.ts:36
JSON-serializable state as of now, for restore (e.g. after a restart). Optional.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”unknown