UNPKG

@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_.

40 lines (30 loc) 1.26 kB
import { RRuleSchedule, CronSchedule, IntervalSchedule } from '@/models' export type Schedule = RRuleSchedule | CronSchedule | IntervalSchedule export function isSchedule(schedule: unknown): schedule is Schedule { return isRRuleSchedule(schedule) || isCronSchedule(schedule) || isIntervalSchedule(schedule) } export function isRRuleSchedule(schedule: unknown): schedule is RRuleSchedule { return typeof schedule == 'object' && schedule !== null && 'rrule' in schedule } export function isCronSchedule(schedule: unknown): schedule is CronSchedule { return typeof schedule == 'object' && schedule !== null && 'cron' in schedule } export function isIntervalSchedule(schedule: unknown): schedule is IntervalSchedule { return typeof schedule == 'object' && schedule !== null && 'interval' in schedule } export const ScheduleTypes = ['rrule', 'cron', 'interval'] as const export type ScheduleType = typeof ScheduleTypes[number] export function getScheduleType(schedule?: unknown): ScheduleType | null { if (isSchedule(schedule)) { if (isRRuleSchedule(schedule)) { return 'rrule' } if (isCronSchedule(schedule)) { return 'cron' } if (isIntervalSchedule(schedule)) { return 'interval' } } return null }