Module api/matching/rate-limiting

Rate limiting module for AniList API requests.

Provides queue-based rate limiting to ensure compliance with AniList's 60 requests/minute limit. Includes manual pause capabilities, sequential request processing with retry logic, and rate-limited search operation wrappers.

export { API_RATE_LIMIT, REQUEST_INTERVAL, SAFETY_DELAY } from "./config";

// Queue state
export type { QueueEntry } from "./queue-state";
export {
requestQueue,
getLastRequestTime,
setLastRequestTime,
isProcessingQueue,
setProcessingQueue,
} from "./queue-state";

// Manual pause
export {
isManualPauseActive,
isManualMatchingPaused,
waitWhileManuallyPaused,
setManualMatchingPause,
} from "./manual-pause";

// Utils
export { sleep } from "./utils";

// Queue processor
export { acquireRateLimit } from "./queue-processor";

// Search wrappers
export { searchWithRateLimit } from "./search-wrappers";

References

API_RATE_LIMIT → API_RATE_LIMIT
REQUEST_INTERVAL → REQUEST_INTERVAL
SAFETY_DELAY → SAFETY_DELAY
QueueEntry → QueueEntry
requestQueue → requestQueue
getLastRequestTime → getLastRequestTime
setLastRequestTime → setLastRequestTime
isProcessingQueue → isProcessingQueue
setProcessingQueue → setProcessingQueue
isManualPauseActive → isManualPauseActive
isManualMatchingPaused → isManualMatchingPaused
waitWhileManuallyPaused → waitWhileManuallyPaused
setManualMatchingPause → setManualMatchingPause
sleep → sleep
acquireRateLimit → acquireRateLimit
searchWithRateLimit → searchWithRateLimit