mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-08 17:03:53 +00:00
33 lines
1.3 KiB
TypeScript
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;
|
|
}
|