@ -91,11 +91,11 @@ interface TmdbSearchMultiResponse extends TmdbPaginatedResponse {
results : ( TmdbMovieResult | TmdbTvResult | TmdbPersonResult ) [ ] ;
}
interface Tmdb Discover MovieResponse extends TmdbPaginatedResponse {
interface Tmdb Search MovieResponse extends TmdbPaginatedResponse {
results : TmdbMovieResult [ ] ;
}
interface Tmdb Discover TvResponse extends TmdbPaginatedResponse {
interface Tmdb Search TvResponse extends TmdbPaginatedResponse {
results : TmdbTvResult [ ] ;
}
@ -289,9 +289,9 @@ class TheMovieDb {
page = 1 ,
includeAdult = false ,
language = 'en-US' ,
} : DiscoverMovieOptions = { } ) : Promise < Tmdb Discover MovieResponse> = > {
} : DiscoverMovieOptions = { } ) : Promise < Tmdb Search MovieResponse> = > {
try {
const response = await this . axios . get < Tmdb Discover MovieResponse> (
const response = await this . axios . get < Tmdb Search MovieResponse> (
'/discover/movie' ,
{
params : {
@ -313,9 +313,9 @@ class TheMovieDb {
sortBy = 'popularity.desc' ,
page = 1 ,
language = 'en-US' ,
} : DiscoverTvOptions = { } ) : Promise < Tmdb Discover TvResponse> = > {
} : DiscoverTvOptions = { } ) : Promise < Tmdb Search TvResponse> = > {
try {
const response = await this . axios . get < Tmdb Discover TvResponse> (
const response = await this . axios . get < Tmdb Search TvResponse> (
'/discover/tv' ,
{
params : {
@ -331,6 +331,72 @@ class TheMovieDb {
throw new Error ( ` [TMDB] Failed to fetch discover tv: ${ e . message } ` ) ;
}
} ;
public getAllTrending = async ( {
page = 1 ,
timeWindow = 'day' ,
} : { page? : number ; timeWindow ? : 'day' | 'week' } = { } ) : Promise <
TmdbSearchMultiResponse
> = > {
try {
const response = await this . axios . get < TmdbSearchMultiResponse > (
` /trending/all/ ${ timeWindow } ` ,
{
params : {
page ,
} ,
}
) ;
return response . data ;
} catch ( e ) {
throw new Error ( ` [TMDB] Failed to fetch all trending: ${ e . message } ` ) ;
}
} ;
public getMovieTrending = async ( {
page = 1 ,
timeWindow = 'day' ,
} : { page? : number ; timeWindow ? : 'day' | 'week' } = { } ) : Promise <
TmdbSearchMovieResponse
> = > {
try {
const response = await this . axios . get < TmdbSearchMovieResponse > (
` /trending/movie/ ${ timeWindow } ` ,
{
params : {
page ,
} ,
}
) ;
return response . data ;
} catch ( e ) {
throw new Error ( ` [TMDB] Failed to fetch all trending: ${ e . message } ` ) ;
}
} ;
public getTvTrending = async ( {
page = 1 ,
timeWindow = 'day' ,
} : { page? : number ; timeWindow ? : 'day' | 'week' } = { } ) : Promise <
TmdbSearchTvResponse
> = > {
try {
const response = await this . axios . get < TmdbSearchTvResponse > (
` /trending/tv/ ${ timeWindow } ` ,
{
params : {
page ,
} ,
}
) ;
return response . data ;
} catch ( e ) {
throw new Error ( ` [TMDB] Failed to fetch all trending: ${ e . message } ` ) ;
}
} ;
}
export default TheMovieDb ;