npm
Version:
a package manager for JavaScript
23 lines (19 loc) • 563 B
JavaScript
const timers = Object.create(null)
process.on('time', name => {
if (timers[name])
throw new Error('conflicting timer! ' + name)
timers[name] = process.hrtime()
})
process.on('timeEnd', name => {
if (!timers[name])
throw new Error('timer not started! ' + name)
const res = process.hrtime(timers[name])
delete timers[name]
console.error(`${process.pid} ${name}`, res[0] * 1e3 + res[1] / 1e6)
})
process.on('exit', () => {
for (const name of Object.keys(timers)) {
console.error('Dangling timer: ', name)
process.exitCode = 1
}
})