UNPKG

@alwatr/parse-duration

Version:

A simple utility to parse a duration string into milliseconds number.

44 lines 1.57 kB
/** * Unit conversion table (milliseconds) */ declare const unitConversion: Readonly<{ readonly s: 1000; readonly m: 60000; readonly h: 3600000; readonly d: 86400000; readonly w: 604800000; readonly M: 2592000000; readonly y: 31536000000; }>; /** * Duration unit: `s` for seconds, `m` for minutes, `h` for hours, `d` for days, `w` for weeks, `M` for months, `y` for years. */ export type DurationUnit = keyof typeof unitConversion; /** * Duration string format: `number + unit`, for example `10m` means 10 minutes. */ export type Duration = `${number}${DurationUnit}` | number; /** * Error types that can be thrown by parseDuration */ export type DurationError = 'not_a_number' | 'invalid_unit' | 'invalid_format'; /** * Parse duration string to milliseconds number. * * @param duration - Duration string or number, for example `10m` means 10 minutes. * @param toUnit - Convert to unit, default is `ms` for milliseconds. * @throws {Error} With message 'not_a_number' if duration string doesn't contain a valid number. * @throws {Error} With message 'invalid_unit' if the unit is not recognized. * @throws {Error} With message 'invalid_format' if the duration format is invalid. * @returns Duration in specified unit (or milliseconds by default). * * @example * ```ts * parseDuration('10m'); // 600000 * parseDuration('10m', 's'); // 600 * parseDuration(120_000, 'm'); // 2 * ``` */ export declare const parseDuration: (duration: Duration, toUnit?: DurationUnit) => number; export {}; //# sourceMappingURL=main.d.ts.map