parse-duration
Advanced tools
Comparing version 0.1.0 to 0.1.1
37
index.js
var duration = /(-?\d*\.?\d+(?:e[-+]?\d+)?)\s*([a-z]*)/ig | ||
var duration = /(-?\d*\.?\d+(?:e[-+]?\d+)?)\s*([a-zμ]*)/ig | ||
@@ -10,24 +10,32 @@ module.exports = parse | ||
parse.nanosecond = | ||
parse.ns = 1 / 1e6 | ||
parse.μs = | ||
parse.microsecond = 1 / 1e3 | ||
parse.millisecond = | ||
parse.ms = 1 | ||
parse.seconds = | ||
parse.second = | ||
parse.sec = | ||
parse.s = parse.ms * 1000 | ||
parse.minutes = | ||
parse.minute = | ||
parse.min = | ||
parse.mins = | ||
parse.m = parse.s * 60 | ||
parse.hours = | ||
parse.hour = | ||
parse.hr = | ||
parse.h = parse.m * 60 | ||
parse.days = | ||
parse.day = | ||
parse.d = parse.h * 24 | ||
parse.weeks = | ||
parse.week = | ||
parse.wk = | ||
parse.w = parse.d * 7 | ||
parse.years = | ||
parse.month = parse.d * (365.25 / 12) | ||
parse.year = | ||
@@ -45,7 +53,10 @@ parse.yr = | ||
function parse(str){ | ||
var result = 0 | ||
str.replace(duration, function(_, n, units){ | ||
result += parseFloat(n, 10) * (parse[units] || 1) | ||
}) | ||
return result | ||
var result = 0 | ||
str.replace(duration, function(_, n, units){ | ||
units = parse[units] | ||
|| parse[units.toLowerCase().replace(/s$/, '')] | ||
|| 1 | ||
result += parseFloat(n, 10) * units | ||
}) | ||
return result | ||
} |
{ | ||
"name": "parse-duration", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"description": "convert a human readable duration string to ms", | ||
@@ -5,0 +5,0 @@ "keywords": ["parse","duration","time"], |
@@ -27,2 +27,4 @@ | ||
```js | ||
var ns = parse('1ns') // => 1 / 1e6 | ||
var μs = parse('1μs') // => 1 / 1000 | ||
var ms = parse('1ms') // => 1 | ||
@@ -37,6 +39,6 @@ var s = parse('1s') // => ms * 1000 | ||
It can also handle basic compound expressions | ||
It can also handle basic compound expressions | ||
```js | ||
parse('1hr 20mins') // => h + 20 * m | ||
parse('1hr 20mins') // => 1 * h + 20 * m | ||
``` | ||
@@ -47,3 +49,3 @@ | ||
```js | ||
parse('1 hr 20 mins') // => h + 20 * m | ||
parse('1 hr 20 mins') // => 1 * h + 20 * m | ||
``` | ||
@@ -54,3 +56,3 @@ | ||
```js | ||
parse('running length: 1hour:20mins') // => h + 20 * m | ||
parse('running length: 1hour:20mins') // => 1* h + 20 * m | ||
``` | ||
@@ -61,3 +63,3 @@ | ||
```js | ||
parse('2hr -40mins') // => h + 20 * m | ||
parse('2hr -40mins') // => 1 * h + 20 * m | ||
``` | ||
@@ -73,24 +75,13 @@ | ||
- ms | ||
- s | ||
- sec | ||
- second | ||
- seconds | ||
- m | ||
- mins | ||
- min | ||
- minute | ||
- minutes | ||
- h | ||
- hr | ||
- hour | ||
- hours | ||
- d | ||
- day | ||
- days | ||
- y | ||
- yr | ||
- year | ||
- years | ||
- nanoseconds (ns) | ||
- microseconds (μs) | ||
- milliseconds (ms) | ||
- seconds (s, sec) | ||
- minutes (m, min) | ||
- hours (h, hr) | ||
- days (d) | ||
- weeks (w, wk) | ||
- months | ||
- years (y, yr) | ||
And its easy to add more |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2767
45
82