"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const minute = 60; const hour = minute * 60; const day = hour * 24; const week = day * 7; const year = day * 365.25; const REGEX = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i; exports.default = (str) => { const matched = REGEX.exec(str); if (!matched || (matched[4] && matched[1])) { throw new TypeError('Invalid time period format'); } const value = parseFloat(matched[2]); const unit = matched[3].toLowerCase(); let numericDate; switch (unit) { case 'sec': case 'secs': case 'second': case 'seconds': case 's': numericDate = Math.round(value); break; case 'minute': case 'minutes': case 'min': case 'mins': case 'm': numericDate = Math.round(value * minute); break; case 'hour': case 'hours': case 'hr': case 'hrs': case 'h': numericDate = Math.round(value * hour); break; case 'day': case 'days': case 'd': numericDate = Math.round(value * day); break; case 'week': case 'weeks': case 'w': numericDate = Math.round(value * week); break; default: numericDate = Math.round(value * year); break; } if (matched[1] === '-' || matched[4] === 'ago') { return -numericDate; } return numericDate; };