run npm format
This commit is contained in:
@@ -8,7 +8,7 @@ export default class Api {
|
|||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
async get<T>(path: string, options?: Record<string,any>): Promise<T> {
|
async get<T>(path: string, options?: Record<string, any>): Promise<T> {
|
||||||
const params = parseOptions(options);
|
const params = parseOptions(options);
|
||||||
const response = await fetch(`${BASE_URL_V3}${path}?${params}`, {
|
const response = await fetch(`${BASE_URL_V3}${path}?${params}`, {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
|
|||||||
@@ -13,15 +13,30 @@ export class CollectionsEndpoint extends BaseEndpoint {
|
|||||||
super(accessToken);
|
super(accessToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
async details(id: number, options? : LanguageOption): Promise<DetailedCollection> {
|
async details(
|
||||||
return await this.api.get<DetailedCollection>(`${BASE_COLLECTION}/${id}`, options);
|
id: number,
|
||||||
|
options?: LanguageOption
|
||||||
|
): Promise<DetailedCollection> {
|
||||||
|
return await this.api.get<DetailedCollection>(
|
||||||
|
`${BASE_COLLECTION}/${id}`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async images(id: number, options? : LanguageOption): Promise<ImageCollection> {
|
async images(id: number, options?: LanguageOption): Promise<ImageCollection> {
|
||||||
return await this.api.get<ImageCollection>(`${BASE_COLLECTION}/${id}/images`, options);
|
return await this.api.get<ImageCollection>(
|
||||||
|
`${BASE_COLLECTION}/${id}/images`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async translations(id: number, options? : LanguageOption): Promise<Translations> {
|
async translations(
|
||||||
return await this.api.get<Translations>(`${BASE_COLLECTION}/${id}/translations`, options);
|
id: number,
|
||||||
|
options?: LanguageOption
|
||||||
|
): Promise<Translations> {
|
||||||
|
return await this.api.get<Translations>(
|
||||||
|
`${BASE_COLLECTION}/${id}/translations`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
import { MovieDiscoverResult, SortOption, TvShowDiscoverResult } from '../types';
|
import {
|
||||||
|
MovieDiscoverResult,
|
||||||
|
SortOption,
|
||||||
|
TvShowDiscoverResult,
|
||||||
|
} from '../types';
|
||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
|
|
||||||
const BASE_DISCOVER = '/discover';
|
const BASE_DISCOVER = '/discover';
|
||||||
@@ -65,10 +69,16 @@ export class DiscoverEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async movie(options?: MovieQueryOptions): Promise<MovieDiscoverResult> {
|
async movie(options?: MovieQueryOptions): Promise<MovieDiscoverResult> {
|
||||||
return await this.api.get<MovieDiscoverResult>(`${BASE_DISCOVER}/movie`, options);
|
return await this.api.get<MovieDiscoverResult>(
|
||||||
|
`${BASE_DISCOVER}/movie`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async tvShow(options?: TvShowQueryOptions): Promise<TvShowDiscoverResult> {
|
async tvShow(options?: TvShowQueryOptions): Promise<TvShowDiscoverResult> {
|
||||||
return await this.api.get<TvShowDiscoverResult>(`${BASE_DISCOVER}/tv`, options);
|
return await this.api.get<TvShowDiscoverResult>(
|
||||||
|
`${BASE_DISCOVER}/tv`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ export class FindEndpoint extends BaseEndpoint {
|
|||||||
super(accessToken);
|
super(accessToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
async byId(externalId: string, options: ExternalIdOptions): Promise<FindResult> {
|
async byId(
|
||||||
|
externalId: string,
|
||||||
|
options: ExternalIdOptions
|
||||||
|
): Promise<FindResult> {
|
||||||
return await this.api.get<FindResult>(`/find/${externalId}`, options);
|
return await this.api.get<FindResult>(`/find/${externalId}`, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,13 @@ export class KeywordsEndpoint extends BaseEndpoint {
|
|||||||
return await this.api.get<Keyword>(`${BASE_Keyword}/${keywordId}`);
|
return await this.api.get<Keyword>(`${BASE_Keyword}/${keywordId}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async belongingMovies(keywordId : number, options?: KeywordsOptions): Promise<BelongingMovies> {
|
async belongingMovies(
|
||||||
return await this.api.get<BelongingMovies>(`${BASE_Keyword}/${keywordId}/movies`, options);
|
keywordId: number,
|
||||||
|
options?: KeywordsOptions
|
||||||
|
): Promise<BelongingMovies> {
|
||||||
|
return await this.api.get<BelongingMovies>(
|
||||||
|
`${BASE_Keyword}/${keywordId}/movies`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,8 +43,11 @@ export class MoviesEndpoint extends BaseEndpoint {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async changes(id: number, options?: ChangeOptions): Promise<MovieChanges>{
|
async changes(id: number, options?: ChangeOptions): Promise<MovieChanges> {
|
||||||
return await this.api.get<MovieChanges>(`${BASE_MOVIE}/${id}/changes`, options);
|
return await this.api.get<MovieChanges>(
|
||||||
|
`${BASE_MOVIE}/${id}/changes`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async credits(id: number): Promise<Credits> {
|
async credits(id: number): Promise<Credits> {
|
||||||
@@ -63,12 +66,21 @@ export class MoviesEndpoint extends BaseEndpoint {
|
|||||||
return await this.api.get<Keywords>(`${BASE_MOVIE}/${id}/keywords`);
|
return await this.api.get<Keywords>(`${BASE_MOVIE}/${id}/keywords`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async lists(id: number, options?: LanguageOption | PageOption): Promise<MovieLists>{
|
async lists(
|
||||||
|
id: number,
|
||||||
|
options?: LanguageOption | PageOption
|
||||||
|
): 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(id: number, options?: PageOption): Promise<Recommendations>{
|
async recommendations(
|
||||||
return await this.api.get<Recommendations>(`${BASE_MOVIE}/${id}/recommendations`, options);
|
id: number,
|
||||||
|
options?: PageOption
|
||||||
|
): Promise<Recommendations> {
|
||||||
|
return await this.api.get<Recommendations>(
|
||||||
|
`${BASE_MOVIE}/${id}/recommendations`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async releaseDates(id: number): Promise<ReleaseDates> {
|
async releaseDates(id: number): Promise<ReleaseDates> {
|
||||||
@@ -77,12 +89,15 @@ export class MoviesEndpoint extends BaseEndpoint {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async reviews(id: number, options?: PageOption): Promise<Reviews>{
|
async reviews(id: number, options?: 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?: PageOption): Promise<SimilarMovies> {
|
||||||
return await this.api.get<SimilarMovies>(`${BASE_MOVIE}/${id}/similar`, options);
|
return await this.api.get<SimilarMovies>(
|
||||||
|
`${BASE_MOVIE}/${id}/similar`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async translations(id: number): Promise<Translations> {
|
async translations(id: number): Promise<Translations> {
|
||||||
@@ -107,19 +122,34 @@ export class MoviesEndpoint extends BaseEndpoint {
|
|||||||
return await this.api.get<LatestMovie>(`${BASE_MOVIE}/latest`);
|
return await this.api.get<LatestMovie>(`${BASE_MOVIE}/latest`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async nowPlaying(options?: PageOption & LanguageOption & RegionOption): Promise<MoviesPlayingNow>{
|
async nowPlaying(
|
||||||
return await this.api.get<MoviesPlayingNow>(`${BASE_MOVIE}/now_playing`, options);
|
options?: PageOption & LanguageOption & RegionOption
|
||||||
|
): Promise<MoviesPlayingNow> {
|
||||||
|
return await this.api.get<MoviesPlayingNow>(
|
||||||
|
`${BASE_MOVIE}/now_playing`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async popular(options?: PageOption): Promise<PopularMovies>{
|
async popular(options?: PageOption): Promise<PopularMovies> {
|
||||||
return await this.api.get<PopularMovies>(`${BASE_MOVIE}/popular`, options);
|
return await this.api.get<PopularMovies>(`${BASE_MOVIE}/popular`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
async topRated(options?: PageOption & LanguageOption & RegionOption): Promise<TopRatedMovies>{
|
async topRated(
|
||||||
return await this.api.get<TopRatedMovies>(`${BASE_MOVIE}/top_rated`, options);
|
options?: PageOption & LanguageOption & RegionOption
|
||||||
|
): Promise<TopRatedMovies> {
|
||||||
|
return await this.api.get<TopRatedMovies>(
|
||||||
|
`${BASE_MOVIE}/top_rated`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async upcoming(options?: PageOption & LanguageOption & RegionOption): Promise<UpcomingMovies>{
|
async upcoming(
|
||||||
return await this.api.get<UpcomingMovies>(`${BASE_MOVIE}/upcoming`, options);
|
options?: PageOption & LanguageOption & RegionOption
|
||||||
|
): Promise<UpcomingMovies> {
|
||||||
|
return await this.api.get<UpcomingMovies>(
|
||||||
|
`${BASE_MOVIE}/upcoming`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,8 +25,11 @@ export class PeopleEndpoint extends BaseEndpoint {
|
|||||||
return await this.api.get<PersonDetail>(`${BASE_PERSON}/${id}`);
|
return await this.api.get<PersonDetail>(`${BASE_PERSON}/${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async changes(id: number, options? : ChangeOptions): Promise<PersonChanges> {
|
async changes(id: number, options?: ChangeOptions): Promise<PersonChanges> {
|
||||||
return await this.api.get<PersonChanges>(`${BASE_PERSON}/${id}/changes`, options);
|
return await this.api.get<PersonChanges>(
|
||||||
|
`${BASE_PERSON}/${id}/changes`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async movieCredits(id: number): Promise<PersonMovieCredit> {
|
async movieCredits(id: number): Promise<PersonMovieCredit> {
|
||||||
@@ -57,8 +60,11 @@ export class PeopleEndpoint extends BaseEndpoint {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async taggedImages(id: number, options?: PageOption): Promise<TaggedImages>{
|
async taggedImages(id: number, options?: PageOption): Promise<TaggedImages> {
|
||||||
return await this.api.get<TaggedImages>(`${BASE_PERSON}/${id}/tagged_images`, options);
|
return await this.api.get<TaggedImages>(
|
||||||
|
`${BASE_PERSON}/${id}/tagged_images`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async translation(id: number): Promise<PeopleTranslations> {
|
async translation(id: number): Promise<PeopleTranslations> {
|
||||||
@@ -71,7 +77,10 @@ export class PeopleEndpoint extends BaseEndpoint {
|
|||||||
return await this.api.get<PersonDetail>(`${BASE_PERSON}/latest`);
|
return await this.api.get<PersonDetail>(`${BASE_PERSON}/latest`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async popular(options?: PageOption): Promise<PopularPersons>{
|
async popular(options?: PageOption): Promise<PopularPersons> {
|
||||||
return await this.api.get<PopularPersons>(`${BASE_PERSON}/popular`, options);
|
return await this.api.get<PopularPersons>(
|
||||||
|
`${BASE_PERSON}/popular`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,29 +29,40 @@ export class SearchEndpoint extends BaseEndpoint {
|
|||||||
super(accessToken);
|
super(accessToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
async companies(options: SearchOptions): Promise<Search<Company>>{
|
async companies(options: SearchOptions): Promise<Search<Company>> {
|
||||||
return await this.api.get<Search<Company>>(`${BASE_SEARCH}/company`, options);
|
return await this.api.get<Search<Company>>(
|
||||||
|
`${BASE_SEARCH}/company`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async collections(options: SearchOptions): Promise<Search<Collection>>{
|
async collections(options: SearchOptions): Promise<Search<Collection>> {
|
||||||
return await this.api.get<Search<Collection>>(`${BASE_SEARCH}/collection`, options);
|
return await this.api.get<Search<Collection>>(
|
||||||
|
`${BASE_SEARCH}/collection`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async keywords(options: SearchOptions): Promise<Search<{ id: string, name: string }>>{
|
async keywords(
|
||||||
return await this.api.get<Search<{ id: string, name: string }>>(`${BASE_SEARCH}/keyword`, options);
|
options: SearchOptions
|
||||||
|
): Promise<Search<{ id: string; name: string }>> {
|
||||||
|
return await this.api.get<Search<{ id: string; name: string }>>(
|
||||||
|
`${BASE_SEARCH}/keyword`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async movies(options: MovieSearchOptions): Promise<Search<Movie>>{
|
async movies(options: MovieSearchOptions): Promise<Search<Movie>> {
|
||||||
return await this.api.get<Search<Movie>>(`${BASE_SEARCH}/movie`, options);
|
return await this.api.get<Search<Movie>>(`${BASE_SEARCH}/movie`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
async people(options: PeopleSearchOptions): Promise<Search<Person>>{
|
async people(options: PeopleSearchOptions): Promise<Search<Person>> {
|
||||||
return await this.api.get<Search<Person>>(`${BASE_SEARCH}/person`, options);
|
return await this.api.get<Search<Person>>(`${BASE_SEARCH}/person`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Multi search
|
// TODO: Multi search
|
||||||
|
|
||||||
async tvShows(options: TvSearchOptions): Promise<Search<TV>>{
|
async tvShows(options: TvSearchOptions): Promise<Search<TV>> {
|
||||||
return await this.api.get<Search<TV>>(`${BASE_SEARCH}/tv`, options);
|
return await this.api.get<Search<TV>>(`${BASE_SEARCH}/tv`, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,8 +45,11 @@ export class TvShowsEndpoint extends BaseEndpoint {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async changes(id: number, options?: ChangeOptions): Promise<TvShowChanges>{
|
async changes(id: number, options?: ChangeOptions): Promise<TvShowChanges> {
|
||||||
return await this.api.get<TvShowChanges>(`${BASE_TV}/${id}/changes`, options);
|
return await this.api.get<TvShowChanges>(
|
||||||
|
`${BASE_TV}/${id}/changes`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async contentRatings(id: number): Promise<ContentRatings> {
|
async contentRatings(id: number): Promise<ContentRatings> {
|
||||||
@@ -81,11 +84,17 @@ export class TvShowsEndpoint extends BaseEndpoint {
|
|||||||
return await this.api.get<Keywords>(`${BASE_TV}/${id}/keywords`);
|
return await this.api.get<Keywords>(`${BASE_TV}/${id}/keywords`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async recommendations(id: number, options?: PageOption): Promise<Recommendations>{
|
async recommendations(
|
||||||
return await this.api.get<Recommendations>(`${BASE_TV}/${id}/recommendations`, options);
|
id: number,
|
||||||
|
options?: PageOption
|
||||||
|
): Promise<Recommendations> {
|
||||||
|
return await this.api.get<Recommendations>(
|
||||||
|
`${BASE_TV}/${id}/recommendations`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async reviews(id: number, options?: PageOption): Promise<Reviews>{
|
async reviews(id: number, options?: 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,8 +104,11 @@ export class TvShowsEndpoint extends BaseEndpoint {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async similar(id: number, options?: PageOption): Promise<SimilarTvShows>{
|
async similar(id: number, options?: PageOption): Promise<SimilarTvShows> {
|
||||||
return await this.api.get<SimilarTvShows>(`${BASE_TV}/${id}/similar`, options);
|
return await this.api.get<SimilarTvShows>(
|
||||||
|
`${BASE_TV}/${id}/similar`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async translations(id: number): Promise<Translations> {
|
async translations(id: number): Promise<Translations> {
|
||||||
@@ -125,15 +137,24 @@ export class TvShowsEndpoint extends BaseEndpoint {
|
|||||||
return await this.api.get<OnTheAir>(`${BASE_TV}/on_the_air`);
|
return await this.api.get<OnTheAir>(`${BASE_TV}/on_the_air`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async airingToday(options?: PageOption & LanguageOption & RegionOption): Promise<TvShowsAiringToday>{
|
async airingToday(
|
||||||
return await this.api.get<TvShowsAiringToday>(`${BASE_TV}/airing_today`, options);
|
options?: PageOption & LanguageOption & RegionOption
|
||||||
|
): Promise<TvShowsAiringToday> {
|
||||||
|
return await this.api.get<TvShowsAiringToday>(
|
||||||
|
`${BASE_TV}/airing_today`,
|
||||||
|
options
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async popular(options?: PageOption & LanguageOption & RegionOption): Promise<PopularTvShows>{
|
async popular(
|
||||||
|
options?: PageOption & LanguageOption & RegionOption
|
||||||
|
): Promise<PopularTvShows> {
|
||||||
return await this.api.get<PopularTvShows>(`${BASE_TV}/popular`, options);
|
return await this.api.get<PopularTvShows>(`${BASE_TV}/popular`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
async topRated(options?: PageOption & LanguageOption & RegionOption): Promise<TopRatedTvShows>{
|
async topRated(
|
||||||
|
options?: PageOption & LanguageOption & RegionOption
|
||||||
|
): Promise<TopRatedTvShows> {
|
||||||
return await this.api.get<TopRatedTvShows>(`${BASE_TV}/top_rated`, options);
|
return await this.api.get<TopRatedTvShows>(`${BASE_TV}/top_rated`, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
export function parseOptions(
|
export function parseOptions(options?: Record<string, any>): string {
|
||||||
options?: Record<string, any>,
|
return options ? new URLSearchParams(Object.entries(options)).toString() : '';
|
||||||
): string {
|
|
||||||
return options
|
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user