Skip to Content
⚠️Active Development Notice: TimeTiles is under active development. Information may be placeholder content or not up-to-date.

web


web / lib/services/geocoding/provider-rate-limiter

lib/services/geocoding/provider-rate-limiter

Per-provider rate limiting for geocoding requests.

Implements a simple token bucket algorithm that tracks the last request time for each provider and ensures requests respect the configured rate limit. This is necessary because external geocoding APIs (especially Nominatim/OSM) have strict rate limits that must be respected.

Classes

ProviderRateLimiter

Constructors

Constructor

new ProviderRateLimiter(): ProviderRateLimiter

Returns

ProviderRateLimiter

Methods

configure()

configure(providerName, requestsPerSecond): void

Configure rate limit for a provider. Should be called when providers are loaded.

Parameters
providerName

string

requestsPerSecond

number

Returns

void

waitForSlot()

waitForSlot(providerName): Promise<void>

Wait for a rate limit slot to become available. Returns immediately if within rate limit, otherwise waits.

Parameters
providerName

string

Returns

Promise<void>

canMakeRequest()

canMakeRequest(providerName): boolean

Check if a request can be made immediately without waiting.

Parameters
providerName

string

Returns

boolean

getTimeUntilAllowed()

getTimeUntilAllowed(providerName): number

Get time in ms until next request is allowed.

Parameters
providerName

string

Returns

number

reset()

reset(providerName?): void

Reset rate limiter state for a specific provider or all providers.

Parameters
providerName?

string

Returns

void

Functions

getProviderRateLimiter()

getProviderRateLimiter(): ProviderRateLimiter

Returns

ProviderRateLimiter


resetProviderRateLimiter()

resetProviderRateLimiter(): void

Returns

void

Last updated on