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