UNPKG

@re621/zestyapi

Version:

Comprehensive JS wrapper for e621.net API

91 lines (90 loc) 3.27 kB
import { PrimitiveType } from "./components/UtilType"; import BlipsEndpoint from "./endpoints/Blips"; import CommentsEndpoint from "./endpoints/Comments"; import Favorites from "./endpoints/Favorites"; import ForumPostsEndpoint from "./endpoints/ForumPosts"; import ForumTopicsEndpoint from "./endpoints/ForumTopics"; import IQDBQueriesEndpoint from "./endpoints/IQDBQueries"; import NotesEndpoint from "./endpoints/Notes"; import PoolsEndpoint from "./endpoints/Pools"; import PostEventsEndpoint from "./endpoints/PostEvents"; import PostsEndpoint from "./endpoints/Posts"; import PostSets from "./endpoints/PostSets"; import PostVotes from "./endpoints/PostVotes"; import TagAliasesEndpoint from "./endpoints/TagAliases"; import TagImplicationsEndpoint from "./endpoints/TagImplications"; import TagsEndpoint from "./endpoints/Tags"; import UserFeedbacksEndpoint from "./endpoints/UserFeedbacks"; import UsersEndpoint from "./endpoints/Users"; import UtilityEndpoint from "./endpoints/Utility"; import WikiPagesEndpoint from "./endpoints/WikiPages"; export default class ZestyAPI { private static instance; private userAgent; private rateLimit; private domain; private authToken; private authLogin; Blips: BlipsEndpoint; Comments: CommentsEndpoint; Favorites: Favorites; ForumPosts: ForumPostsEndpoint; ForumTopics: ForumTopicsEndpoint; IQDBQueries: IQDBQueriesEndpoint; Notes: NotesEndpoint; Pools: PoolsEndpoint; Posts: PostsEndpoint; PostEvents: PostEventsEndpoint; PostSets: PostSets; PostVotes: PostVotes; Tags: TagsEndpoint; TagAliases: TagAliasesEndpoint; TagImplications: TagImplicationsEndpoint; Users: UsersEndpoint; UserFeedbacks: UserFeedbacksEndpoint; Utility: UtilityEndpoint; WikiPages: WikiPagesEndpoint; private constructor(); /** * Get an instance of a E621 object, with access to various endpoints * @param {APIConfig} config Configuration object. Not necessary if `connect()` was called before. * @returns {ZestyAPI} E621 object */ static connect(config?: APIConfig): ZestyAPI; login(auth: AuthToken | AuthLogin): void; logout(): void; getAuthToken(): AuthToken; getAuthLogin(): AuthLogin; get isAuthSet(): boolean; /** * Method used to make requests to E621's API. * It is strongly recommended not to use it directly, and to instead rely on endpoint methods. * @param {string} endpoint Endpoint address * @param {RequestConfig} config Request parameters * @returns {Promise<any>} Promise that is fulfilled when the request receives a response */ makeRequest(endpoint: string, config?: RequestConfig): Promise<any>; } interface APIConfig { userAgent?: string; rateLimit?: 500 | number; domain?: "https://e621.net" | "https://e926.net" | string; authToken?: AuthToken; authLogin?: AuthLogin; debug?: boolean; } declare type AuthToken = string; interface AuthLogin { username: string; apiKey: string; } interface RequestConfig { method?: "GET" | "POST" | "HEAD" | "PATCH" | "DELETE"; query?: APIQuery; body?: APIQuery; rateLimit?: number; } export interface APIQuery { [prop: string]: PrimitiveType; } export {};