lib/condenser/processors/node_modules/ms/index.js in condenser-0.0.4 vs lib/condenser/processors/node_modules/ms/index.js in condenser-0.0.5
- old
+ new
@@ -4,10 +4,11 @@
var s = 1000;
var m = s * 60;
var h = m * 60;
var d = h * 24;
+var w = d * 7;
var y = d * 365.25;
/**
* Parse or format the given `val`.
*
@@ -25,11 +26,11 @@
module.exports = function(val, options) {
options = options || {};
var type = typeof val;
if (type === 'string' && val.length > 0) {
return parse(val);
- } else if (type === 'number' && isNaN(val) === false) {
+ } else if (type === 'number' && isFinite(val)) {
return options.long ? fmtLong(val) : fmtShort(val);
}
throw new Error(
'val is not a non-empty string or a valid number. val=' +
JSON.stringify(val)
@@ -47,11 +48,11 @@
function parse(str) {
str = String(str);
if (str.length > 100) {
return;
}
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
str
);
if (!match) {
return;
}
@@ -62,10 +63,14 @@
case 'year':
case 'yrs':
case 'yr':
case 'y':
return n * y;
+ case 'weeks':
+ case 'week':
+ case 'w':
+ return n * w;
case 'days':
case 'day':
case 'd':
return n * d;
case 'hours':
@@ -104,20 +109,21 @@
* @return {String}
* @api private
*/
function fmtShort(ms) {
- if (ms >= d) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
return Math.round(ms / d) + 'd';
}
- if (ms >= h) {
+ if (msAbs >= h) {
return Math.round(ms / h) + 'h';
}
- if (ms >= m) {
+ if (msAbs >= m) {
return Math.round(ms / m) + 'm';
}
- if (ms >= s) {
+ if (msAbs >= s) {
return Math.round(ms / s) + 's';
}
return ms + 'ms';
}
@@ -128,25 +134,29 @@
* @return {String}
* @api private
*/
function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return plural(ms, msAbs, d, 'day');
+ }
+ if (msAbs >= h) {
+ return plural(ms, msAbs, h, 'hour');
+ }
+ if (msAbs >= m) {
+ return plural(ms, msAbs, m, 'minute');
+ }
+ if (msAbs >= s) {
+ return plural(ms, msAbs, s, 'second');
+ }
+ return ms + ' ms';
}
/**
* Pluralization helper.
*/
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
+function plural(ms, msAbs, n, name) {
+ var isPlural = msAbs >= n * 1.5;
+ return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
}