UNPKG

aniki

Version:

Node.js APIs wrapper for anime/manga related content.

291 lines (272 loc) 8.54 kB
// Handling errors import { AnikiHooks, FetchConfig } from "../../core/index"; import type { // Interfaces IKitsuAnime, IKitsuAnimeSingle, IKitsuChapter, IKitsuChapters, IKitsuEpisode, IKitsuEpisodes, IKitsuError, IKitsuManga, IKitsuMangaSingle, TKitsuAnimeFind, TKitsuAnimeList, TKitsuMangaFind, TKitsuMangaList, } from "./interfaces"; // Main classes. /** * @class * @description A class using the Kitsu.app API to retrieve anime information with multiple methods. * @constructor * * @template AT A token-type flag that switches certain API response types between restricted and unrestricted variants. * * @example * // CJS * const { AnimeKitsu } = require("aniki"); * // ESM / TS * import { AnimeKitsu } from "aniki"; * * * // If you got an access token with your custom auth system: * const anime = new AnimeKitsu("abdcefg123456789"); * * //Need to add things in the configuration? * const anime = new AnimeKitsu("", { * headers: { * // ... * } * }) * * anime.find({ query: "Oshi no Ko" }).then(a => console.log(a.data[0])); * anime.find(3163).then(a => console.log(a.data)); * anime.findUnique(3600).then(a => console.log(a.data)); * * @since 1.0.2 */ declare class AnimeKitsu<AT extends string = ""> { private config: FetchConfig; constructor( access_token?: AT, /** * Any supplementary configuration that you need to add for the fetch function. */ config?: FetchConfig, ); /** * @method * @description Searches for anime using the provided parameters. * * @param params The search parameters for the request. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the anime results, or `undefined` if an error occurs. * * @since 1.0.2 */ find( params: TKitsuAnimeFind<AT>, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuAnime> | undefined>; /** * @method * @description Fetch a specific anime using an ID. * * @param param The anime ID. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the single anime result, or `undefined` if an error occurs. * * @since 1.0.2 */ find( param: number, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuAnimeSingle> | undefined>; /** * @method * @description Retrieves an anime by its ID. * * @param id The anime ID. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the single anime result, or `undefined` if an error occurs. * * @since 1.3.0 */ findUnique( id: number | `${number}`, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuAnimeSingle> | undefined>; /** * * @method * @description Retrieves a list of anime using different parameters. * * @param params The parameters for the request. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the anime list, or `undefined` if an error occurs. * @since 1.0.2 * */ findMany( params: TKitsuAnimeList<AT>, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuAnime> | undefined>; /** * @method * @description Retrieves a specific anime episode using its episode ID. * * @param id The episode ID. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the episode data, or `undefined` if an error occurs. * * @since 1.3.0 */ episode( id: number | `${number}`, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuEpisode> | undefined>; /** * @method * @description Retrieves all episodes for a given anime using its media ID. * * @param mediaId The parameters to find all episodes of an anime using its ID. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing all episodes for the anime, or `undefined` if an error occurs. * * @since 1.3.5 */ episodes( mediaId: number | `${number}`, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuEpisodes> | undefined>; } /** * @class * * @description A class using the Kitsu.app API to retrieve manga information with multiple methods. * @constructor * * @template AT A token-type flag that switches certain API response types between restricted and unrestricted variants. * * @example * // CJS * const { MangaKitsu } = require("aniki"); * // ESM / TS * import { MangaKitsu } from "aniki"; * * const manga = new MangaKitsu(); * * // If you got an access token with your custom auth system: * const manga = new MangaKitsu("abdcefg123456789"); * * //Need to add things in the configuration? * const manga = new MangaKitsu("", { * headers: { * // ... * } * }) * * manga.find({ query: "Oshi no Ko" }).then(m => console.log(m.data[0])); * manga.findUnique(3600).then(m => console.log(m.data)); * * @since 1.0.2 */ declare class MangaKitsu<AT extends string = ""> { private config: FetchConfig; constructor( access_token?: AT, /** * Any supplementary configuration that you need to add for the fetch function. */ config?: FetchConfig, ); // Methods /** * @method * @description Searches for manga using the provided parameters. * * @param params The search parameters for the request. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the manga list. * * @since 1.0.2 */ find( params: TKitsuMangaFind<AT>, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuManga> | undefined>; /** * @method * @description Get a specific manga with its id. * * @param params The ID for the request. (example: 1265) * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the single manga result, or `undefined` if an error occurs. * * @since 1.0.2 */ find( param: number, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuMangaSingle> | undefined>; /** * @method * @description Retrieves a manga by its ID. * * @param id The manga ID. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing a single manga, or `undefined` if an error occurs. * * @since 1.3.0 */ findUnique( id: number | `${number}`, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuMangaSingle> | undefined>; /** * @method * @description Retrieves a list of anime. * * @param params The parameters for the request. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the manga list. * * @since 1.0.2 */ findMany( params: TKitsuMangaList<AT>, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuManga> | undefined>; /** * @method * @description Retrieves a manga chapter by its ID. * * @param id The chapter ID. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing the chapter. * * @since 1.3.0 */ chapter( id: number | `${number}`, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuChapter> | undefined>; /** * @method * @description * * @param mangaId Retrieves all chapters for a manga by its ID. * @param hooks Object with functions inside to execute code before, after a request and on error. * @returns A Promise containing all chapters for the manga. * * @since 1.3.5 */ chapters( mangaId: number | `${number}`, hooks: AnikiHooks<IKitsuError>, ): Promise<Readonly<IKitsuChapters> | undefined>; } export type * from "./interfaces"; export { AnimeKitsu, MangaKitsu };