Files
windmill/frontend/src/lib/components/triggers.ts
T
88b8ffab90 feat: kafka triggers (#4713)
* feat: kafka triggers

* sqlx

* fix build

* improve error messages on windows

* nit

* fix build

* missing action

* nit

* maybe fix ssl on windows

* nit

* update ee ref

---------

Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2024-11-18 17:03:50 +01:00

48 lines
1.1 KiB
TypeScript

import type { TriggersCount } from '$lib/gen'
import type { Writable } from 'svelte/store'
export type ScheduleTrigger = {
summary: string | undefined
args: Record<string, any>
cron: string
timezone: string
enabled: boolean
}
export type TriggerContext = {
selectedTrigger: Writable<
| 'webhooks'
| 'emails'
| 'schedules'
| 'cli'
| 'routes'
| 'websockets'
| 'scheduledPoll'
| 'kafka'
>
primarySchedule: Writable<ScheduleTrigger | undefined | false>
triggersCount: Writable<TriggersCount | undefined>
simplifiedPoll: Writable<boolean | undefined>
}
export function setScheduledPollSchedule(
primarySchedule: Writable<ScheduleTrigger | undefined | false>,
triggersCount: Writable<TriggersCount | undefined>
) {
const cron = '0 */5 * * * *'
primarySchedule.set({
enabled: true,
summary: 'Check for new events every 5 minutes',
cron: cron,
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
args: {}
})
triggersCount.update((triggersCount) => {
return {
...(triggersCount ?? {}),
schedule_count: (triggersCount?.schedule_count ?? 0) + 1,
primary_schedule: { schedule: cron }
}
})
}