tmdbrjs
Version:
A TypeScript wrapper for The Movie Database (TMDB) API
393 lines • 9.37 kB
TypeScript
import { Person } from '../../people/types/Person';
export interface CastMember extends Person {
castId: number;
character: string;
creditId: string;
order: number;
knownForDepartment: string;
}
export interface CrewMember extends Person {
creditId: string;
department: string;
job: string;
}
export interface TvCredits {
id: number;
cast: CastMember[];
crew: CrewMember[];
}
export interface AggregateCredits {
id: number;
cast: Array<CastMember & {
roles: Array<{
creditId: string;
character: string;
episodeCount: number;
}>;
}>;
crew: Array<CrewMember & {
jobs: Array<{
creditId: string;
job: string;
episodeCount: number;
}>;
}>;
}
export interface TvReviews {
reviews: {
id: number;
page: number;
results: Array<{
id: string;
author: string;
content: string;
createdAt: string;
url: string;
}>;
totalPages: number;
totalResults: number;
};
}
export interface SimilarTvShows {
similar: {
id: number;
page: number;
results: TvShow[];
totalPages: number;
totalResults: number;
};
}
export interface TvVideos {
videos: {
id: number;
results: Array<{
id: string;
key: string;
name: string;
site: string;
size: number;
type: string;
}>;
};
}
export interface TvRecommendations {
recommendations: {
page: number;
results: TvShow[];
totalPages: number;
totalResults: number;
};
}
export interface TvKeywords {
keywords: {
id: number;
keywords: Array<{
id: number;
name: string;
}>;
};
}
export interface TvTranslations {
translations: {
id: number;
translations: Array<{
iso31661: string;
iso6391: string;
name: string;
englishName: string;
data: {
homepage: string;
overview: string;
name: string;
tagline: string;
};
}>;
};
}
export interface TvContentRatings {
contentRatings: {
id: number;
results: Array<{
iso31661: string;
rating: string;
}>;
};
}
export interface TvExternalIds {
externalIds: {
id: number;
imdbId: string | null;
freebaseMid: string | null;
freebaseId: string | null;
tvdbId: number | null;
tvrageId: number | null;
wikidataId: string | null;
facebookId: string | null;
instagramId: string | null;
twitterId: string | null;
};
}
export interface TvAccountStates {
accountStates: {
id: number;
favorite: boolean;
rated: boolean | {
value: number;
};
watchlist: boolean;
};
}
export interface TvImages {
images: {
id: number;
backdrops: Array<{
aspectRatio: number;
filePath: string;
height: number;
iso6391: string | null;
voteAverage: number;
voteCount: number;
width: number;
}>;
posters: Array<{
aspectRatio: number;
filePath: string;
height: number;
iso6391: string | null;
voteAverage: number;
voteCount: number;
width: number;
}>;
};
}
export interface TvWatchProviders {
watchProviders: {
id: number;
results: Record<string, {
link: string;
flatrate?: Array<{
logoPath: string;
providerId: number;
providerName: string;
displayPriority: number;
}>;
rent?: Array<{
logoPath: string;
providerId: number;
providerName: string;
displayPriority: number;
}>;
buy?: Array<{
logoPath: string;
providerId: number;
providerName: string;
displayPriority: number;
}>;
}>;
};
}
export interface TvAlternativeTitles {
alternativeTitles: {
id: number;
results: Array<{
iso31661: string;
title: string;
type: string;
}>;
};
}
export interface TvEpisodeGroups {
episodeGroups: {
id: number;
results: Array<{
description: string;
episodeCount: number;
groupCount: number;
id: string;
name: string;
network: {
id: number;
logoPath: string;
name: string;
originCountry: string;
};
type: number;
}>;
};
}
export interface TvScreenedTheatrically {
screenedTheatrically: {
id: number;
results: Array<{
id: number;
episodeNumber: number;
seasonNumber: number;
}>;
};
}
export interface TvLists {
lists: {
id: number;
page: number;
results: Array<{
description: string;
favoriteCount: number;
id: number;
itemCount: number;
iso6391: string;
listType: string;
name: string;
posterPath: string | null;
}>;
totalPages: number;
totalResults: number;
};
}
export interface TvChanges {
changes: {
changes: Array<{
key: string;
items: Array<{
id: string;
action: string;
time: string;
value: string | {
episodeId: number;
episodeNumber: number;
};
originalValue?: string;
}>;
}>;
};
}
export interface PopularTvShows {
page: number;
results: TvShow[];
totalPages: number;
totalResults: number;
}
export interface TopRatedTvShows {
page: number;
results: TvShow[];
totalPages: number;
totalResults: number;
}
export interface AiringTodayTvShows {
page: number;
results: TvShow[];
totalPages: number;
totalResults: number;
}
export interface OnTheAirTvShows {
page: number;
results: TvShow[];
totalPages: number;
totalResults: number;
}
type Genre = {
id: number;
name: string;
};
type Network = {
id: number;
logoPath: string;
name: string;
originCountry: string;
};
type ProductionCompany = {
id: number;
logoPath: string;
name: string;
originCountry: string;
};
type ProductionCountry = {
iso31661: string;
name: string;
};
type SpokenLanguage = {
englishName: string;
iso6391: string;
name: string;
};
type Season = {
airDate: string;
episodeCount: number;
id: number;
name: string;
overview: string;
posterPath: string;
seasonNumber: number;
};
type Creator = {
id: number;
creditId: string;
name: string;
gender: number;
profilePath: string;
};
export type TvShow = {
adult: boolean;
backdropPath: string;
createdBy: Creator[];
episodeRunTime: number[];
firstAirDate: string;
genres: Genre[];
homepage: string;
id: number;
inProduction: boolean;
languages: string[];
lastAirDate: string;
lastEpisodeToAir: {
airDate: string;
episodeNumber: number;
id: number;
name: string;
overview: string;
productionCode: string;
runtime: number;
seasonNumber: number;
showId: number;
stillPath: string;
voteAverage: number;
voteCount: number;
};
name: string;
nextEpisodeToAir: {
airDate: string;
episodeNumber: number;
id: number;
name: string;
overview: string;
productionCode: string;
runtime: number;
seasonNumber: number;
showId: number;
stillPath: string;
voteAverage: number;
voteCount: number;
} | null;
networks: Network[];
numberOfEpisodes: number;
numberOfSeasons: number;
originCountry: string[];
originalLanguage: string;
originalName: string;
overview: string;
popularity: number;
posterPath: string;
productionCompanies: ProductionCompany[];
productionCountries: ProductionCountry[];
seasons: Season[];
spokenLanguages: SpokenLanguage[];
status: string;
tagline: string;
type: string;
voteAverage: number;
voteCount: number;
};
export interface Options<T extends TvAppendOptions[]> {
include?: T;
}
export type TvAppendOptions = 'credits' | 'aggregateCredits' | 'reviews' | 'similar' | 'videos' | 'images' | 'recommendations' | 'keywords' | 'translations' | 'contentRatings' | 'externalIds' | 'accountStates' | 'watchProviders' | 'alternativeTitles' | 'episodeGroups' | 'screenedTheatrically' | 'lists' | 'changes';
export {};
//# sourceMappingURL=TvShow.d.ts.map