feat(new types): added several new types & made types D.R.Y
This commit is contained in:
+18
-16
@@ -1,5 +1,3 @@
|
||||
import { HttpError } from "http-errors";
|
||||
|
||||
export interface Anime {
|
||||
id: string | null;
|
||||
name: string | null;
|
||||
@@ -15,29 +13,33 @@ export interface Anime {
|
||||
|
||||
type CommonAnimeProps = "id" | "name" | "poster";
|
||||
|
||||
export interface Top10Anime extends Pick<Anime, CommonAnimeProps> {
|
||||
export interface Top10Anime extends Pick<Anime, CommonAnimeProps | "episodes"> {
|
||||
rank: number | null;
|
||||
eps: {
|
||||
sub: number | null;
|
||||
dub: number | null;
|
||||
};
|
||||
}
|
||||
|
||||
export type Top10AnimeTimePeriod = "day" | "week" | "month";
|
||||
|
||||
export interface AnimeSearchResult {
|
||||
animes: Array<Anime> | HttpError;
|
||||
mostPopularAnimes: Array<MostPopularAnime> | HttpError;
|
||||
totalPages: number;
|
||||
currentPage: number;
|
||||
hasNextPage: boolean;
|
||||
}
|
||||
|
||||
export interface MostPopularAnime extends Pick<Anime, CommonAnimeProps> {
|
||||
jname: string | null;
|
||||
otherInfo: string[] | [];
|
||||
otherInfo: string[];
|
||||
}
|
||||
|
||||
export interface SpotlightAnime
|
||||
extends MostPopularAnime,
|
||||
Pick<Top10Anime, "rank"> {
|
||||
description: string | null;
|
||||
}
|
||||
|
||||
export interface TrendingAnime
|
||||
extends Pick<Anime, CommonAnimeProps>,
|
||||
Pick<Top10Anime, "rank"> {}
|
||||
|
||||
export interface LatestEpisodeAnime extends Anime {}
|
||||
|
||||
export interface TopUpcomingAnime extends Anime {}
|
||||
|
||||
export interface TopAiringAnime extends MostPopularAnime {}
|
||||
|
||||
export type AnimeCategories =
|
||||
| "most-favorite"
|
||||
| "most-popular"
|
||||
|
||||
Reference in New Issue
Block a user