@prefecthq/prefect-ui-library
Version:
This library is the Vue and Typescript component library for [Prefect 2](https://github.com/PrefectHQ/prefect) and [Prefect Cloud 2](https://www.prefect.io/cloud/). _The components and utilities in this project are not meant to be used independently_.
23 lines (18 loc) • 1.36 kB
text/typescript
import { isArray } from '@prefecthq/prefect-design'
import { AutomationTriggerCompound } from '@/automations/types/automationTriggerCompound'
import { AutomationTriggerEvent, isAutomationTriggerEventPosture } from '@/automations/types/automationTriggerEvent'
import { AutomationTriggerSequence } from '@/automations/types/automationTriggerSequence'
import { isRecord } from '@/utilities/object'
export function isAutomationTriggerEvent(value: unknown): value is AutomationTriggerEvent {
return isRecord(value) && value.type === 'event' && isAutomationTriggerEventPosture(value.posture)
}
export function isAutomationTriggerCompound(value: unknown): value is AutomationTriggerCompound {
return isRecord(value) && value.type === 'compound' && isArray(value.triggers) && value.triggers.every(isAutomationTrigger)
}
export function isAutomationTriggerSequence(value: unknown): value is AutomationTriggerSequence {
return isRecord(value) && value.type === 'sequence' && isArray(value.triggers) && value.triggers.every(isAutomationTrigger)
}
export type AutomationTrigger = AutomationTriggerEvent | AutomationTriggerCompound | AutomationTriggerSequence
export function isAutomationTrigger(value: unknown): value is AutomationTrigger {
return isAutomationTriggerEvent(value) || isAutomationTriggerCompound(value) || isAutomationTriggerSequence(value)
}