UNPKG

@vicary/alpaca-sdk

Version:

A TypeScript SDK for the https://alpaca.markets REST API and WebSocket streams.

24 lines (23 loc) 772 B
export const createTokenBucket = ({ capacity, fillRate } = { capacity: 200, fillRate: 3, }) => { // Initialize tokens and last fill time let tokens = capacity; // Initialize last fill time let lastFillTime = Date.now(); return { tokens, take: (count) => { // Calculate time delta const now = Date.now(); const delta = (now - lastFillTime) / 1000; // Update last fill time and tokens lastFillTime = now; tokens = Math.min(capacity, tokens + delta * fillRate); // Check if tokens are available and take them if so // Otherwise, return false return tokens >= count ? ((tokens -= count), true) : false; }, }; };