diff --git a/src/endpoints/tv-episode.ts b/src/endpoints/tv-episode.ts index f7e9e7d..88ee28e 100644 --- a/src/endpoints/tv-episode.ts +++ b/src/endpoints/tv-episode.ts @@ -12,6 +12,7 @@ import { AppendToResponse, Changes, TvEpisodeChangeValue, + AppendToResponseTvEpisodeKey, } from '..'; import { BaseEndpoint } from './base'; @@ -24,7 +25,7 @@ export class TvEpisodesEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( episodeSelection: EpisodeSelection, appendToResponse?: T, options?: LanguageOption @@ -37,7 +38,7 @@ export class TvEpisodesEndpoint extends BaseEndpoint { }; return await this.api.get< - AppendToResponse, T, 'movie'> + AppendToResponse, T, 'tvEpisode'> >(`${BASE_EPISODE(episodeSelection)}`, combinedOptions); } diff --git a/src/types/options.ts b/src/types/options.ts index bdff84d..b2ceb61 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -27,6 +27,8 @@ import { MovieChangeValue, TvShowChangeValue, TvEpisodeChangeValue, + TvEpisodeCredit, + TvEpisodeTranslations, } from '.'; export interface LanguageOption { @@ -90,12 +92,24 @@ export type AppendToResponsePersonKey = | 'tagged_images' | 'translations'; +export type AppendToResponseTvEpisodeKey = + | 'images' + | 'credits' + | 'external_ids' + | 'videos' + | 'translations'; + type AppendToResponseAllKeys = | AppendToResponseTvKey | AppendToResponseMovieKey + | AppendToResponseTvEpisodeKey | AppendToResponsePersonKey; -export type AppendToResponseMediaType = 'movie' | 'tvShow' | 'person'; +export type AppendToResponseMediaType = + | 'movie' + | 'tvShow' + | 'person' + | 'tvEpisode'; export type AppendToResponse< K, @@ -106,7 +120,11 @@ export type AppendToResponse< ? object : T extends Array ? ('credits' extends T[number] - ? { credits: Omit } + ? { + credits: Media extends 'tvEpisode' + ? TvEpisodeCredit + : Omit; + } : object) & ('videos' extends T[number] ? { videos: Omit } : object) & ('images' extends T[number] @@ -157,7 +175,11 @@ export type AppendToResponse< ('translations' extends T[number] ? { translations: Omit< - Media extends 'person' ? PersonTranslations : Translations, + Media extends 'person' + ? PersonTranslations + : Media extends 'tvEpisode' + ? TvEpisodeTranslations + : Translations, 'id' >; }