UNPKG

@re621/zestyapi

Version:

Comprehensive JS wrapper for e621.net API

51 lines (50 loc) 1.51 kB
import APIResponse from "../responses/APIResponse"; export default class RequestQueue { private static queue; private static running; /** * Add a request to the queue. * Requests are processed automatically, in the order they were added. * @param {string} requestInfo Target URL * @param {RequestInit} requestInit Additional request data * @param {number} timeout Timeout before the next request * @returns */ static add(requestInfo: string, requestInit?: RequestInit, timeout?: number): Promise<QueueResponse>; /** * Begins queue execution, if it's not running already */ private static run; } /** * Response received from the API. * Data is in a raw format, and likely needs to be reformatted */ export interface QueueResponse { status: ResponseStatus; data: any; } /** * Formatted variant of `QueueResponse`. * Data has been reformatted to fit the APIResponse interface */ export interface FormattedResponse<T extends APIResponse> extends GenericResponse<T> { data: T[]; } export interface GenericResponse<T> extends QueueResponse { data: T[]; } /** * Basic response status. * Should accompany every API response. */ export interface ResponseStatus { /** HTTP Response code */ code: number; /** URL to which the request is made */ url: string | null; /** Optional message, clarifying the HTTP code */ message?: string; /** Extra data being passed in the response */ extra?: string; }