append to response support
This commit is contained in:
@@ -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<T extends AppendToResponseMovieKey[] | undefined>(
|
||||
async details<T extends AppendToResponseTvEpisodeKey[] | undefined>(
|
||||
episodeSelection: EpisodeSelection,
|
||||
appendToResponse?: T,
|
||||
options?: LanguageOption
|
||||
@@ -37,7 +38,7 @@ export class TvEpisodesEndpoint extends BaseEndpoint {
|
||||
};
|
||||
|
||||
return await this.api.get<
|
||||
AppendToResponse<Omit<Episode, 'show_id'>, T, 'movie'>
|
||||
AppendToResponse<Omit<Episode, 'show_id'>, T, 'tvEpisode'>
|
||||
>(`${BASE_EPISODE(episodeSelection)}`, combinedOptions);
|
||||
}
|
||||
|
||||
|
||||
@@ -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<unknown>
|
||||
? ('credits' extends T[number]
|
||||
? { credits: Omit<Credits, 'id'> }
|
||||
? {
|
||||
credits: Media extends 'tvEpisode'
|
||||
? TvEpisodeCredit
|
||||
: Omit<Credits, 'id'>;
|
||||
}
|
||||
: object) &
|
||||
('videos' extends T[number] ? { videos: Omit<Videos, 'id'> } : 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'
|
||||
>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user