aboutsummaryrefslogtreecommitdiff
path: root/node_modules/pretty-time
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/pretty-time')
-rw-r--r--node_modules/pretty-time/LICENSE21
-rw-r--r--node_modules/pretty-time/README.md169
-rw-r--r--node_modules/pretty-time/index.js56
-rw-r--r--node_modules/pretty-time/package.json68
-rw-r--r--node_modules/pretty-time/utils.js32
5 files changed, 346 insertions, 0 deletions
diff --git a/node_modules/pretty-time/LICENSE b/node_modules/pretty-time/LICENSE
new file mode 100644
index 00000000..7cccaf9e
--- /dev/null
+++ b/node_modules/pretty-time/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015-present, Jon Schlinkert.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/pretty-time/README.md b/node_modules/pretty-time/README.md
new file mode 100644
index 00000000..15add6c9
--- /dev/null
+++ b/node_modules/pretty-time/README.md
@@ -0,0 +1,169 @@
+# pretty-time [![NPM version](https://img.shields.io/npm/v/pretty-time.svg?style=flat)](https://www.npmjs.com/package/pretty-time) [![NPM monthly downloads](https://img.shields.io/npm/dm/pretty-time.svg?style=flat)](https://npmjs.org/package/pretty-time) [![NPM total downloads](https://img.shields.io/npm/dt/pretty-time.svg?style=flat)](https://npmjs.org/package/pretty-time) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/pretty-time.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/pretty-time)
+
+> Easily format the time from node.js `process.hrtime`. Works with timescales ranging from weeks to nanoseconds.
+
+Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install --save pretty-time
+```
+
+## Usage
+
+```js
+var pretty = require('pretty-time');
+
+var start = process.hrtime();
+var time = process.hrtime(start);
+console.log(pretty(time));
+//=> 3μs
+```
+
+## API
+
+By default, when no time increment is given as the second argument, the closest timescale is used (e.g. _most granular without being less than zero_).
+
+**Examples:**
+
+```js
+pretty([1200708, 795428088]);
+//=> '2w'
+
+pretty([800708, 795428088]);
+//=> '1w'
+
+pretty([400708, 795428088]);
+//=> '5d'
+
+pretty([70708, 795428088]);
+//=> '20h'
+
+pretty([12708, 795428088]);
+//=> '4h'
+
+pretty([3708, 795428088]);
+//=> '1h'
+
+pretty([208, 795428088]);
+//=> '3m'
+
+pretty([20, 795428088]);
+//=> '21s'
+
+pretty([0, 795428088]);
+//=> '795ms'
+
+pretty([0, 000428088]);
+//=> '428μs'
+
+pretty([0, 000000088]);
+//=> '88ns'
+
+pretty([0, 000000018]);
+//=> '18ns'
+```
+
+### Minimum time increment
+
+_(All of the following examples use `[6740, 795428088]` as the hrtime array.)_
+
+This value is passed as the second argument and determines how granular to make the time.
+
+**Examples**
+
+```js
+pretty(time, 'h');
+//=> '2h'
+
+pretty(time, 'm');
+//=> '1h 52m'
+
+pretty(time, 's');
+//=> '1h 52m 21s'
+```
+
+**Valid time increments**
+
+Any of the following may be used:
+
+* `ns` | `nano` | `nanosecond` | `nanoseconds`
+* `μs` | `micro` | `microsecond` | `microseconds`
+* `ms` | `milli` | `millisecond` | `milliseconds`
+* `s` | `sec` | `second` | `seconds`
+* `m` | `min` | `minute` | `minutes`
+* `h` | `hr` | `hour` | `hours`
+* `d` | `day` | `days`
+* `w` | `wk` | `week` | `weeks`
+
+## About
+
+<details>
+<summary><strong>Contributing</strong></summary>
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
+
+</details>
+
+<details>
+<summary><strong>Running Tests</strong></summary>
+
+Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
+
+```sh
+$ npm install && npm test
+```
+
+</details>
+
+<details>
+<summary><strong>Building docs</strong></summary>
+
+_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
+
+To generate the readme, run the following command:
+
+```sh
+$ npm install -g verbose/verb#dev verb-generate-readme && verb
+```
+
+</details>
+
+### Related projects
+
+You might also be interested in these projects:
+
+* [o-clock](https://www.npmjs.com/package/o-clock): Simple javascript utility for displaying the time in 12-hour clock format. | [homepage](https://github.com/jonschlinkert/o-clock "Simple javascript utility for displaying the time in 12-hour clock format.")
+* [seconds](https://www.npmjs.com/package/seconds): Get the number of seconds for a minute, hour, day and week. | [homepage](https://github.com/jonschlinkert/seconds "Get the number of seconds for a minute, hour, day and week.")
+* [time-stamp](https://www.npmjs.com/package/time-stamp): Get a formatted timestamp. | [homepage](https://github.com/jonschlinkert/time-stamp "Get a formatted timestamp.")
+* [timescale](https://www.npmjs.com/package/timescale): Convert from one time scale to another. Nanosecond is the most atomic unit, week is… [more](https://github.com/jonschlinkert/timescale) | [homepage](https://github.com/jonschlinkert/timescale "Convert from one time scale to another. Nanosecond is the most atomic unit, week is the largest unit.")
+* [week](https://www.npmjs.com/package/week): Get the current week number. | [homepage](https://github.com/datetime/week "Get the current week number.")
+* [weekday](https://www.npmjs.com/package/weekday): Get the name and number of the current weekday. Or get the name of the… [more](https://github.com/datetime/weekday) | [homepage](https://github.com/datetime/weekday "Get the name and number of the current weekday. Or get the name of the weekday for a given number.")
+* [year](https://www.npmjs.com/package/year): Simple utility to get the current year with 2 or 4 digits. | [homepage](https://github.com/jonschlinkert/year "Simple utility to get the current year with 2 or 4 digits.")
+
+### Contributors
+
+| **Commits** | **Contributor** |
+| --- | --- |
+| 14 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 5 | [doowb](https://github.com/doowb) |
+
+### Author
+
+**Jon Schlinkert**
+
+* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
+* [GitHub Profile](https://github.com/jonschlinkert)
+* [Twitter Profile](https://twitter.com/jonschlinkert)
+
+### License
+
+Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT License](LICENSE).
+
+***
+
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 12, 2018._ \ No newline at end of file
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();
+};
diff --git a/node_modules/pretty-time/package.json b/node_modules/pretty-time/package.json
new file mode 100644
index 00000000..6375851b
--- /dev/null
+++ b/node_modules/pretty-time/package.json
@@ -0,0 +1,68 @@
+{
+ "name": "pretty-time",
+ "description": "Easily format the time from node.js `process.hrtime`. Works with timescales ranging from weeks to nanoseconds.",
+ "version": "1.1.0",
+ "homepage": "https://github.com/jonschlinkert/pretty-time",
+ "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
+ "repository": "jonschlinkert/pretty-time",
+ "bugs": {
+ "url": "https://github.com/jonschlinkert/pretty-time/issues"
+ },
+ "license": "MIT",
+ "files": [
+ "index.js",
+ "utils.js"
+ ],
+ "main": "index.js",
+ "engines": {
+ "node": ">=4"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "devDependencies": {
+ "gulp-format-md": "^1.0.0",
+ "mocha": "^3.5.3"
+ },
+ "keywords": [
+ "convert",
+ "date",
+ "format",
+ "formatting",
+ "hour",
+ "hrtime",
+ "micro",
+ "milli",
+ "minute",
+ "nano",
+ "nanosecond",
+ "pretty",
+ "second",
+ "time",
+ "week"
+ ],
+ "verb": {
+ "toc": false,
+ "layout": "default",
+ "tasks": [
+ "readme"
+ ],
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "related": {
+ "list": [
+ "o-clock",
+ "seconds",
+ "time-stamp",
+ "timescale",
+ "week",
+ "weekday",
+ "year"
+ ]
+ },
+ "lint": {
+ "reflinks": true
+ }
+ }
+}
diff --git a/node_modules/pretty-time/utils.js b/node_modules/pretty-time/utils.js
new file mode 100644
index 00000000..b84a63f4
--- /dev/null
+++ b/node_modules/pretty-time/utils.js
@@ -0,0 +1,32 @@
+exports.nano = time => +time[0] * 1e9 + +time[1];
+
+exports.scale = {
+ 'w': 6048e11,
+ 'd': 864e11,
+ 'h': 36e11,
+ 'm': 6e10,
+ 's': 1e9,
+ 'ms': 1e6,
+ 'μs': 1e3,
+ 'ns': 1,
+};
+
+exports.regex = {
+ 'w': /^(w((ee)?k)?s?)$/,
+ 'd': /^(d(ay)?s?)$/,
+ 'h': /^(h((ou)?r)?s?)$/,
+ 'm': /^(min(ute)?s?|m)$/,
+ 's': /^((sec(ond)?)s?|s)$/,
+ 'ms': /^(milli(second)?s?|ms)$/,
+ 'μs': /^(micro(second)?s?|μs)$/,
+ 'ns': /^(nano(second)?s?|ns?)$/,
+};
+
+exports.isSmallest = function(uom, unit) {
+ return exports.regex[uom].test(unit);
+};
+
+exports.round = function(num, digits) {
+ const n = Math.abs(num);
+ return /[0-9]/.test(digits) ? n.toFixed(digits) : Math.round(n);
+};