Comparing version 1.0.0 to 1.2.0
import { BaseEndpoint } from './base'; | ||
import { ChangeOptions, Changes } from '../types/changes'; | ||
import { ChangeOptions, MediaChanges } from '../types/changes'; | ||
export declare class ChangeEndpoint extends BaseEndpoint { | ||
protected readonly accessToken: string; | ||
constructor(accessToken: string); | ||
movies(options?: ChangeOptions): Promise<Changes>; | ||
tvShows(options?: ChangeOptions): Promise<Changes>; | ||
person(options?: ChangeOptions): Promise<Changes>; | ||
movies(options?: ChangeOptions): Promise<MediaChanges>; | ||
tvShows(options?: ChangeOptions): Promise<MediaChanges>; | ||
person(options?: ChangeOptions): Promise<MediaChanges>; | ||
} |
import { BaseEndpoint } from './base'; | ||
import { AlternativeTitles, ChangeOptions, Credits, ExternalIds, Images, Keywords, LanguageOption, LatestMovie, MovieChanges, MovieDetails, MovieLists, MoviesPlayingNow, PageOption, PopularMovies, Recommendations, RegionOption, ReleaseDates, Reviews, SimilarMovies, TopRatedMovies, Translations, UpcomingMovies, Videos, WatchProviders } from '../types'; | ||
import { AlternativeTitles, AppendToResponse, AppendToResponseMovieKey, ChangeOptions, Changes, Credits, ExternalIds, Images, Keywords, LanguageOption, LatestMovie, MovieDetails, MovieLists, MoviesPlayingNow, PageOption, PopularMovies, Recommendations, RegionOption, ReleaseDates, Reviews, SimilarMovies, TopRatedMovies, Translations, UpcomingMovies, Videos, WatchProviders } from '../types'; | ||
export declare class MoviesEndpoint extends BaseEndpoint { | ||
protected readonly accessToken: string; | ||
constructor(accessToken: string); | ||
details(id: number): Promise<MovieDetails>; | ||
details<T extends AppendToResponseMovieKey[] | undefined>(id: number, appendToResponse?: T): Promise<AppendToResponse<MovieDetails, T, "movie">>; | ||
alternativeTitles(id: number): Promise<AlternativeTitles>; | ||
changes(id: number, options?: ChangeOptions): Promise<MovieChanges>; | ||
changes(id: number, options?: ChangeOptions): Promise<Changes>; | ||
credits(id: number): Promise<Credits>; | ||
@@ -10,0 +10,0 @@ externalIds(id: number): Promise<ExternalIds>; |
@@ -12,4 +12,9 @@ "use strict"; | ||
} | ||
async details(id) { | ||
return await this.api.get(`${BASE_MOVIE}/${id}`); | ||
async details(id, appendToResponse) { | ||
const options = { | ||
append_to_response: appendToResponse | ||
? appendToResponse.join(',') | ||
: undefined, | ||
}; | ||
return await this.api.get(`${BASE_MOVIE}/${id}`, options); | ||
} | ||
@@ -16,0 +21,0 @@ async alternativeTitles(id) { |
@@ -1,6 +0,6 @@ | ||
import { ChangeOptions, ExternalIds, Image, PageOption, PeopleTranslations, PersonChanges, PersonCombinedCredits, PersonDetail, PersonMovieCredit, PersonTvShowCredit, PopularPersons, TaggedImages } from '../types'; | ||
import { AppendToResponse, AppendToResponsePersonKey, ChangeOptions, ExternalIds, PageOption, PeopleImages, PersonTranslations, PersonChanges, PersonCombinedCredits, PersonDetails, PersonMovieCredit, PersonTvShowCredit, PopularPersons, TaggedImages } from '../types'; | ||
import { BaseEndpoint } from './base'; | ||
export declare class PeopleEndpoint extends BaseEndpoint { | ||
constructor(accessToken: string); | ||
details(id: number): Promise<PersonDetail>; | ||
details<T extends AppendToResponsePersonKey[] | undefined>(id: number, appendToResponse?: T): Promise<AppendToResponse<PersonDetails, T, "person">>; | ||
changes(id: number, options?: ChangeOptions): Promise<PersonChanges>; | ||
@@ -11,10 +11,7 @@ movieCredits(id: number): Promise<PersonMovieCredit>; | ||
externalId(id: number): Promise<ExternalIds>; | ||
images(id: number): Promise<{ | ||
id: number; | ||
profiles: Image[]; | ||
}>; | ||
images(id: number): Promise<PeopleImages>; | ||
taggedImages(id: number, options?: PageOption): Promise<TaggedImages>; | ||
translation(id: number): Promise<PeopleTranslations>; | ||
latest(): Promise<PersonDetail>; | ||
translation(id: number): Promise<PersonTranslations>; | ||
latest(): Promise<PersonDetails>; | ||
popular(options?: PageOption): Promise<PopularPersons>; | ||
} |
@@ -10,4 +10,9 @@ "use strict"; | ||
} | ||
async details(id) { | ||
return await this.api.get(`${BASE_PERSON}/${id}`); | ||
async details(id, appendToResponse) { | ||
const options = { | ||
append_to_response: appendToResponse | ||
? appendToResponse.join(',') | ||
: undefined, | ||
}; | ||
return await this.api.get(`${BASE_PERSON}/${id}`, options); | ||
} | ||
@@ -14,0 +19,0 @@ async changes(id, options) { |
import { BaseEndpoint } from './base'; | ||
import { Search } from '../types/search'; | ||
import { MultiSearchResult, Search } from '../types/search'; | ||
import { Collection, Company, Movie, Person, TV } from '../types'; | ||
@@ -20,2 +20,5 @@ export interface SearchOptions { | ||
} | ||
export interface MultiSearchOptions extends SearchOptions { | ||
include_adult?: boolean; | ||
} | ||
export declare class SearchEndpoint extends BaseEndpoint { | ||
@@ -33,2 +36,3 @@ protected readonly accessToken: string; | ||
tvShows(options: TvSearchOptions): Promise<Search<TV>>; | ||
multi(options: MultiSearchOptions): Promise<Search<MultiSearchResult>>; | ||
} |
@@ -27,8 +27,10 @@ "use strict"; | ||
} | ||
// TODO: Multi search | ||
async tvShows(options) { | ||
return await this.api.get(`${BASE_SEARCH}/tv`, options); | ||
} | ||
async multi(options) { | ||
return await this.api.get(`${BASE_SEARCH}/multi`, options); | ||
} | ||
} | ||
exports.SearchEndpoint = SearchEndpoint; | ||
//# sourceMappingURL=search.js.map |
@@ -1,6 +0,6 @@ | ||
import { MediaType, TimeWindow, TrendingResults } from '../types'; | ||
import { TrendingMediaType, TimeWindow, TrendingResults } from '../types'; | ||
import { BaseEndpoint } from './base'; | ||
export declare class TrendingEndpoint extends BaseEndpoint { | ||
constructor(accessToken: string); | ||
trending<T extends MediaType>(mediaType: T, timeWindow: TimeWindow): Promise<TrendingResults<T>>; | ||
trending<T extends TrendingMediaType>(mediaType: T, timeWindow: TimeWindow): Promise<TrendingResults<T>>; | ||
} |
import { BaseEndpoint } from './base'; | ||
import { AlternativeTitles, ChangeOptions, ContentRatings, Credits, EpisodeGroups, ExternalIds, Images, Keywords, LanguageOption, LatestTvShows, OnTheAir, PageOption, PopularTvShows, Recommendations, RegionOption, Reviews, ScreenedTheatrically, SeasonDetails, SimilarTvShows, TopRatedTvShows, Translations, TvShowChanges, TvShowDetails, TvShowsAiringToday, Videos, WatchProviders } from '../types'; | ||
import { AlternativeTitles, AppendToResponse, AppendToResponseTvKey, ChangeOptions, Changes, ContentRatings, Credits, EpisodeGroups, ExternalIds, Images, Keywords, LanguageOption, LatestTvShows, OnTheAir, PageOption, PopularTvShows, Recommendations, RegionOption, Reviews, ScreenedTheatrically, SeasonDetails, SimilarTvShows, TopRatedTvShows, Translations, TvShowDetails, TvShowsAiringToday, Videos, WatchProviders } from '../types'; | ||
export declare class TvShowsEndpoint extends BaseEndpoint { | ||
protected readonly accessToken: string; | ||
constructor(accessToken: string); | ||
details(id: number): Promise<TvShowDetails>; | ||
details<T extends AppendToResponseTvKey[] | undefined>(id: number, appendToResponse?: T): Promise<AppendToResponse<TvShowDetails, T, "tvShow">>; | ||
alternativeTitles(id: number): Promise<AlternativeTitles>; | ||
changes(id: number, options?: ChangeOptions): Promise<TvShowChanges>; | ||
changes(id: number, options?: ChangeOptions): Promise<Changes>; | ||
contentRatings(id: number): Promise<ContentRatings>; | ||
@@ -10,0 +10,0 @@ credits(id: number): Promise<Credits>; |
@@ -12,4 +12,9 @@ "use strict"; | ||
} | ||
async details(id) { | ||
return await this.api.get(`${BASE_TV}/${id}`); | ||
async details(id, appendToResponse) { | ||
const options = { | ||
append_to_response: appendToResponse | ||
? appendToResponse.join(',') | ||
: undefined, | ||
}; | ||
return await this.api.get(`${BASE_TV}/${id}`, options); | ||
} | ||
@@ -16,0 +21,0 @@ async alternativeTitles(id) { |
@@ -1,7 +0,7 @@ | ||
export interface Change { | ||
export interface MediaChange { | ||
id: number; | ||
adult: boolean | undefined; | ||
} | ||
export interface Changes { | ||
results: Change[]; | ||
export interface MediaChanges { | ||
results: MediaChange[]; | ||
page: number; | ||
@@ -16,1 +16,16 @@ total_pages: number; | ||
} | ||
export interface Changes { | ||
changes: Change[]; | ||
} | ||
export interface Change { | ||
key: string; | ||
items: ChangeItem[]; | ||
} | ||
export interface ChangeItem { | ||
id: string; | ||
action: string; | ||
time: string; | ||
value: Array<number>; | ||
iso_639_1: string; | ||
original_value: Array<number>; | ||
} |
@@ -1,2 +0,2 @@ | ||
export interface Images { | ||
export interface ImageConfiguration { | ||
base_url: string; | ||
@@ -11,3 +11,3 @@ secure_base_url: string; | ||
export interface Configuration { | ||
images: Images; | ||
images: ImageConfiguration; | ||
change_keys: ChangeKeys[]; | ||
@@ -14,0 +14,0 @@ } |
@@ -17,2 +17,3 @@ export * from './options'; | ||
export * from './collections'; | ||
export type MediaType = 'movie' | 'tv' | 'person'; | ||
export interface AuthorDetails { | ||
@@ -24,19 +25,3 @@ name: string; | ||
} | ||
export interface KnownFor { | ||
id: number; | ||
overview: string; | ||
release_date: string; | ||
video: boolean; | ||
adult: boolean; | ||
backdrop_path: string; | ||
media_type: string; | ||
genre_ids: number[]; | ||
title: string; | ||
original_language: string; | ||
original_title: string; | ||
poster_path: string; | ||
vote_count: number; | ||
vote_average: number; | ||
popularity: number; | ||
} | ||
export type KnownFor = MovieWithMediaType | TVWithMediaType; | ||
export interface Person { | ||
@@ -52,2 +37,5 @@ id: number; | ||
} | ||
export interface PersonWithMediaType extends Person { | ||
media_type: 'person'; | ||
} | ||
export interface Movie { | ||
@@ -69,2 +57,5 @@ id: number; | ||
} | ||
export interface MovieWithMediaType extends Movie { | ||
media_type: 'movie'; | ||
} | ||
export interface Company { | ||
@@ -91,2 +82,5 @@ id: number; | ||
} | ||
export interface TVWithMediaType extends TV { | ||
media_type: 'tv'; | ||
} | ||
export interface Genre { | ||
@@ -123,2 +117,3 @@ id: number; | ||
export interface ContentRatingsResult { | ||
descriptor: unknown[]; | ||
iso_3166_1: string; | ||
@@ -190,1 +185,7 @@ rating: string; | ||
} | ||
export interface Images { | ||
id: number; | ||
backdrops: Image[]; | ||
logos: Image[]; | ||
posters: Image[]; | ||
} |
@@ -81,17 +81,2 @@ import { Genre, Movie, ProductionCompany, ProductionCountry, SpokenLanguage } from './'; | ||
} | ||
export interface MovieChangeItem { | ||
id: string; | ||
action: string; | ||
time: string; | ||
iso_639_1: string; | ||
value: string; | ||
original_value: string; | ||
} | ||
export interface MovieChange { | ||
key: string; | ||
items: MovieChangeItem[]; | ||
} | ||
export interface MovieChanges { | ||
changes: MovieChange[]; | ||
} | ||
export interface LatestMovie { | ||
@@ -98,0 +83,0 @@ adult: boolean; |
@@ -0,1 +1,2 @@ | ||
import { AlternativeTitles, Changes, ContentRatings, Credits, EpisodeGroups, ExternalIds, Images, Keywords, MovieLists, PeopleImages, PersonTranslations, PersonChanges, PersonCombinedCredits, PersonMovieCredit, PersonTvShowCredit, Recommendations, ReleaseDates, Reviews, ScreenedTheatrically, SimilarMovies, SimilarTvShows, TaggedImages, Translations, Videos, WatchProviders } from '.'; | ||
export interface LanguageOption { | ||
@@ -10,1 +11,54 @@ language?: string; | ||
} | ||
export type AppendToResponseMovieKey = 'images' | 'videos' | 'credits' | 'recommendations' | 'reviews' | 'changes' | 'similar' | 'lists' | 'release_dates' | 'alternative_titles' | 'external_ids' | 'translations' | 'watch/providers' | 'keywords'; | ||
export type AppendToResponseTvKey = 'content_ratings' | 'images' | 'videos' | 'credits' | 'recommendations' | 'reviews' | 'changes' | 'similar' | 'alternative_titles' | 'external_ids' | 'translations' | 'watch/providers' | 'aggregate_credits' | 'episode_groups' | 'screened_theatrically' | 'keywords'; | ||
export type AppendToResponsePersonKey = 'images' | 'changes' | 'movie_credits' | 'tv_credits' | 'combined_credits' | 'external_ids' | 'tagged_images' | 'translations'; | ||
type AppendToResponseAllKeys = AppendToResponseTvKey | AppendToResponseMovieKey | AppendToResponsePersonKey; | ||
export type AppendToResponseMediaType = 'movie' | 'tvShow' | 'person'; | ||
export type AppendToResponse<K, T extends AppendToResponseAllKeys[] | undefined, Media extends AppendToResponseMediaType> = K & (T extends undefined ? object : T extends Array<unknown> ? ('credits' extends T[number] ? { | ||
credits: Omit<Credits, 'id'>; | ||
} : object) & ('videos' extends T[number] ? { | ||
videos: Omit<Videos, 'id'>; | ||
} : object) & ('images' extends T[number] ? { | ||
images: Omit<Media extends 'person' ? PeopleImages : Images, 'id'>; | ||
} : object) & ('recommendations' extends T[number] ? { | ||
recommendations: Recommendations; | ||
} : object) & ('reviews' extends T[number] ? { | ||
reviews: Omit<Reviews, 'id'>; | ||
} : object) & ('reviews' extends T[number] ? { | ||
reviews: Omit<Translations, 'id'>; | ||
} : object) & ('changes' extends T[number] ? { | ||
changes: Omit<Media extends 'person' ? PersonChanges : Changes, 'id'>; | ||
} : object) & ('keywords' extends T[number] ? { | ||
keywords: Omit<Keywords, 'id'>; | ||
} : object) & ('lists' extends T[number] ? { | ||
lists: Omit<MovieLists, 'id'>; | ||
} : object) & ('release_dates' extends T[number] ? { | ||
release_dates: Omit<ReleaseDates, 'id'>; | ||
} : object) & ('alternative_titles' extends T[number] ? { | ||
alternative_titles: Omit<AlternativeTitles, 'id'>; | ||
} : object) & ('external_ids' extends T[number] ? { | ||
external_ids: Omit<ExternalIds, 'id'>; | ||
} : object) & ('translations' extends T[number] ? { | ||
translations: Omit<Media extends 'person' ? PersonTranslations : Translations, 'id'>; | ||
} : object) & ('watch/providers' extends T[number] ? { | ||
'watch/providers': Omit<WatchProviders, 'id'>; | ||
} : object) & ('aggregate_credits' extends T[number] ? { | ||
aggregate_credits: Omit<Credits, 'id'>; | ||
} : object) & ('episode_groups' extends T[number] ? { | ||
episode_groups: Omit<EpisodeGroups, 'id'>; | ||
} : object) & ('screened_theatrically' extends T[number] ? { | ||
screened_theatrically: Omit<ScreenedTheatrically, 'id'>; | ||
} : object) & ('similar' extends T[number] ? { | ||
similar: Media extends 'movie' ? SimilarMovies : Media extends 'tvShow' ? SimilarTvShows : unknown; | ||
} : object) & ('content_ratings' extends T[number] ? { | ||
content_ratings: Omit<ContentRatings, 'id'>; | ||
} : object) & ('movie_credits' extends T[number] ? { | ||
movie_credits: Omit<PersonMovieCredit, 'id'>; | ||
} : object) & ('tv_credits' extends T[number] ? { | ||
tv_credits: Omit<PersonTvShowCredit, 'id'>; | ||
} : object) & ('combined_credits' extends T[number] ? { | ||
combined_credits: Omit<PersonCombinedCredits, 'id'>; | ||
} : object) & ('tagged_images' extends T[number] ? { | ||
tagged_images: TaggedImages; | ||
} : object) : never); | ||
export {}; |
@@ -1,2 +0,2 @@ | ||
import { Movie, Person, TV } from '.'; | ||
import { Image, Movie, Person, TV } from '.'; | ||
interface Cast { | ||
@@ -72,3 +72,3 @@ character: string; | ||
} | ||
export interface PersonDetail { | ||
export interface PersonDetails { | ||
birthday: string; | ||
@@ -118,2 +118,6 @@ known_for_department: string; | ||
} | ||
export interface PeopleImages { | ||
id: number; | ||
profiles: Image[]; | ||
} | ||
export interface TaggedImage { | ||
@@ -138,3 +142,3 @@ aspect_ratio: number; | ||
} | ||
export interface PeopleTranslations { | ||
export interface PersonTranslations { | ||
id: number; | ||
@@ -141,0 +145,0 @@ translations: { |
@@ -0,1 +1,2 @@ | ||
import { MovieWithMediaType, PersonWithMediaType, TVWithMediaType } from '.'; | ||
export interface Search<T> { | ||
@@ -7,1 +8,2 @@ page: number; | ||
} | ||
export type MultiSearchResult = MovieWithMediaType | TVWithMediaType | PersonWithMediaType; |
@@ -1,10 +0,8 @@ | ||
import { Movie, Person, TV } from '.'; | ||
export type MediaType = 'all' | 'movie' | 'tv' | 'person'; | ||
import { Movie, Person, TV, MediaType, MovieWithMediaType, TVWithMediaType, PersonWithMediaType } from '.'; | ||
export type TimeWindow = 'day' | 'week'; | ||
type TrendingResult<T extends MediaType> = T extends 'tv' ? TV : T extends 'movie' ? Movie : T extends 'person' ? Person : TV | Movie | Person; | ||
export interface TrendingResults<T extends MediaType> { | ||
export type TrendingMediaType = MediaType | 'all'; | ||
type TrendingResult<T extends TrendingMediaType> = T extends 'tv' ? TV : T extends 'movie' ? Movie : T extends 'person' ? Person : TVWithMediaType | MovieWithMediaType | PersonWithMediaType; | ||
export interface TrendingResults<T extends TrendingMediaType> { | ||
page: number; | ||
results: (TrendingResult<T> & { | ||
media_type: MediaType; | ||
})[]; | ||
results: TrendingResult<T>[]; | ||
total_pages: number; | ||
@@ -11,0 +9,0 @@ total_results: number; |
@@ -121,17 +121,2 @@ import { Genre, ProductionCompany, ProductionCountry, SpokenLanguage, Crew } from './'; | ||
} | ||
export interface TvShowItem { | ||
id: string; | ||
action: string; | ||
time: string; | ||
value: Array<number>; | ||
iso_639_1: string; | ||
original_value: Array<number>; | ||
} | ||
export interface TvShowChange { | ||
key: string; | ||
items: TvShowItem[]; | ||
} | ||
export interface TvShowChanges { | ||
changes: TvShowChange[]; | ||
} | ||
export interface Network { | ||
@@ -138,0 +123,0 @@ id: number; |
{ | ||
"name": "tmdb-ts", | ||
"version": "1.0.0", | ||
"version": "1.2.0", | ||
"description": "TMDB v3 library wrapper", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -17,4 +17,6 @@ # tmdb-ts | ||
Version 1.0 removed the default import so make sure you update accordingly! | ||
```js | ||
import TMDB from 'tmdb-ts'; | ||
import { TMDB } from 'tmdb-ts'; | ||
@@ -21,0 +23,0 @@ const tmdb = new TMDB('accessToken'); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
102133
2515
36