Skip to content

TokenBucket

Defined in: src/window-rate-limiter.ts:179

Token bucket: tokenLimit burst, tokensPerPeriod added every period ms. Tokens can go negative through adjust (penalty).

new TokenBucket(tokenLimit, periodMs, tokensPerPeriod, now): TokenBucket

Defined in: src/window-rate-limiter.ts:186

number

number

number

number

TokenBucket

readonly permitLimit: number

Defined in: src/window-rate-limiter.ts:180

RateLimiterAlgorithm.permitLimit

acquire(permits, now): AcquireResult

Defined in: src/window-rate-limiter.ts:194

Takes permits if they fit, else says how many ms until they would. permits is never above permitLimit.

number

number

AcquireResult

RateLimiterAlgorithm.acquire


adjust(points, now): void

Defined in: src/window-rate-limiter.ts:203

Charges (points > 0) or refunds (points < 0) permits without admission check: penalty / reward. Optional.

number

number

void

RateLimiterAlgorithm.adjust


restore(state, now): void

Defined in: src/window-rate-limiter.ts:213

Loads a snapshot, aging it by the time passed since it was taken. Optional.

TokenBucketState

number

void

RateLimiterAlgorithm.restore


snapshot(now): TokenBucketState

Defined in: src/window-rate-limiter.ts:208

JSON-serializable state as of now, for restore (e.g. after a restart). Optional.

number

TokenBucketState

RateLimiterAlgorithm.snapshot