]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/typings/models/video/video-import.ts
Cleanup model types
[github/Chocobozzz/PeerTube.git] / server / typings / models / video / video-import.ts
index 51be900d6d63e5375698732717fe950534060df5..ada7237134c14502f149ac56660ea7f2f58043a4 100644 (file)
@@ -2,14 +2,23 @@ import { VideoImportModel } from '@server/models/video/video-import'
 import { PickWith } from '@server/typings/utils'
 import { MUser, MVideo, MVideoAccountLight, MVideoTag, MVideoThumbnail, MVideoWithFile } from '@server/typings/models'
 
-export type MVideoImport = Omit<VideoImportModel, 'User' | 'Video'>
+type Use<K extends keyof VideoImportModel, M> = PickWith<VideoImportModel, K, M>
 
-export type MVideoImportDefault = MVideoImport &
-  PickWith<VideoImportModel, 'User', MUser> &
-  PickWith<VideoImportModel, 'Video', MVideoTag & MVideoAccountLight & MVideoThumbnail>
+// ############################################################################
 
-export type MVideoImportDefaultFiles = MVideoImportDefault &
-  PickWith<VideoImportModel, 'Video', MVideoTag & MVideoAccountLight & MVideoThumbnail & MVideoWithFile>
+export type MVideoImport = Omit<VideoImportModel, 'User' | 'Video'>
 
 export type MVideoImportVideo = MVideoImport &
-  PickWith<VideoImportModel, 'Video', MVideo>
+  Use<'Video', MVideo>
+
+// ############################################################################
+
+type VideoAssociation = MVideoTag & MVideoAccountLight & MVideoThumbnail
+
+export type MVideoImportDefault = MVideoImport &
+  Use<'User', MUser> &
+  Use<'Video', VideoAssociation>
+
+export type MVideoImportDefaultFiles = MVideoImport &
+  Use<'User', MUser> &
+  Use<'Video', VideoAssociation & MVideoWithFile>