@tutkli/jikan-ts
Version:
Node.js wrapper for the Jikan API with built-in typings.
61 lines (60 loc) • 2.22 kB
TypeScript
import type { JikanImages, JikanNamedResource, JikanResource, JikanResourcePeriod, JikanResourceRelation, JikanResourceTitle } from '../Common';
import type { AnimeYoutubeVideo } from './anime-video.model';
export interface Anime {
mal_id: number;
url: string;
images: JikanImages;
trailer: AnimeYoutubeVideo;
approved: boolean;
titles: JikanResourceTitle[];
title: string;
title_english?: string | null;
title_japanese?: string | null;
title_synonyms: string[];
type: AnimeType | null;
source: string | null;
episodes: number | null;
status: AnimeStatus | null;
airing: boolean;
aired: JikanResourcePeriod;
duration: string | null;
rating?: AnimeRatingString | null;
score: number | null;
scored_by: number | null;
rank: number | null;
popularity: number | null;
members: number | null;
favorites: number | null;
synopsis: string | null;
background: string | null;
season: AnimeSeason | null;
year: number | null;
broadcast: AnimeBroadcast;
producers: JikanResource[];
licensors: JikanResource[];
studios: JikanResource[];
genres: JikanResource[];
explicit_genres: JikanResource[];
themes: JikanResource[];
demographics: JikanResource[];
relations?: JikanResourceRelation[];
theme?: AnimeTheme;
external?: JikanNamedResource[];
streaming?: JikanNamedResource[];
}
export interface AnimeBroadcast {
day: string | null;
time: string | null;
timezone: string | null;
string: string | null;
}
export interface AnimeTheme {
openings: string[];
endings: string[];
}
export type AnimeType = 'TV' | 'OVA' | 'Movie' | 'Special' | 'ONA' | 'Music';
export type AnimeSearchType = 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music' | 'cm' | 'pv' | 'tv_special';
export type AnimeStatus = 'Finished Airing' | 'Currently Airing' | 'Not yet aired';
export type AnimeRating = 'g' | 'pg' | 'pg13' | 'r17' | 'r' | 'rx';
export type AnimeRatingString = 'G - All Ages' | 'PG - Children' | 'PG-13 - Teens 13 or older' | 'R - 17+ (violence & profanity)' | 'R+ - Mild Nudity' | 'Rx - Hentai';
export type AnimeSeason = 'spring' | 'summer' | 'fall' | 'winter';