riot-ratelimiter
Version:
A rate limiter handling rate-limits enforced by the riot-games api
41 lines (40 loc) • 1.6 kB
TypeScript
import { STRATEGY } from '../RateLimiter';
export declare type RiotRateLimiterConstructorOptions = {
strategy?: STRATEGY;
debug?: boolean;
};
export declare type RiotRateLimiterOptions = {
limits: RateLimitOptions[];
strategy: STRATEGY;
platformId: string;
apiMethod: string;
};
import { RateLimit, RATELIMIT_TYPE, RateLimitOptions } from '../RateLimit/index';
export declare class RiotRateLimiter {
private limitersPerPlatformId;
private strategy;
private debug;
private appLimits;
constructor({strategy, debug}?: RiotRateLimiterConstructorOptions);
executing({url, token, resolveWithFullResponse}: {
url: any;
token: any;
resolveWithFullResponse?: boolean;
}): Promise<{}>;
private executingScheduledCallback(rateLimiter, {url, token, resolveWithFullResponse});
private static extractPlatformIdAndMethodFromUrl(url);
static extractRateLimitFromHeader(type: RATELIMIT_TYPE, rateLimitHeader: string): RateLimitOptions[];
static extractRateLimitCountsFromHeader(type: RATELIMIT_TYPE, rateLimitCountHeader: string): RateLimitOptions[];
private static addRequestsCountFromHeader(type, updatedLimits, rateLimitCountHeader);
toString(url: string): string;
setStrategy(strategy: STRATEGY): void;
getLimitsForPlatformId(platformId: string): {
[apiMethod: string]: RateLimit[];
};
getLimits(): {
[platformId: string]: {
[apiMethod: string]: RateLimit[];
};
};
private updateAppRateLimits(updateOptions?);
}