@zenuu/jikan-ts
v2.0.3
Published
(FORK) Node.js wrapper for the Jikan API with built-in typings.
Downloads
14
Maintainers
Readme
jikan-ts
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
}
);
Custom Axios instance
Jikan uses axios
as an http
client and if you are not satisfied with the default client settings, then you can build your instance by passing it to the optional axiosInstance
argument
import { AnimeClient } from '@tutkli/jikan-ts';
import Axios from 'axios';
const animeClient = new AnimeClient({
axiosInstance: Axios.create({ ... })
}
);
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
- Did you find this project useful? Leave a ⭐
- Found a problem? Create an issue 🔎
- Want to contribute? Submit a PR 📑