Skip to main content

Class: HttpRateLimiter

Defined in: shared/utils/httpRateLimiter.ts:57

A small rate limiter designed for HTTP monitor workloads.

Remarksโ€‹

This is intentionally environment-agnostic and safe for shared usage. Consumers may wrap it to add logging or load config from env vars.

Constructorsโ€‹

Constructorโ€‹

new HttpRateLimiter(config: HttpRateLimiterConfig): HttpRateLimiter

Defined in: shared/utils/httpRateLimiter.ts:132

Parametersโ€‹

configโ€‹

HttpRateLimiterConfig

Returnsโ€‹

HttpRateLimiter

Propertiesโ€‹

lastInvocationByKeyโ€‹

private readonly lastInvocationByKey: Map<string, number>

Defined in: shared/utils/httpRateLimiter.ts:58


activeโ€‹

private active: number = 0

Defined in: shared/utils/httpRateLimiter.ts:60


maxWaitMsโ€‹

private readonly maxWaitMs: number

Defined in: shared/utils/httpRateLimiter.ts:62


configโ€‹

private readonly config: HttpRateLimiterConfig

Defined in: shared/utils/httpRateLimiter.ts:64

Methodsโ€‹

schedule()โ€‹

schedule<T>(url: string, operation: () => Promise<T>, options?: { signal?: AbortSignal; }): Promise<T>

Defined in: shared/utils/httpRateLimiter.ts:66

Type Parametersโ€‹

Tโ€‹

T

Parametersโ€‹

urlโ€‹

string

operationโ€‹

() => Promise<T>

options?โ€‹
signal?โ€‹

AbortSignal

Returnsโ€‹

Promise<T>


toKey()โ€‹

private toKey(url: string): string

Defined in: shared/utils/httpRateLimiter.ts:137

Parametersโ€‹

urlโ€‹

string

Returnsโ€‹

string