import {default as parseDuration} from 'parse-duration'; import { fromUnixTime, parseISO } from 'date-fns'; const EPOCH_TIMESTAMP_REGEX = /^\d+$/; export function parseDate(value: string): Date { const iso = parseISO(value); if (iso.getTime()) { return iso; } else if (EPOCH_TIMESTAMP_REGEX.test(value)) { return fromUnixTime(parseInt(value, 10)); } else { return new Date(Date.now() - parseDuration(value)!); } } export function isValidDateOrEpochOrDurationString(value: string): boolean { return EPOCH_TIMESTAMP_REGEX.test(value) || parseISO(value).getTime() || parseDuration(value) ? true : false; }