const log = require('npmlog')
const timings = new Map()

process.on('time', (name) => {
  timings.set(name, Date.now())
})

process.on('timeEnd', (name) => {
  if (timings.has(name)) {
    const ms = Date.now() - timings.get(name)
    process.emit('timing', name, ms)
    log.timing(name, `Completed in ${ms}ms`)
    timings.delete(name)
  } else {
    log.silly('timing', "Tried to end timer that doesn't exist:", name)
  }
})
