@tutkli/jikan-ts
Version:
Node.js wrapper for the Jikan API with built-in typings.
2 lines (1 loc) • 8.94 kB
JavaScript
var o={animeFullById:"/anime/{id}/full",animeById:"/anime/{id}",animeCharacters:"/anime/{id}/characters",animeStaff:"/anime/{id}/staff",animeEpisodes:"/anime/{id}/episodes",animeEpisodeById:"/anime/{id}/episodes/{episode}",animeNews:"/anime/{id}/news",animeForum:"/anime/{id}/forum",animeVideos:"/anime/{id}/videos",animeVideosEpisodes:"/anime/{id}/videos/episodes",animePictures:"/anime/{id}/pictures",animeStatistics:"/anime/{id}/statistics",animeMoreInfo:"/anime/{id}/moreinfo",animeRecommendations:"/anime/{id}/recommendations",animeUserUpdates:"/anime/{id}/userupdates",animeReviews:"/anime/{id}/reviews",animeRelations:"/anime/{id}/relations",animeThemes:"/anime/{id}/themes",animeExternal:"/anime/{id}/external",animeStreaming:"/anime/{id}/streaming",animeSearch:"/anime"};import T from"axios";import{setupCache as U}from"axios-cache-interceptor";var S="https://api.jikan.moe/v4";var F=(e)=>{return"cache"in e.defaults},g=(e,r={})=>{let m=e??T.create({baseURL:S,headers:{"Content-Type":"application/json"}});if(F(m))return m;return U(m,{...r,cacheTakeover:!1})};var I=(e)=>{return console.info(`[Request] ${e.method?.toUpperCase()??""} | ${e.url??""}`),e},V=(e)=>{throw console.error(`[Request Error] CODE ${e.code??"UNKNOWN"} | ${e.message}`),e},v=(e)=>{return console.info(`[Request Response] ${e.config.method?.toUpperCase()??""} | ${e.config.url??""}`,e.data),e},w=(e)=>{throw console.error(`[ Response Error ] CODE ${e.code??"UNKNOWN"} | ${e.message}`),e};class t{api;constructor(e={}){if(this.api=g(e.axiosInstance,e.cacheOptions),e.enableLogging)this.addLoggingInterceptors()}async getResource(e,r={},m={}){return(await this.api.get(this.replacePathParams(e,r),{params:m})).data}replacePathParams(e,r){let m=e;for(let c of Object.keys(r)){if(!RegExp(`{${c}}`).exec(m))throw new Error(`Path does not contain "${c}" parameter.`);m=m.replace(`{${c}}`,String(r[c]))}return m}addLoggingInterceptors(){this.api.interceptors.request.use((e)=>I(e),(e)=>V(e)),this.api.interceptors.response.use((e)=>v(e),(e)=>w(e))}}class f extends t{getAnimeFullById(e){return this.getResource(o.animeFullById,{id:e})}getAnimeById(e){return this.getResource(o.animeById,{id:e})}getAnimeCharacters(e){return this.getResource(o.animeCharacters,{id:e})}getAnimeStaff(e){return this.getResource(o.animeStaff,{id:e})}getAnimeEpisodes(e,r=1){return this.getResource(o.animeEpisodes,{id:e},{page:r})}getAnimeEpisodeById(e,r){return this.getResource(o.animeEpisodeById,{id:e,episode:r})}getAnimeNews(e,r){return this.getResource(o.animeNews,{id:e},{page:r})}getAnimeForum(e,r){return this.getResource(o.animeForum,{id:e},r?{filter:r}:void 0)}getAnimeVideos(e){return this.getResource(o.animeVideos,{id:e})}getAnimeEpisodeVideos(e,r=1){return this.getResource(o.animeVideosEpisodes,{id:e},{page:r})}getAnimePictures(e){return this.getResource(o.animePictures,{id:e})}getAnimeStatistics(e){return this.getResource(o.animeStatistics,{id:e})}getAnimeMoreInfo(e){return this.getResource(o.animeMoreInfo,{id:e})}getAnimeRecommendations(e){return this.getResource(o.animeRecommendations,{id:e})}getAnimeRelations(e){return this.getResource(o.animeRelations,{id:e})}getAnimeExternal(e){return this.getResource(o.animeExternal,{id:e})}getAnimeSearch(e){return this.getResource(o.animeSearch,{},e)}}var i={characterFullById:"/characters/{id}/full",characterById:"/characters/{id}",characterAnime:"/characters/{id}/anime",charactersManga:"/characters/{id}/manga",characterVoiceActors:"/characters/{id}/voices",characterPictures:"/characters/{id}/pictures",characterSearch:"/characters"};class l extends t{getCharacterFullById(e){return this.getResource(i.characterFullById,{id:e})}getCharacterById(e){return this.getResource(i.characterById,{id:e})}getCharacterAnime(e){return this.getResource(i.characterAnime,{id:e})}getCharacterManga(e){return this.getResource(i.charactersManga,{id:e})}getCharacterVoiceActors(e){return this.getResource(i.characterVoiceActors,{id:e})}getCharacterPictures(e){return this.getResource(i.characterPictures,{id:e})}getCharacterSearch(e){return this.getResource(i.characterSearch,{},e)}}var n={clubById:"/clubs/{id}",clubMembers:"/clubs/{id}/members",clubStaff:"/clubs/{id}/staff",clubRelations:"/clubs/{id}/relations",clubSearch:"/clubs"};class y extends t{getClubsById(e){return this.getResource(n.clubById,{id:e})}getClubMembers(e,r={}){return this.getResource(n.clubMembers,{id:e},r)}getClubStaff(e){return this.getResource(n.clubStaff,{id:e})}getClubRelations(e){return this.getResource(n.clubRelations,{id:e})}getClubSearch(e={}){return this.getResource(n.clubSearch,{},e)}}var b={animeGenres:"/genres/anime",mangaGenres:"/genres/manga"};class k extends t{getAnimeGenres(e){return this.getResource(b.animeGenres,{},{filter:e})}getMangaGenres(e){return this.getResource(b.mangaGenres,{},{filter:e})}}var N={magazines:"/magazines"};class R extends t{getMagazines(e={}){return this.getResource(N.magazines,{},e)}}var a={mangaSearch:"/manga",mangaFullById:"/manga/{id}/full",mangaById:"/manga/{id}",mangaCharacters:"/manga/{id}/characters",mangaNews:"manga/{id}/news",mangaTopics:"/manga/{id}/forum",mangaPictures:"/manga/{id}/pictures",mangaStatistics:"/manga/{id}/statistics",mangaMoreInfo:"/manga/{id}/moreinfo",mangaRelations:"manga/{id}/relations",mangaExternal:"/manga/{id}/external",mangaRecommendations:"/manga/{id}/recommendations"};class J extends t{getMangaFullById(e){return this.getResource(a.mangaFullById,{id:e})}getMangaById(e){return this.getResource(a.mangaById,{id:e})}getMangaCharacters(e){return this.getResource(a.mangaCharacters,{id:e})}getMangaNews(e){return this.getResource(a.mangaNews,{id:e})}getMangaTopics(e,r){return this.getResource(a.mangaTopics,{id:e},r?{filter:r}:void 0)}getMangaPictures(e){return this.getResource(a.mangaPictures,{id:e})}getMangaStatistics(e){return this.getResource(a.mangaStatistics,{id:e})}getMangaMoreInfo(e){return this.getResource(a.mangaMoreInfo,{id:e})}getMangaRecommendations(e){return this.getResource(a.mangaRecommendations,{id:e})}getMangaRelations(e){return this.getResource(a.mangaRelations,{id:e})}getMangaExternal(e){return this.getResource(a.mangaExternal,{id:e})}getMangaSearch(e){return this.getResource(a.mangaSearch,{},e)}}var p={randomAnime:"/random/anime",randomManga:"/random/manga",randomCharacters:"/random/characters"};class h extends t{getRandomAnime(){return this.getResource(p.randomAnime)}getRandomManga(){return this.getResource(p.randomManga)}getRandomCharacters(){return this.getResource(p.randomCharacters)}}var M={schedules:"/schedules"};class _ extends t{getSchedules(e){return this.getResource(M.schedules,{},e)}}var s={season:"/seasons/{year}/{season}",seasonNow:"/seasons/now",seasonsList:"/seasons",seasonUpcoming:"/seasons/upcoming"};class d extends t{getSeason(e,r,m){return this.getResource(s.season,{year:e,season:r},m)}getSeasonNow(e){return this.getResource(s.seasonNow,{},e)}getSeasonsList(){return this.getResource(s.seasonsList)}getSeasonUpcoming(e){return this.getResource(s.seasonUpcoming,{},e)}}var x={topAnime:"/top/anime",topManga:"/top/manga",topCharacters:"/top/characters"};class A extends t{getTopAnime(e){return this.getResource(x.topAnime,{},e)}getTopManga(e){return this.getResource(x.topManga,{},e)}getTopCharacters(e){return this.getResource(x.topCharacters,{},e)}}var u={watchRecentEpisodes:"/watch/episodes",watchPopularEpisodes:"/watch/episodes/popular",watchRecentPromos:"/watch/promos",watchPopularPromos:"/watch/promos/popular"};class C extends t{getWatchRecentEpisodes(){return this.getResource(u.watchRecentEpisodes)}getWatchPopularEpisodes(){return this.getResource(u.watchPopularEpisodes)}getWatchRecentPromos(e={}){return this.getResource(u.watchRecentPromos,{},e)}getWatchPopularPromos(){return this.getResource(u.watchPopularPromos)}}class ${anime;characters;clubs;genres;magazines;manga;top;schedules;seasons;random;watch;constructor(e={}){let r=g(e.axiosInstance,e.cacheOptions);this.anime=new f({axiosInstance:r,...e}),this.characters=new l({axiosInstance:r,...e}),this.clubs=new y({axiosInstance:r,...e}),this.genres=new k({axiosInstance:r,...e}),this.magazines=new R({axiosInstance:r,...e}),this.manga=new J({axiosInstance:r,...e}),this.top=new A({axiosInstance:r,...e}),this.schedules=new _({axiosInstance:r,...e}),this.seasons=new d({axiosInstance:r,...e}),this.random=new h({axiosInstance:r,...e}),this.watch=new C({axiosInstance:r,...e})}}export{w as handleResponseError,v as handleResponse,V as handleRequestError,I as handleRequest,u as WatchEndpoints,C as WatchClient,x as TopEndpoints,A as TopClient,s as SeasonsEndpoints,d as SeasonsClient,_ as SchedulesClient,p as RandomEndpoints,h as RandomClient,a as MangaEndpoints,J as MangaClient,N as MagazinesEndpoints,R as MagazinesClient,$ as JikanClient,b as GenresEndpoints,k as GenresClient,n as ClubsEndpoints,y as ClubsClient,i as CharactersEndpoints,l as CharactersClient,t as BaseClient,S as BASE_URL,o as AnimeEndpoints,f as AnimeClient};