@alwatr/parse-duration
Version:
A simple utility to parse a duration string into milliseconds number.
44 lines • 1.57 kB
TypeScript
/**
* 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