diff options
Diffstat (limited to 'node_modules/pretty-time/index.js')
| -rw-r--r-- | node_modules/pretty-time/index.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/node_modules/pretty-time/index.js b/node_modules/pretty-time/index.js new file mode 100644 index 00000000..d768ae36 --- /dev/null +++ b/node_modules/pretty-time/index.js @@ -0,0 +1,56 @@ +/*! + * pretty-time <https://github.com/jonschlinkert/pretty-time> + * + * Copyright (c) 2015-2018, present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +const utils = require('./utils'); + +module.exports = (time, smallest, digits) => { + const isNumber = /^[0-9]+$/.test(time); + if (!isNumber && !Array.isArray(time)) { + throw new TypeError('expected an array or number in nanoseconds'); + } + if (Array.isArray(time) && time.length !== 2) { + throw new TypeError('expected an array from process.hrtime()'); + } + + if (/^[0-9]+$/.test(smallest)) { + digits = smallest; + smallest = null; + } + + let num = isNumber ? time : utils.nano(time); + let res = ''; + let prev; + + for (const uom of Object.keys(utils.scale)) { + const step = utils.scale[uom]; + let inc = num / step; + + if (smallest && utils.isSmallest(uom, smallest)) { + inc = utils.round(inc, digits); + if (prev && (inc === (prev / step))) --inc; + res += inc + uom; + return res.trim(); + } + + if (inc < 1) continue; + if (!smallest) { + inc = utils.round(inc, digits); + res += inc + uom; + return res; + } + + prev = step; + + inc = Math.floor(inc); + num -= (inc * step); + res += inc + uom + ' '; + } + + return res.trim(); +}; |
