UNPKG

riot-ratelimiter

Version:

A rate limiter handling rate-limits enforced by the riot-games api

74 lines (73 loc) 2.49 kB
import { RateLimiter, STRATEGY } from '../RateLimiter/index'; export interface RateLimitOptions { requests: number; seconds: number; type?: RATELIMIT_TYPE; count?: number; debug?: boolean; } export interface RateLimitUpdateOptions { requests?: number; seconds?: number; type?: RATELIMIT_TYPE; count?: number; debug?: boolean; } export declare enum RATELIMIT_TYPE { APP = 0, METHOD = 1, SYNC = 2, BACKOFF = 3, } export declare const RATELIMIT_TYPE_STRINGS: { [x: number]: string; }; export declare const RATELIMIT_INIT_SECONDS: number; export declare const FACTOR_REQUEST_MARGIN_BELOW_5_SEC: number; export declare const FACTOR_REQUEST_MARGIN_ABOVE_5_SEC: number; export interface Comparable { equals(c: any): boolean; compareTo(c1: any, c2: any): number; } export declare class RateLimit implements Comparable, RateLimitOptions { private _requests; private requestsSafeBurst; readonly requests: number; private _seconds; readonly seconds: number; private _type; readonly type: RATELIMIT_TYPE; private _count; readonly count: number; private _debug; readonly debug: boolean; private resetTimeout; private timestampLastReset; private limiters; constructor({requests, seconds, type, count}: RateLimitOptions, {debug}?: { debug?: boolean; }); static getRateLimitTypeString(type: RATELIMIT_TYPE): string; addLimiter(limiter: RateLimiter): void; reloadLimiters(): void; dispose(): void; static calcMSUntilReset(limitIntervalSeconds: number, timestampLastLimitReset?: number): number; check(strategy: STRATEGY): boolean; private getSecondsUntilReset(); getMaximumRequests(strategy: STRATEGY): number; getRemainingRequests(strategy: STRATEGY): number; isUsingSafetyMargin(strategy: STRATEGY): boolean; getSpreadInterval(): number; increment(count?: number): void; reset(): void; toString(): string; update({requests, seconds, type, count}: RateLimitUpdateOptions): void; updateSilently(limit: RateLimitOptions): void; private updateValues(limit); private startResetTimer(); private notifyLimiters(); static compare(limit1: RateLimitOptions, limit2: RateLimitOptions): number; compareTo(comparable: RateLimitOptions): number; equals(limit: RateLimitOptions): boolean; restartTimeout(): void; }