UNPKG

@burglekitt/gmt

Version:

Temporal-based date and time utilities with timezone support and polyfill integration

29 lines (28 loc) 853 B
import { Temporal } from "@js-temporal/polyfill"; /** * Return true if `value` is a valid ISO 8601 duration string. * * - Uses Temporal.Duration.from to validate. * - Accepts date, time, and combined durations, including negative and fractional units. * * @param value ISO 8601 duration string * @returns true if value is a valid ISO 8601 duration string, or false on invalid input * * @example isValidDuration("P1DT2H30M") // true * @example isValidDuration("PT0S") // true * @example isValidDuration("-P1D") // true * @example isValidDuration("not a duration") // false * @example isValidDuration("") // false */ export function isValidDuration(value) { if (typeof value !== "string") { return false; } try { Temporal.Duration.from(value); return true; } catch { return false; } }