@twitter-api-v2/plugin-rate-limit
Version:
Rate limit plugin for twitter-api-v2
52 lines (51 loc) • 2.67 kB
TypeScript
import type { ITwitterApiClientPlugin, ITwitterApiAfterRequestHookArgs, TwitterRateLimit, ITwitterApiResponseErrorHookArgs } from 'twitter-api-v2';
import type { ITwitterApiRateLimitStore } from './types';
declare const prefixes: {
readonly v2: "https://api.twitter.com/2/";
readonly v2Labs: "https://api.twitter.com/labs/2/";
readonly v1: "https://api.twitter.com/1.1/";
readonly v1Upload: "https://upload.twitter.com/1.1/";
readonly v1Stream: "https://stream.twitter.com/1.1/";
};
declare type TAvailablePrefix = keyof typeof prefixes;
export declare class TwitterApiRateLimitPlugin implements ITwitterApiClientPlugin {
protected _v1Plugin?: TwitterApiRateLimitPluginWithPrefixV1;
protected _v2Plugin?: TwitterApiRateLimitPluginWithPrefixV2;
protected store: ITwitterApiRateLimitStore;
constructor(store?: ITwitterApiRateLimitStore);
onAfterRequest(args: ITwitterApiAfterRequestHookArgs): Promise<void>;
onResponseError(args: ITwitterApiResponseErrorHookArgs): Promise<void>;
/**
* Get the last obtained Twitter rate limit information for {endpoint}.
*/
getRateLimit(endpoint: string, method?: string): void | TwitterRateLimit | Promise<void | TwitterRateLimit>;
/**
*
* Tells if you hit the Twitter rate limit for {rateLimit}.
* Obtain {rateLimit} through {.getRateLimit}.
*/
hasHitRateLimit(rateLimit: TwitterRateLimit | void): boolean;
/**
* Tells if you hit the returned Twitter rate limit for the following {rateLimit} has expired.
* Obtain {rateLimit} through {.getRateLimit}.
*/
isRateLimitStatusObsolete(rateLimit: TwitterRateLimit | void): boolean;
get v1(): TwitterApiRateLimitPluginWithPrefixV1;
get v2(): TwitterApiRateLimitPluginWithPrefixV2;
}
export declare class TwitterApiRateLimitPluginWithPrefix {
plugin: TwitterApiRateLimitPlugin;
protected prefix: TAvailablePrefix;
constructor(plugin: TwitterApiRateLimitPlugin, prefix: TAvailablePrefix);
getRateLimit(endpoint: string, method?: string): void | TwitterRateLimit | Promise<void | TwitterRateLimit>;
hasHitRateLimit(rateLimit: TwitterRateLimit | void): boolean;
isRateLimitStatusObsolete(rateLimit: TwitterRateLimit | void): boolean;
}
export declare class TwitterApiRateLimitPluginWithPrefixV1 extends TwitterApiRateLimitPluginWithPrefix {
get upload(): TwitterApiRateLimitPluginWithPrefix;
get stream(): TwitterApiRateLimitPluginWithPrefix;
}
export declare class TwitterApiRateLimitPluginWithPrefixV2 extends TwitterApiRateLimitPluginWithPrefix {
get labs(): TwitterApiRateLimitPluginWithPrefix;
}
export default TwitterApiRateLimitPlugin;