Skip to content

TokenBucketStrategy

Defined in: src/rate-limiter.ts:151

Token bucket rate limiter, e.g. for an external API quota.

T

new TokenBucketStrategy<T>(options, source): TokenBucketStrategy<T>

Defined in: src/rate-limiter.ts:152

TokenBucketOptions

StrategySource

TokenBucketStrategy<T>

RateLimiterStrategy.constructor

get queued(): number

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

Executions waiting for permits.

number

SlidingWindowRateLimiterStrategy.queued

block(duration): void

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

Duration

void

RateLimiterStrategy.block


delete(): Promise<void>

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

Fresh quota and no block.

Promise<void>

RateLimiterStrategy.delete


execute(next, context): Promise<Outcome<T, unknown>>

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

Next<T>

ResilienceContext

Promise<Outcome<T, unknown>>

RateLimiterStrategy.execute


penalty(points): Promise<void>

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

number

Promise<void>

RateLimiterStrategy.penalty


restore(snapshot): void

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

Loads a snapshot(); time passed since it was taken counts (windows expire, tokens refill, blocks run out).

RateLimiterSnapshot

void

RateLimiterStrategy.restore


reward(points): Promise<void>

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

number

Promise<void>

RateLimiterStrategy.reward


snapshot(): RateLimiterSnapshot

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

The algorithm’s state and the block, JSON-serializable, for restore after a restart.

RateLimiterSnapshot

RateLimiterStrategy.snapshot


unblock(): void

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

void

RateLimiterStrategy.unblock