Break apart view.ts into multiple files.

This commit is contained in:
Dermot Duffy
2023-01-24 19:36:54 -08:00
parent 9cdf4e8e4d
commit 980ba1fc6f
21 changed files with 264 additions and 250 deletions
+53
View File
@@ -0,0 +1,53 @@
import { ModifyInterface } from '../utils/basic.js';
import { ViewMedia, FrigateEventViewMedia, FrigateRecordingViewMedia } from './media';
export class ViewMediaClassifier {
public static isFrigateMedia(
media: ViewMedia,
): media is FrigateEventViewMedia | FrigateRecordingViewMedia {
return this.isFrigateEvent(media) || this.isFrigateRecording(media);
}
public static isFrigateEvent(media: ViewMedia): media is FrigateEventViewMedia {
return media instanceof FrigateEventViewMedia;
}
public static isFrigateRecording(
media: ViewMedia,
): media is FrigateRecordingViewMedia {
return media instanceof FrigateRecordingViewMedia;
}
// Typescript conveniences.
public static isMediaWithStartEndTime(media: ViewMedia): media is ModifyInterface<
ViewMedia,
{
getStartTime(): Date;
getEndTime(): Date;
}
> {
return !!media.getStartTime() && !!media.getEndTime();
}
public static isMediaWithStartTime(media: ViewMedia): media is ModifyInterface<
ViewMedia,
{
getStartTime(): Date;
}
> {
return !!media.getStartTime();
}
public static isMediaWithEndTime(media: ViewMedia): media is ModifyInterface<
ViewMedia,
{
getEndTime(): Date;
}
> {
return !!media.getEndTime();
}
public static isMediaWithID(media: ViewMedia): media is ModifyInterface<
ViewMedia,
{
getID(): string;
}
> {
return !!media.getID();
}
}