12345678910111213141516171819202122232425262728293031323334353637 |
- import { describeInterval } from '@grafana/data/src/datetime/rangeutil';
- import { TimeOptions } from '../types/time';
- export function parseInterval(value: string): [number, string] {
- const match = value.match(/(\d+)(\w+)/);
- if (match) {
- return [Number(match[1]), match[2]];
- }
- throw new Error(`Invalid interval description: ${value}`);
- }
- export function intervalToSeconds(interval: string): number {
- const { sec, count } = describeInterval(interval);
- return sec * count;
- }
- export const timeOptions = Object.entries(TimeOptions).map(([key, value]) => ({
- label: key[0].toUpperCase() + key.slice(1),
- value: value,
- }));
- // 1h, 10m and such
- export const positiveDurationValidationPattern = {
- value: new RegExp(`^\\d+(${Object.values(TimeOptions).join('|')})$`),
- message: `Must be of format "(number)(unit)" , for example "1m". Available units: ${Object.values(TimeOptions).join(
- ', '
- )}`,
- };
- // 1h, 10m or 0 (without units)
- export const durationValidationPattern = {
- value: new RegExp(`^\\d+(${Object.values(TimeOptions).join('|')})|0$`),
- message: `Must be of format "(number)(unit)", for example "1m", or just "0". Available units: ${Object.values(
- TimeOptions
- ).join(', ')}`,
- };
|