From c36ad8713533a508d771f0422ff0ba7a50ffdb46 Mon Sep 17 00:00:00 2001 From: Christoph Herrmann Date: Wed, 10 May 2017 17:56:11 +0200 Subject: [PATCH] Define format for output --- Readme.md | 8 ++++++++ index.js | 20 ++++++++++++++++++-- package.json | 4 ++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/Readme.md b/Readme.md index d761f47..45ce576 100644 --- a/Readme.md +++ b/Readme.md @@ -85,3 +85,11 @@ Available unit types are: - years (y, yr) And its easy to add more + +### parse(str, format) + +The output format can also be defined + +```js +parse('1hr 20mins', 'm') // => 80 +``` diff --git a/index.js b/index.js index 6798159..61acec5 100644 --- a/index.js +++ b/index.js @@ -41,14 +41,30 @@ parse.year = parse.yr = parse.y = parse.d * 365.25 +/** + * dividers for the output format + */ + +let ms, s, m, h, d, w; +const dividers = { + ms: ms = 1, + s: s = ms * 1000, + m: m = s * 60, + h: h = m * 60, + d: d = h * 24, + w: w = d * 7, +}; + /** * convert `str` to ms * * @param {String} str + * @param {String} format * @return {Number} */ -function parse(str){ +function parse(str, format){ + format = format || 'ms' var result = 0 // ignore commas str = str.replace(/(\d),(\d)/g, '$1$2') @@ -58,5 +74,5 @@ function parse(str){ || 1 result += parseFloat(n, 10) * units }) - return result + return result / dividers[format] } diff --git a/package.json b/package.json index 9209b48..08cc7fd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "parse-duration", - "version": "0.1.1", - "description": "convert a human readable duration string to ms", + "version": "0.2.0", + "description": "convert a human readable duration string to a duration format", "keywords": ["parse","duration","time"], "dependencies": {}, "devDependencies": {