Skip to content
Buy me a coffee

PartitionedRateLimiterStrategy

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

One limiter per key (user, tenant, API key), so one noisy key can’t use up the others’ quota.

T

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

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

PartitionedRateLimiterOptions<T>

StrategySource

PartitionedRateLimiterStrategy<T>

get partitions(): number

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

Partitions currently held in memory.

number

block(duration, key?): void

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

Duration

string

void


delete(key?): boolean

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

Drops the partition of key (every partition when omitted): it starts over with a fresh quota and no block.

string

boolean


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

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

Next<T>

ResilienceContext

Promise<Outcome<T, unknown>>

ResilienceStrategy.execute


keys(): string[]

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

Keys of the partitions held in memory, least recently used first.

string[]


penalty(points, key?): Promise<void>

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

number

string

Promise<void>


restore(snapshot): void

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

Recreates the partitions of a snapshot() (still bounded by maxPartitions) and loads their state.

PartitionedRateLimiterSnapshot

void


reward(points, key?): Promise<void>

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

number

string

Promise<void>


snapshot(limit?): PartitionedRateLimiterSnapshot

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

Snapshots of the limit most recently used partitions (default all), for restore after a restart.

number = Infinity

PartitionedRateLimiterSnapshot


unblock(key?): void

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

string

void