twitter-api-v2
Version:
Strongly typed, full-featured, light, versatile yet powerful Twitter API v1.1 and v2 client for Node.js.
46 lines (45 loc) • 2.44 kB
TypeScript
/// <reference types="node" />
import TweetStream from '../stream/TweetStream';
import { ApiRequestError, ApiResponseError } from '../types';
import type { ErrorV1, ErrorV2, TwitterRateLimit, TwitterResponse } from '../types';
import type { TRequestFullData, TRequestFullStreamData } from './request-maker.mixin';
import type { IncomingMessage, ClientRequest } from 'http';
declare type TRequestReadyPayload = {
req: ClientRequest;
res: IncomingMessage;
requestData: TRequestFullData | TRequestFullStreamData;
};
declare type TReadyRequestResolver = (value: TRequestReadyPayload) => void;
declare type TResponseResolver<T> = (value: TwitterResponse<T>) => void;
declare type TRequestRejecter = (error: ApiRequestError) => void;
declare type TResponseRejecter = (error: ApiResponseError) => void;
interface IBuildErrorParams {
res: IncomingMessage;
data: any;
rateLimit?: TwitterRateLimit;
code: number;
}
export declare class RequestHandlerHelper<T> {
protected requestData: TRequestFullData | TRequestFullStreamData;
protected req: ClientRequest;
protected responseData: string;
constructor(requestData: TRequestFullData | TRequestFullStreamData);
get hrefPathname(): string;
protected isFormEncodedEndpoint(): boolean;
protected getRateLimitFromResponse(res: IncomingMessage): TwitterRateLimit | undefined;
protected createRequestError(error: Error): ApiRequestError;
protected formatV1Errors(errors: ErrorV1[]): string;
protected formatV2Error(error: ErrorV2): string;
protected createResponseError({ res, data, rateLimit, code }: IBuildErrorParams): ApiResponseError;
protected getParsedResponse(res: IncomingMessage): any;
protected requestErrorHandler(reject: TRequestRejecter, requestError: Error): void;
protected classicResponseHandler(resolve: TResponseResolver<T>, reject: TResponseRejecter, res: IncomingMessage): void;
protected onResponseEndHandler(resolve: TResponseResolver<T>, reject: TResponseRejecter, res: IncomingMessage): void;
protected streamResponseHandler(resolve: TReadyRequestResolver, reject: TResponseRejecter, res: IncomingMessage): void;
protected debugRequest(): void;
protected buildRequest(): void;
makeRequest(): Promise<TwitterResponse<T>>;
makeRequestAsStream(): Promise<TweetStream<T>>;
makeRequestAndResolveWhenReady(): Promise<TRequestReadyPayload>;
}
export default RequestHandlerHelper;