|
@@ -1,11 +1,7 @@
|
|
|
-import cronstrue from 'cronstrue';
|
|
|
-
|
|
|
import {t, tn} from 'sentry/locale';
|
|
|
import type {Organization, SelectValue} from 'sentry/types';
|
|
|
-import {shouldUse24Hours} from 'sentry/utils/dates';
|
|
|
import type {ColorOrAlias} from 'sentry/utils/theme';
|
|
|
-import type {MonitorConfig} from 'sentry/views/monitors/types';
|
|
|
-import {CheckInStatus, ScheduleType} from 'sentry/views/monitors/types';
|
|
|
+import {CheckInStatus} from 'sentry/views/monitors/types';
|
|
|
|
|
|
export function makeMonitorListQueryKey(
|
|
|
organization: Organization,
|
|
@@ -42,62 +38,6 @@ export function makeMonitorDetailsQueryKey(
|
|
|
] as const;
|
|
|
}
|
|
|
|
|
|
-export function crontabAsText(crontabInput: string | null): string | null {
|
|
|
- if (!crontabInput) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- let parsedSchedule: string;
|
|
|
- try {
|
|
|
- parsedSchedule = cronstrue.toString(crontabInput, {
|
|
|
- verbose: false,
|
|
|
- use24HourTimeFormat: shouldUse24Hours(),
|
|
|
- });
|
|
|
- } catch (_e) {
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- return parsedSchedule;
|
|
|
-}
|
|
|
-
|
|
|
-export function scheduleAsText(config: MonitorConfig) {
|
|
|
- // Crontab format uses cronstrue
|
|
|
- if (config.schedule_type === ScheduleType.CRONTAB) {
|
|
|
- const parsedSchedule = crontabAsText(config.schedule);
|
|
|
- return parsedSchedule ?? t('Unknown schedule');
|
|
|
- }
|
|
|
-
|
|
|
- if (config.schedule_type === ScheduleType.INTERVAL) {
|
|
|
- // Interval format is simpler
|
|
|
- const [value, timeUnit] = config.schedule;
|
|
|
-
|
|
|
- if (timeUnit === 'minute') {
|
|
|
- return tn('Every minute', 'Every %s minutes', value);
|
|
|
- }
|
|
|
-
|
|
|
- if (timeUnit === 'hour') {
|
|
|
- return tn('Every hour', 'Every %s hours', value);
|
|
|
- }
|
|
|
-
|
|
|
- if (timeUnit === 'day') {
|
|
|
- return tn('Every day', 'Every %s days', value);
|
|
|
- }
|
|
|
-
|
|
|
- if (timeUnit === 'week') {
|
|
|
- return tn('Every week', 'Every %s weeks', value);
|
|
|
- }
|
|
|
-
|
|
|
- if (timeUnit === 'month') {
|
|
|
- return tn('Every month', 'Every %s months', value);
|
|
|
- }
|
|
|
-
|
|
|
- if (timeUnit === 'year') {
|
|
|
- return tn('Every year', 'Every %s years', value);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return t('Unknown schedule');
|
|
|
-}
|
|
|
-
|
|
|
export const statusToText: Record<CheckInStatus, string> = {
|
|
|
[CheckInStatus.OK]: t('Okay'),
|
|
|
[CheckInStatus.ERROR]: t('Failed'),
|