Skip to content

Wildberries API TypeScript SDK / <internal> / _TokenBucket

Class: _TokenBucket

Defined in: client/rate-limiter.ts:117

Internal

Internal token bucket implementation for rate limiting.

Implements the token bucket algorithm where:

  1. A bucket holds up to capacity tokens
  2. Tokens refill at a steady refillRate over time
  3. Each request consumes 1 token
  4. Requests queue when no tokens are available
  5. Queued requests are processed FIFO when tokens become available

This class is used internally by RateLimiter and not exported.

See

Token Bucket Algorithm

Constructors

Constructor

ts
new _TokenBucket(config: RateLimitConfig): _TokenBucket;

Defined in: client/rate-limiter.ts:161

Creates a new token bucket with the specified rate limit configuration.

Parameters

ParameterTypeDescription
configRateLimitConfigRate limit configuration for this bucket

Returns

_TokenBucket

Methods

consume()

ts
consume(): Promise<void>;

Defined in: client/rate-limiter.ts:211

Attempts to consume a token for a request.

If tokens are available, consumes one immediately and resolves. If no tokens are available, queues the request and returns a Promise that will resolve when a token becomes available.

Queued requests are processed in FIFO order.

Returns

Promise<void>

Promise that resolves when a token has been consumed

Example

typescript
const bucket = new TokenBucket({ requestsPerMinute: 6, burstLimit: 1 });

// First request: immediate (token available)
await bucket.consume(); // Resolves immediately

// Second request: queued (no tokens)
await bucket.consume(); // Waits ~10 seconds for token refill

getAvailableTokens()

ts
getAvailableTokens(): number;

Defined in: client/rate-limiter.ts:269

Internal

Get the current number of available tokens after refilling.

This method triggers a refill and returns the current token count. Useful for monitoring and debugging.

Returns

number

Current number of available tokens

Made with ❤️ for the Wildberries developer community