Files
ontime/apps/server/src/api-data/automation/automation.parser.ts
T
2025-12-18 14:42:01 +01:00

33 lines
1.3 KiB
TypeScript

import { DatabaseModel, AutomationSettings, NormalisedAutomation, Trigger } from 'ontime-types';
import type { ErrorEmitter } from '../../utils/parserUtils.js';
import { getPartialProject } from '../../models/dataModel.js';
export function parseAutomationSettings(data: Partial<DatabaseModel>, emitError?: ErrorEmitter): AutomationSettings {
const defaultAutomation: AutomationSettings = getPartialProject('automation');
if (!data.automation) {
emitError?.('No data found to import');
return defaultAutomation;
}
console.log('Found Automation settings, importing...');
return {
enabledAutomations: data.automation.enabledAutomations ?? defaultAutomation.enabledAutomations,
enabledOscIn: data.automation.enabledOscIn ?? defaultAutomation.enabledOscIn,
oscPortIn: data.automation.oscPortIn ?? defaultAutomation.oscPortIn,
triggers: parseTriggers(data.automation.triggers),
automations: parseAutomations(data.automation.automations),
};
}
function parseTriggers(maybeAutomations: unknown): Trigger[] {
if (!Array.isArray(maybeAutomations)) return [];
return maybeAutomations as Trigger[];
}
function parseAutomations(maybeAutomation: unknown): NormalisedAutomation {
if (typeof maybeAutomation !== 'object' || maybeAutomation === null) return {};
return maybeAutomation as NormalisedAutomation;
}