@re621/zestyapi
Version:
Comprehensive JS wrapper for e621.net API
51 lines (50 loc) • 1.51 kB
TypeScript
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;
}