UNPKG

stuffs

Version:

Some useful stuffs packed to here.

43 lines 1.02 kB
const REGEX = /(\d+)(mo|ms|M|m|s|y|h|d|w)/g; /** @type {(str: string) => number} */ module.exports = function parseDuration(str) { let duration = 0; [...(str.matchAll(REGEX) || [])].forEach(([_, time, type]) => { time = Number(time); switch (type) { case "mo": case "M": { duration += time * 1000 * 60 * 60 * 24 * 30; break; }; case "ms": { duration += time; break; }; case "m": { duration += time * 1000 * 60; break; } case "s": { duration += time * 1000; break; } case "y": { duration += time * 1000 * 60 * 60 * 24 * 365; break; } case "h": { duration += time * 1000 * 60 * 60; break; } case "d": { duration += time * 1000 * 60 * 60 * 24; break; } case "w": { duration += time * 1000 * 60 * 60 * 24 * 7; break; } } }); return duration; }