refactor: simplify restore point

This commit is contained in:
Carlos Valente
2025-09-06 09:41:04 +02:00
committed by Alex Christoffer Rasmussen
parent bc1b3800c8
commit 1866e5e78d
10 changed files with 361 additions and 288 deletions
@@ -0,0 +1,53 @@
import { Playback } from 'ontime-types';
import { is } from '../../utils/is.js';
import type { RestorePoint } from './restore.type.js';
/**
* Utility validates a RestorePoint
*/
export function isRestorePoint(restorePoint: unknown): restorePoint is RestorePoint {
if (!is.object(restorePoint)) {
return false;
}
if (
!is.objectWithKeys(restorePoint, [
'playback',
'selectedEventId',
'startedAt',
'addedTime',
'pausedAt',
'firstStart',
])
) {
return false;
}
if (!is.string(restorePoint.playback) && !Object.values(Playback).includes(restorePoint.playback as Playback)) {
return false;
}
if (!is.string(restorePoint.selectedEventId) && restorePoint.selectedEventId !== null) {
return false;
}
if (!is.number(restorePoint.startedAt) && restorePoint.startedAt !== null) {
return false;
}
if (!is.number(restorePoint.addedTime)) {
return false;
}
if (!is.number(restorePoint.pausedAt) && restorePoint.pausedAt !== null) {
return false;
}
if (!is.number(restorePoint.firstStart) && restorePoint.firstStart !== null) {
return false;
}
return true;
}