mirror of
https://github.com/movie-web/movie-web.git
synced 2025-02-04 18:56:28 +01:00
32b36e047d
Co-authored-by: James Hawkins <jhawki2005@gmail.com>
32 lines
933 B
TypeScript
32 lines
933 B
TypeScript
import { MWMedia, MWMediaProvider, MWMediaStream, MWPortableMedia, MWQuery } from "./types";
|
|
|
|
export interface MWWrappedMediaProvider extends MWMediaProvider {
|
|
getMediaFromPortable(media: MWPortableMedia): Promise<MWMedia>;
|
|
searchForMedia(query: MWQuery): Promise<MWMedia[]>;
|
|
getStream(media: MWPortableMedia): Promise<MWMediaStream>;
|
|
}
|
|
|
|
export function WrapProvider(
|
|
provider: MWMediaProvider
|
|
): MWWrappedMediaProvider {
|
|
return {
|
|
...provider,
|
|
|
|
async getMediaFromPortable(media: MWPortableMedia): Promise<MWMedia> {
|
|
return {
|
|
...(await provider.getMediaFromPortable(media)),
|
|
providerId: provider.id,
|
|
mediaType: media.mediaType,
|
|
};
|
|
},
|
|
|
|
async searchForMedia(query: MWQuery): Promise<MWMedia[]> {
|
|
return (await provider.searchForMedia(query)).map<MWMedia>((m) => ({
|
|
...m,
|
|
providerId: provider.id,
|
|
mediaType: query.type,
|
|
}));
|
|
},
|
|
};
|
|
}
|