7 Commits

Author SHA1 Message Date
Blake
ad2b27ca72 Update package.json 2023-12-28 21:32:20 -05:00
Blake
76f62210be Merge pull request #42 from jeremyVignelles/fix/39-language-options
[i18n]Fixed all implemented methods that should allow LanguageOptions to be passed
2023-12-28 21:31:20 -05:00
Jérémy VIGNELLES
101457cdd7 Moved interfaces as requested 2023-11-16 14:22:17 +01:00
Jérémy VIGNELLES
7d4b3fcb60 Added languages options for genres 2023-11-16 13:41:45 +01:00
Jérémy VIGNELLES
eb53747570 Fix a bad union type typing 2023-11-16 13:41:44 +01:00
Jérémy VIGNELLES
8c615edbfa Fixed language options on all supported entrypoints 2023-11-16 13:41:35 +01:00
Blake
1628ea05bd Merge pull request #44 from blakejoy/blakejoy-patch-2
Update patch version
2023-11-14 01:13:18 -05:00
14 changed files with 182 additions and 64 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "tmdb-ts", "name": "tmdb-ts",
"version": "1.5.1", "version": "1.6.0",
"description": "TMDB v3 library wrapper", "description": "TMDB v3 library wrapper",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",

View File

@@ -1,4 +1,5 @@
import { import {
CollectionImageOptions,
DetailedCollection, DetailedCollection,
ImageCollection, ImageCollection,
LanguageOption, LanguageOption,
@@ -23,10 +24,14 @@ export class CollectionsEndpoint extends BaseEndpoint {
); );
} }
async images(id: number, options?: LanguageOption): Promise<ImageCollection> { async images(id: number, options?: CollectionImageOptions): Promise<ImageCollection> {
const computedOptions = {
include_image_language: options?.include_image_language?.join(','),
language: options?.language,
};
return await this.api.get<ImageCollection>( return await this.api.get<ImageCollection>(
`${BASE_COLLECTION}/${id}/images`, `${BASE_COLLECTION}/${id}/images`,
options computedOptions
); );
} }

View File

@@ -1,3 +1,4 @@
import { LanguageOption } from '../types';
import { BaseEndpoint } from './base'; import { BaseEndpoint } from './base';
export interface Genres { export interface Genres {
@@ -9,11 +10,11 @@ export class GenreEndpoint extends BaseEndpoint {
super(accessToken); super(accessToken);
} }
async movies(): Promise<Genres> { async movies(options?: LanguageOption): Promise<Genres> {
return await this.api.get<Genres>('/genre/movie/list'); return await this.api.get<Genres>('/genre/movie/list', options);
} }
async tvShows(): Promise<Genres> { async tvShows(options?: LanguageOption): Promise<Genres> {
return await this.api.get<Genres>('/genre/tv/list'); return await this.api.get<Genres>('/genre/tv/list', options);
} }
} }

View File

@@ -31,6 +31,13 @@ import {
const BASE_MOVIE = '/movie'; const BASE_MOVIE = '/movie';
export interface MoviesImageSearchOptions extends LanguageOption {
/**
* a list of ISO-639-1 values to query
*/
include_image_language?: string[],
}
export class MoviesEndpoint extends BaseEndpoint { export class MoviesEndpoint extends BaseEndpoint {
constructor(protected readonly accessToken: string) { constructor(protected readonly accessToken: string) {
super(accessToken); super(accessToken);
@@ -38,12 +45,14 @@ export class MoviesEndpoint extends BaseEndpoint {
async details<T extends AppendToResponseMovieKey[] | undefined>( async details<T extends AppendToResponseMovieKey[] | undefined>(
id: number, id: number,
appendToResponse?: T appendToResponse?: T,
language?: string
) { ) {
const options = { const options = {
append_to_response: appendToResponse append_to_response: appendToResponse
? appendToResponse.join(',') ? appendToResponse.join(',')
: undefined, : undefined,
language: language,
}; };
return await this.api.get<AppendToResponse<MovieDetails, T, 'movie'>>( return await this.api.get<AppendToResponse<MovieDetails, T, 'movie'>>(
@@ -68,16 +77,20 @@ export class MoviesEndpoint extends BaseEndpoint {
); );
} }
async credits(id: number): Promise<Credits> { async credits(id: number, options?: LanguageOption): Promise<Credits> {
return await this.api.get<Credits>(`${BASE_MOVIE}/${id}/credits`); return await this.api.get<Credits>(`${BASE_MOVIE}/${id}/credits`, options);
} }
async externalIds(id: number): Promise<ExternalIds> { async externalIds(id: number): Promise<ExternalIds> {
return await this.api.get<ExternalIds>(`${BASE_MOVIE}/${id}/external_ids`); return await this.api.get<ExternalIds>(`${BASE_MOVIE}/${id}/external_ids`);
} }
async images(id: number): Promise<Images> { async images(id: number, options?: MoviesImageSearchOptions): Promise<Images> {
return await this.api.get<Images>(`${BASE_MOVIE}/${id}/images`); const computedOptions = {
include_image_language: options?.include_image_language?.join(','),
language: options?.language,
};
return await this.api.get<Images>(`${BASE_MOVIE}/${id}/images`, computedOptions);
} }
async keywords(id: number): Promise<Keywords> { async keywords(id: number): Promise<Keywords> {
@@ -86,14 +99,14 @@ export class MoviesEndpoint extends BaseEndpoint {
async lists( async lists(
id: number, id: number,
options?: LanguageOption | PageOption options?: LanguageOption & PageOption
): Promise<MovieLists> { ): Promise<MovieLists> {
return await this.api.get<MovieLists>(`${BASE_MOVIE}/${id}/lists`, options); return await this.api.get<MovieLists>(`${BASE_MOVIE}/${id}/lists`, options);
} }
async recommendations( async recommendations(
id: number, id: number,
options?: PageOption options?: LanguageOption & PageOption
): Promise<Recommendations> { ): Promise<Recommendations> {
return await this.api.get<Recommendations>( return await this.api.get<Recommendations>(
`${BASE_MOVIE}/${id}/recommendations`, `${BASE_MOVIE}/${id}/recommendations`,
@@ -107,11 +120,11 @@ export class MoviesEndpoint extends BaseEndpoint {
); );
} }
async reviews(id: number, options?: PageOption): Promise<Reviews> { async reviews(id: number, options?: LanguageOption & PageOption): Promise<Reviews> {
return await this.api.get<Reviews>(`${BASE_MOVIE}/${id}/reviews`, options); return await this.api.get<Reviews>(`${BASE_MOVIE}/${id}/reviews`, options);
} }
async similar(id: number, options?: PageOption): Promise<SimilarMovies> { async similar(id: number, options?: LanguageOption & PageOption): Promise<SimilarMovies> {
return await this.api.get<SimilarMovies>( return await this.api.get<SimilarMovies>(
`${BASE_MOVIE}/${id}/similar`, `${BASE_MOVIE}/${id}/similar`,
options options
@@ -122,8 +135,8 @@ export class MoviesEndpoint extends BaseEndpoint {
return await this.api.get<Translations>(`${BASE_MOVIE}/${id}/translations`); return await this.api.get<Translations>(`${BASE_MOVIE}/${id}/translations`);
} }
async videos(id: number): Promise<Videos> { async videos(id: number, options?: LanguageOption): Promise<Videos> {
return await this.api.get<Videos>(`${BASE_MOVIE}/${id}/videos`); return await this.api.get<Videos>(`${BASE_MOVIE}/${id}/videos`, options);
} }
/** /**
@@ -149,7 +162,7 @@ export class MoviesEndpoint extends BaseEndpoint {
); );
} }
async popular(options?: PageOption): Promise<PopularMovies> { async popular(options?: LanguageOption & PageOption): Promise<PopularMovies> {
return await this.api.get<PopularMovies>(`${BASE_MOVIE}/popular`, options); return await this.api.get<PopularMovies>(`${BASE_MOVIE}/popular`, options);
} }

View File

@@ -14,6 +14,7 @@ import {
TaggedImages, TaggedImages,
Changes, Changes,
PersonChangeValue, PersonChangeValue,
LanguageOption,
} from '../types'; } from '../types';
import { BaseEndpoint } from './base'; import { BaseEndpoint } from './base';
@@ -26,12 +27,14 @@ export class PeopleEndpoint extends BaseEndpoint {
async details<T extends AppendToResponsePersonKey[] | undefined>( async details<T extends AppendToResponsePersonKey[] | undefined>(
id: number, id: number,
appendToResponse?: T appendToResponse?: T,
language?: string
) { ) {
const options = { const options = {
append_to_response: appendToResponse append_to_response: appendToResponse
? appendToResponse.join(',') ? appendToResponse.join(',')
: undefined, : undefined,
language: language
}; };
return await this.api.get<AppendToResponse<PersonDetails, T, 'person'>>( return await this.api.get<AppendToResponse<PersonDetails, T, 'person'>>(
`${BASE_PERSON}/${id}`, `${BASE_PERSON}/${id}`,
@@ -49,21 +52,24 @@ export class PeopleEndpoint extends BaseEndpoint {
); );
} }
async movieCredits(id: number): Promise<PersonMovieCredit> { async movieCredits(id: number, options?: LanguageOption): Promise<PersonMovieCredit> {
return await this.api.get<PersonMovieCredit>( return await this.api.get<PersonMovieCredit>(
`${BASE_PERSON}/${id}/movie_credits` `${BASE_PERSON}/${id}/movie_credits`,
options
); );
} }
async tvShowCredits(id: number): Promise<PersonTvShowCredit> { async tvShowCredits(id: number, options?: LanguageOption): Promise<PersonTvShowCredit> {
return await this.api.get<PersonTvShowCredit>( return await this.api.get<PersonTvShowCredit>(
`${BASE_PERSON}/${id}/tv_credits` `${BASE_PERSON}/${id}/tv_credits`,
options
); );
} }
async combinedCredits(id: number): Promise<PersonCombinedCredits> { async combinedCredits(id: number, options?: LanguageOption): Promise<PersonCombinedCredits> {
return await this.api.get<PersonCombinedCredits>( return await this.api.get<PersonCombinedCredits>(
`${BASE_PERSON}/${id}/combined_credits` `${BASE_PERSON}/${id}/combined_credits`,
options
); );
} }
@@ -92,7 +98,7 @@ export class PeopleEndpoint extends BaseEndpoint {
return await this.api.get<PersonDetails>(`${BASE_PERSON}/latest`); return await this.api.get<PersonDetails>(`${BASE_PERSON}/latest`);
} }
async popular(options?: PageOption): Promise<PopularPersons> { async popular(options?: LanguageOption & PageOption): Promise<PopularPersons> {
return await this.api.get<PopularPersons>( return await this.api.get<PopularPersons>(
`${BASE_PERSON}/popular`, `${BASE_PERSON}/popular`,
options options

View File

@@ -1,6 +1,6 @@
import { BaseEndpoint } from './base'; import { BaseEndpoint } from './base';
import { MultiSearchResult, Search } from '../types/search'; import { MultiSearchResult, Search } from '../types/search';
import { Collection, Company, Movie, Person, TV } from '../types'; import { Collection, Company, LanguageOption, Movie, PageOption, Person, RegionOption, TV } from '../types';
const BASE_SEARCH = '/search'; const BASE_SEARCH = '/search';
@@ -9,22 +9,27 @@ export interface SearchOptions {
page?: number; page?: number;
} }
export interface MovieSearchOptions extends SearchOptions { export interface MovieSearchOptions extends SearchOptions, LanguageOption, PageOption, RegionOption {
include_adult?: boolean; include_adult?: boolean;
year?: number; year?: number;
primary_release_year?: number; primary_release_year?: number;
} }
export interface TvSearchOptions extends SearchOptions { export interface CollectionSearchOptions extends SearchOptions, LanguageOption, PageOption, RegionOption {
include_adult?: boolean; include_adult?: boolean;
}
export interface TvSearchOptions extends SearchOptions, LanguageOption, PageOption {
include_adult?: boolean;
year?: number;
first_air_date_year?: number; first_air_date_year?: number;
} }
export interface PeopleSearchOptions extends SearchOptions { export interface PeopleSearchOptions extends SearchOptions, LanguageOption, PageOption {
include_adult?: boolean; include_adult?: boolean;
} }
export interface MultiSearchOptions extends SearchOptions { export interface MultiSearchOptions extends SearchOptions, LanguageOption, PageOption {
include_adult?: boolean; include_adult?: boolean;
} }

View File

@@ -1,4 +1,4 @@
import { TrendingMediaType, TimeWindow, TrendingResults } from '../types'; import { TrendingMediaType, TimeWindow, TrendingResults, LanguageOption } from '../types';
import { BaseEndpoint } from './base'; import { BaseEndpoint } from './base';
export class TrendingEndpoint extends BaseEndpoint { export class TrendingEndpoint extends BaseEndpoint {
@@ -8,10 +8,12 @@ export class TrendingEndpoint extends BaseEndpoint {
async trending<T extends TrendingMediaType>( async trending<T extends TrendingMediaType>(
mediaType: T, mediaType: T,
timeWindow: TimeWindow timeWindow: TimeWindow,
options?: LanguageOption
): Promise<TrendingResults<T>> { ): Promise<TrendingResults<T>> {
return await this.api.get<TrendingResults<T>>( return await this.api.get<TrendingResults<T>>(
`/trending/${mediaType}/${timeWindow}` `/trending/${mediaType}/${timeWindow}`,
options
); );
} }
} }

View File

@@ -20,6 +20,20 @@ const BASE_EPISODE = (episodeSelection: EpisodeSelection): string => {
return `/tv/${episodeSelection.tvShowID}/season/${episodeSelection.seasonNumber}/episode/${episodeSelection.episodeNumber}`; return `/tv/${episodeSelection.tvShowID}/season/${episodeSelection.seasonNumber}/episode/${episodeSelection.episodeNumber}`;
}; };
export interface TvEpisodeImageSearchOptions extends LanguageOption {
/**
* a list of ISO-639-1 values to query
*/
include_image_language?: string[],
}
export interface TvEpisodeVideoSearchOptions extends LanguageOption {
/**
* a list of ISO-639-1 values to query
*/
include_video_language?: string[],
}
export class TvEpisodesEndpoint extends BaseEndpoint { export class TvEpisodesEndpoint extends BaseEndpoint {
constructor(accessToken: string) { constructor(accessToken: string) {
super(accessToken); super(accessToken);
@@ -62,9 +76,14 @@ export class TvEpisodesEndpoint extends BaseEndpoint {
); );
} }
async images(episodeSelection: EpisodeSelection) { async images(episodeSelection: EpisodeSelection, options?: TvEpisodeImageSearchOptions) {
const computedOptions = {
include_image_language: options?.include_image_language?.join(','),
language: options?.language,
};
return await this.api.get<Images>( return await this.api.get<Images>(
`${BASE_EPISODE(episodeSelection)}/images` `${BASE_EPISODE(episodeSelection)}/images`,
computedOptions
); );
} }
@@ -74,10 +93,14 @@ export class TvEpisodesEndpoint extends BaseEndpoint {
); );
} }
async videos(episodeSelection: EpisodeSelection, options?: LanguageOption) { async videos(episodeSelection: EpisodeSelection, options?: TvEpisodeVideoSearchOptions) {
const computedOptions = {
include_video_language: options?.include_video_language?.join(','),
language: options?.language,
};
return await this.api.get<Videos>( return await this.api.get<Videos>(
`${BASE_EPISODE(episodeSelection)}/videos`, `${BASE_EPISODE(episodeSelection)}/videos`,
options computedOptions
); );
} }
} }

View File

@@ -20,6 +20,20 @@ const BASE_SEASON = (seasonSelection: SeasonSelection): string => {
return `/tv/${seasonSelection.tvShowID}/season/${seasonSelection.seasonNumber}`; return `/tv/${seasonSelection.tvShowID}/season/${seasonSelection.seasonNumber}`;
}; };
export interface TvSeasonImageSearchOptions extends LanguageOption {
/**
* a list of ISO-639-1 values to query
*/
include_image_language?: string[],
}
export interface TvSeasonVideoSearchOptions extends LanguageOption {
/**
* a list of ISO-639-1 values to query
*/
include_video_language?: string[],
}
export class TvSeasonsEndpoint extends BaseEndpoint { export class TvSeasonsEndpoint extends BaseEndpoint {
constructor(accessToken: string) { constructor(accessToken: string) {
super(accessToken); super(accessToken);
@@ -77,17 +91,25 @@ export class TvSeasonsEndpoint extends BaseEndpoint {
); );
} }
async images(seasonSelection: SeasonSelection, options?: LanguageOption) { async images(seasonSelection: SeasonSelection, options?: TvSeasonImageSearchOptions) {
const computedOptions = {
include_image_language: options?.include_image_language?.join(','),
language: options?.language,
};
return await this.api.get<Images>( return await this.api.get<Images>(
`${BASE_SEASON(seasonSelection)}/images`, `${BASE_SEASON(seasonSelection)}/images`,
options computedOptions
); );
} }
async videos(seasonSelection: SeasonSelection, options?: LanguageOption) { async videos(seasonSelection: SeasonSelection, options?: TvSeasonVideoSearchOptions) {
const computedOptions = {
include_video_language: options?.include_video_language?.join(','),
language: options?.language,
};
return await this.api.get<Videos>( return await this.api.get<Videos>(
`${BASE_SEASON(seasonSelection)}/videos`, `${BASE_SEASON(seasonSelection)}/videos`,
options computedOptions
); );
} }

View File

@@ -18,13 +18,15 @@ import {
PageOption, PageOption,
PopularTvShows, PopularTvShows,
Recommendations, Recommendations,
RegionOption,
Reviews, Reviews,
ScreenedTheatrically, ScreenedTheatrically,
SeasonDetails, SeasonDetails,
SimilarTvShows, SimilarTvShows,
TimezoneOption,
TopRatedTvShows, TopRatedTvShows,
Translations, Translations,
TvShowImageOptions,
TvShowVideoOptions,
TvShowChangeValue, TvShowChangeValue,
TvShowDetails, TvShowDetails,
TvShowsAiringToday, TvShowsAiringToday,
@@ -41,12 +43,14 @@ export class TvShowsEndpoint extends BaseEndpoint {
async details<T extends AppendToResponseTvKey[] | undefined>( async details<T extends AppendToResponseTvKey[] | undefined>(
id: number, id: number,
appendToResponse?: T appendToResponse?: T,
language?: string
) { ) {
const options = { const options = {
append_to_response: appendToResponse append_to_response: appendToResponse
? appendToResponse.join(',') ? appendToResponse.join(',')
: undefined, : undefined,
language: language,
}; };
return await this.api.get<AppendToResponse<TvShowDetails, T, 'tvShow'>>( return await this.api.get<AppendToResponse<TvShowDetails, T, 'tvShow'>>(
`${BASE_TV}/${id}`, `${BASE_TV}/${id}`,
@@ -76,14 +80,15 @@ export class TvShowsEndpoint extends BaseEndpoint {
); );
} }
async aggregateCredits(id: number): Promise<AggregateCredits> { async aggregateCredits(id: number, options?: LanguageOption): Promise<AggregateCredits> {
return await this.api.get<AggregateCredits>( return await this.api.get<AggregateCredits>(
`${BASE_TV}/${id}/aggregate_credits` `${BASE_TV}/${id}/aggregate_credits`,
options
); );
} }
async credits(id: number): Promise<Credits> { async credits(id: number, options?: LanguageOption): Promise<Credits> {
return await this.api.get<Credits>(`${BASE_TV}/${id}/credits`); return await this.api.get<Credits>(`${BASE_TV}/${id}/credits`, options);
} }
async season(tvId: number, seasonNumber: number): Promise<SeasonDetails> { async season(tvId: number, seasonNumber: number): Promise<SeasonDetails> {
@@ -100,8 +105,12 @@ export class TvShowsEndpoint extends BaseEndpoint {
return await this.api.get<ExternalIds>(`${BASE_TV}/${id}/external_ids`); return await this.api.get<ExternalIds>(`${BASE_TV}/${id}/external_ids`);
} }
async images(id: number): Promise<Images> { async images(id: number, options?: TvShowImageOptions): Promise<Images> {
return await this.api.get<Images>(`${BASE_TV}/${id}/images`); const computedOptions = {
include_image_language: options?.include_image_language?.join(','),
language: options?.language,
};
return await this.api.get<Images>(`${BASE_TV}/${id}/images`, computedOptions);
} }
async keywords(id: number): Promise<Keywords> { async keywords(id: number): Promise<Keywords> {
@@ -110,7 +119,7 @@ export class TvShowsEndpoint extends BaseEndpoint {
async recommendations( async recommendations(
id: number, id: number,
options?: PageOption options?: LanguageOption & PageOption
): Promise<Recommendations> { ): Promise<Recommendations> {
return await this.api.get<Recommendations>( return await this.api.get<Recommendations>(
`${BASE_TV}/${id}/recommendations`, `${BASE_TV}/${id}/recommendations`,
@@ -118,7 +127,7 @@ export class TvShowsEndpoint extends BaseEndpoint {
); );
} }
async reviews(id: number, options?: PageOption): Promise<Reviews> { async reviews(id: number, options?: LanguageOption & PageOption): Promise<Reviews> {
return await this.api.get<Reviews>(`${BASE_TV}/${id}/reviews`, options); return await this.api.get<Reviews>(`${BASE_TV}/${id}/reviews`, options);
} }
@@ -128,7 +137,7 @@ export class TvShowsEndpoint extends BaseEndpoint {
); );
} }
async similar(id: number, options?: PageOption): Promise<SimilarTvShows> { async similar(id: number, options?: LanguageOption & PageOption): Promise<SimilarTvShows> {
return await this.api.get<SimilarTvShows>( return await this.api.get<SimilarTvShows>(
`${BASE_TV}/${id}/similar`, `${BASE_TV}/${id}/similar`,
options options
@@ -139,8 +148,12 @@ export class TvShowsEndpoint extends BaseEndpoint {
return await this.api.get<Translations>(`${BASE_TV}/${id}/translations`); return await this.api.get<Translations>(`${BASE_TV}/${id}/translations`);
} }
async videos(id: number): Promise<Videos> { async videos(id: number, options?: TvShowVideoOptions): Promise<Videos> {
return await this.api.get<Videos>(`${BASE_TV}/${id}/videos`); const computedOptions = {
include_video_language: options?.include_video_language?.join(','),
language: options?.language,
};
return await this.api.get<Videos>(`${BASE_TV}/${id}/videos`, computedOptions);
} }
/** /**
@@ -157,12 +170,14 @@ export class TvShowsEndpoint extends BaseEndpoint {
return await this.api.get<LatestTvShows>(`${BASE_TV}/latest`); return await this.api.get<LatestTvShows>(`${BASE_TV}/latest`);
} }
async onTheAir(): Promise<OnTheAir> { async onTheAir(
return await this.api.get<OnTheAir>(`${BASE_TV}/on_the_air`); options?: PageOption & LanguageOption & TimezoneOption
): Promise<OnTheAir> {
return await this.api.get<OnTheAir>(`${BASE_TV}/on_the_air`, options);
} }
async airingToday( async airingToday(
options?: PageOption & LanguageOption & RegionOption options?: PageOption & LanguageOption & TimezoneOption
): Promise<TvShowsAiringToday> { ): Promise<TvShowsAiringToday> {
return await this.api.get<TvShowsAiringToday>( return await this.api.get<TvShowsAiringToday>(
`${BASE_TV}/airing_today`, `${BASE_TV}/airing_today`,
@@ -171,13 +186,13 @@ export class TvShowsEndpoint extends BaseEndpoint {
} }
async popular( async popular(
options?: PageOption & LanguageOption & RegionOption options?: PageOption & LanguageOption
): Promise<PopularTvShows> { ): Promise<PopularTvShows> {
return await this.api.get<PopularTvShows>(`${BASE_TV}/popular`, options); return await this.api.get<PopularTvShows>(`${BASE_TV}/popular`, options);
} }
async topRated( async topRated(
options?: PageOption & LanguageOption & RegionOption options?: PageOption & LanguageOption
): Promise<TopRatedTvShows> { ): Promise<TopRatedTvShows> {
return await this.api.get<TopRatedTvShows>(`${BASE_TV}/top_rated`, options); return await this.api.get<TopRatedTvShows>(`${BASE_TV}/top_rated`, options);
} }

View File

@@ -1,4 +1,4 @@
import { Movie } from '.'; import { LanguageOption, Movie } from '.';
export interface Collection { export interface Collection {
id: number; id: number;
@@ -14,3 +14,10 @@ export interface Collection {
export interface DetailedCollection extends Collection { export interface DetailedCollection extends Collection {
parts: Movie[]; parts: Movie[];
} }
export interface CollectionImageOptions extends LanguageOption {
/**
* a list of ISO-639-1 values to query
*/
include_image_language?: string[],
}

View File

@@ -1,6 +1,7 @@
import { Movie } from '.'; import { Movie } from '.';
import { PageOption } from './options';
export interface KeywordsOptions { export interface KeywordsOptions extends PageOption {
include_adult?: boolean; include_adult?: boolean;
language?: string; language?: string;
} }

View File

@@ -40,6 +40,10 @@ export interface RegionOption {
region?: string; region?: string;
} }
export interface TimezoneOption {
timezone?: string;
}
export interface PageOption { export interface PageOption {
page?: number; page?: number;
} }

View File

@@ -3,7 +3,7 @@ import {
ProductionCompany, ProductionCompany,
ProductionCountry, ProductionCountry,
SpokenLanguage, SpokenLanguage,
Episode, LanguageOption,
} from './'; } from './';
export interface CreatedBy { export interface CreatedBy {
@@ -274,3 +274,17 @@ export interface TvShowChangeValue {
season_id: number; season_id: number;
season_number: number; season_number: number;
} }
export interface TvShowImageOptions extends LanguageOption {
/**
* a list of ISO-639-1 values to query
*/
include_image_language?: string[],
}
export interface TvShowVideoOptions extends LanguageOption {
/**
* a list of ISO-639-1 values to query
*/
include_video_language?: string[],
}