unitimer
Advanced tools
Comparing version 3.6.1 to 3.7.1
function now() { | ||
return typeof window.performance !== 'undefined' && | ||
typeof window.performance.now !== 'undefined' | ||
? window.performance.now() | ||
: Date.now() | ||
return typeof window.performance !== 'undefined' && typeof window.performance.now !== 'undefined' ? window.performance.now() : Date.now(); | ||
} | ||
module.exports = now | ||
module.exports = now; |
139
lib/index.js
@@ -1,69 +0,76 @@ | ||
const now = require('./now') | ||
var now = require('./now'); | ||
function toFixed(v, dp) { | ||
if (typeof dp === 'undefined') { | ||
return v | ||
return v; | ||
} | ||
return v.toFixed(dp) | ||
return v.toFixed(dp); | ||
} | ||
function createInstance(tag) { | ||
let totalTime | ||
let meanTime | ||
let minTime | ||
let maxTime | ||
let count | ||
let tookTime | ||
let startTimes | ||
var totalTime = void 0; | ||
var meanTime = void 0; | ||
var minTime = void 0; | ||
var maxTime = void 0; | ||
var _count = void 0; | ||
var tookTime = void 0; | ||
var startTimes = void 0; | ||
function reset() { | ||
totalTime = 0 | ||
meanTime = 0 | ||
minTime = -1 | ||
maxTime = -1 | ||
count = 0 | ||
tookTime = 0 | ||
startTimes = {} | ||
totalTime = 0; | ||
meanTime = 0; | ||
minTime = -1; | ||
maxTime = -1; | ||
_count = 0; | ||
tookTime = 0; | ||
startTimes = {}; | ||
} | ||
reset() | ||
reset(); | ||
return { | ||
start(id = 'default') { | ||
const time = now() | ||
startTimes[id] = time | ||
return this | ||
start: function start() { | ||
var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; | ||
var time = now(); | ||
startTimes[id] = time; | ||
return this; | ||
}, | ||
stop(id = 'default') { | ||
const startTime = startTimes[id] | ||
if (!startTime) { return -1 } | ||
tookTime = now() - startTime | ||
minTime = minTime === -1 ? tookTime : Math.min(minTime, tookTime) | ||
maxTime = maxTime === -1 ? tookTime : Math.max(maxTime, tookTime) | ||
totalTime += tookTime | ||
count += 1 | ||
meanTime = totalTime / count | ||
startTimes[id] = undefined | ||
return tookTime | ||
stop: function stop() { | ||
var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; | ||
var startTime = startTimes[id]; | ||
if (!startTime) { | ||
return -1; | ||
} | ||
tookTime = now() - startTime; | ||
minTime = minTime === -1 ? tookTime : Math.min(minTime, tookTime); | ||
maxTime = maxTime === -1 ? tookTime : Math.max(maxTime, tookTime); | ||
totalTime += tookTime; | ||
_count += 1; | ||
meanTime = totalTime / _count; | ||
startTimes[id] = undefined; | ||
return tookTime; | ||
}, | ||
reset, | ||
took() { | ||
return tookTime | ||
reset: reset, | ||
took: function took() { | ||
return tookTime; | ||
}, | ||
total() { | ||
return totalTime | ||
total: function total() { | ||
return totalTime; | ||
}, | ||
mean() { | ||
return meanTime | ||
mean: function mean() { | ||
return meanTime; | ||
}, | ||
count() { | ||
return count | ||
count: function count() { | ||
return _count; | ||
}, | ||
min() { | ||
return minTime | ||
min: function min() { | ||
return minTime; | ||
}, | ||
max() { | ||
return maxTime | ||
max: function max() { | ||
return maxTime; | ||
}, | ||
stats() { | ||
stats: function stats() { | ||
return { | ||
@@ -73,29 +80,23 @@ mean: meanTime, | ||
total: totalTime, | ||
count, | ||
count: _count, | ||
min: minTime, | ||
max: maxTime | ||
} | ||
}; | ||
}, | ||
info(dp) { | ||
return `${tag ? `[${tag}] ` : ''}mean: ${toFixed(meanTime, dp) | ||
}ms, took: ${toFixed(tookTime, dp) | ||
}ms, total: ${toFixed(totalTime, dp) | ||
}ms, count: ${count | ||
}, min: ${toFixed(minTime, dp) | ||
}ms, max: ${toFixed(maxTime, dp) | ||
}ms` | ||
info: function info(dp) { | ||
return (tag ? '[' + tag + '] ' : '') + 'mean: ' + toFixed(meanTime, dp) + 'ms, took: ' + toFixed(tookTime, dp) + 'ms, total: ' + toFixed(totalTime, dp) + 'ms, count: ' + _count + ', min: ' + toFixed(minTime, dp) + 'ms, max: ' + toFixed(maxTime, dp) + 'ms'; | ||
}, | ||
log(dp) { | ||
log: function log(dp) { | ||
// eslint-disable-next-line no-console | ||
console.log(this.info(dp)) | ||
console.log(this.info(dp)); | ||
} | ||
} | ||
}; | ||
} | ||
function isArray(o) { | ||
return Object.prototype.toString.call(o) === '[object Array]' | ||
return Object.prototype.toString.call(o) === '[object Array]'; | ||
} | ||
function isString(o) { | ||
return (typeof o === 'string') || (o instanceof String) | ||
return typeof o === 'string' || o instanceof String; | ||
} | ||
@@ -105,14 +106,14 @@ | ||
if (isArray(tags)) { | ||
const a = [] | ||
for (let i = 0; i < tags.length; i += 1) { | ||
a.push(createInstance(tags[i])) | ||
var a = []; | ||
for (var i = 0; i < tags.length; i += 1) { | ||
a.push(createInstance(tags[i])); | ||
} | ||
return a | ||
return a; | ||
} | ||
if (isString(tags)) { | ||
return createInstance(tags) | ||
return createInstance(tags); | ||
} | ||
return createInstance() | ||
return createInstance(); | ||
} | ||
module.exports = createTimer | ||
module.exports = createTimer; |
function now() { | ||
const t = process.hrtime() | ||
return (t[0] * 1000) + (t[1] / 1000000) | ||
var t = process.hrtime(); | ||
return t[0] * 1000 + t[1] / 1000000; | ||
} | ||
module.exports = now | ||
module.exports = now; |
{ | ||
"name": "unitimer", | ||
"version": "3.6.1", | ||
"version": "3.7.1", | ||
"description": "Universal timer (Node.js and browser)", | ||
@@ -10,4 +10,4 @@ "main": "./lib/index.js", | ||
"scripts": { | ||
"build": "webpack", | ||
"watch": "webpack --watch", | ||
"build": "babel src/ -d lib/", | ||
"watch": "babel -w src/ -d lib/", | ||
"lint": "eslint . --ext .js", | ||
@@ -55,2 +55,3 @@ "fix": "eslint . --ext .js --fix", | ||
"babel-loader": "^7.1.0", | ||
"babel-plugin-add-module-exports": "^0.2.1", | ||
"babel-plugin-transform-runtime": "^6.23.0", | ||
@@ -66,5 +67,4 @@ "babel-preset-latest": "^6.24.1", | ||
"sinon": "^2.3.1", | ||
"watchify": "^3.7.0", | ||
"webpack": "^3.0.0" | ||
"watchify": "^3.7.0" | ||
} | ||
} |
const test = require('ava') | ||
const sinon = require('sinon') | ||
const createTimer = require('../lib') | ||
const createTimer = require('../src') | ||
@@ -5,0 +5,0 @@ function stubHrtime(times) { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
16
174961
514