]>
Commit | Line | Data |
---|---|---|
6b5f72be | 1 | import { PickWith, PickWithOpt } from '@shared/typescript-utils' |
453e83ea | 2 | import { VideoStreamingPlaylistModel } from '../../../models/video/video-streaming-playlist' |
d7a25329 C |
3 | import { MVideo } from './video' |
4 | import { MVideoFile } from './video-file' | |
6b5f72be | 5 | import { MVideoRedundancy, MVideoRedundancyFileUrl } from './video-redundancy' |
453e83ea | 6 | |
0283eaac C |
7 | type Use<K extends keyof VideoStreamingPlaylistModel, M> = PickWith<VideoStreamingPlaylistModel, K, M> |
8 | ||
9 | // ############################################################################ | |
10 | ||
d7a25329 C |
11 | export type MStreamingPlaylist = Omit<VideoStreamingPlaylistModel, 'Video' | 'RedundancyVideos' | 'VideoFiles'> |
12 | ||
a1587156 C |
13 | export type MStreamingPlaylistFiles = |
14 | MStreamingPlaylist & | |
d7a25329 | 15 | Use<'VideoFiles', MVideoFile[]> |
453e83ea | 16 | |
a1587156 C |
17 | export type MStreamingPlaylistVideo = |
18 | MStreamingPlaylist & | |
0283eaac | 19 | Use<'Video', MVideo> |
453e83ea | 20 | |
a1587156 C |
21 | export type MStreamingPlaylistFilesVideo = |
22 | MStreamingPlaylist & | |
d7a25329 C |
23 | Use<'VideoFiles', MVideoFile[]> & |
24 | Use<'Video', MVideo> | |
25 | ||
a1587156 C |
26 | export type MStreamingPlaylistRedundanciesAll = |
27 | MStreamingPlaylist & | |
b764380a C |
28 | Use<'VideoFiles', MVideoFile[]> & |
29 | Use<'RedundancyVideos', MVideoRedundancy[]> | |
30 | ||
a1587156 C |
31 | export type MStreamingPlaylistRedundancies = |
32 | MStreamingPlaylist & | |
d7a25329 | 33 | Use<'VideoFiles', MVideoFile[]> & |
0283eaac | 34 | Use<'RedundancyVideos', MVideoRedundancyFileUrl[]> |
b5fecbf4 | 35 | |
a1587156 C |
36 | export type MStreamingPlaylistRedundanciesOpt = |
37 | MStreamingPlaylist & | |
d7a25329 | 38 | Use<'VideoFiles', MVideoFile[]> & |
b5fecbf4 | 39 | PickWithOpt<VideoStreamingPlaylistModel, 'RedundancyVideos', MVideoRedundancyFileUrl[]> |
d7a25329 C |
40 | |
41 | export function isStreamingPlaylist (value: MVideo | MStreamingPlaylistVideo): value is MStreamingPlaylistVideo { | |
764b1a14 | 42 | return !!(value as MStreamingPlaylist).videoId |
d7a25329 | 43 | } |