/jikan-ts

Jikan API wrapper for Typescript and NodeJS with built in typings.

Primary LanguageTypeScriptMIT LicenseMIT

jikan-ts

jikan-ts-890w

Language Shield GitHub License Code Style Shield NPM Downloads npm bundle size

Jikan API wrapper for Typescript and Node.js with built-in typings.

Features

  • 💅 Fully typed
  • ♻ Http Request Cache
  • 📄 Logging
  • 📦 ESM with tree shaking support

Installation

npm install --save @tutkli/jikan-ts axios axios-cache-interceptor
# or
yarn add @tutkli/jikan-ts axios axios-cache-interceptor

Example

Using a specific client, like AnimeClient:

import { AnimeClient, JikanResponse, Anime } from '@tutkli/jikan-ts';

const animeClient = new AnimeClient();

animeClient
  .getAnimeById(1)
  .then((response: JikanResponse<Anime>) => {
    /* ... */
  })

Or, using the JikanClient:

import { JikanClient, JikanResponse, Anime } from '@tutkli/jikan-ts';

const jikanClient = new JikanClient();

jikanClient.anime
  .getAnimeById(1)
  .then((response: JikanResponse<Anime>) => {
    /* ... */
  })

Client configuration

Cache Configuration

Jikan-ts uses axios-cache-interceptor to store request results. To use a specific configuration, pass the cacheOptions argument when instantiating a client:

import { AnimeClient } from '@tutkli/jikan-ts';

const animeClient = new AnimeClient({
    cacheOptions: { ... } // axios-cache-interceptor options
  }
);

For more information, check out the axios-cache-interceptor Documentation.

Logging

To enable logging, pass the enableLogging argument as true.

import { AnimeClient } from '@tutkli/jikan-ts';

const animeClient = new AnimeClient({
  enableLogging: true,
});

Available Clients

  • AnimeClient
  • CharactersClient
  • GenresClient
  • MangaClient
  • TopClient
  • SchedulesClient
  • SeasonsClient
  • RandomClient
  • JikanClient (Main client)

Leave you feedback