@nearform/heap-profiler
Version:
Heap dump, sample profiler and allocation timeline generator for Node.
45 lines (34 loc) • 832 B
JavaScript
const { open, close } = require('fs')
const { join } = require('path')
function ensurePromiseCallback(cb) {
if (typeof cb === 'function') {
return [cb]
}
let promiseResolve, promiseReject
const promise = new Promise((resolve, reject) => {
promiseResolve = resolve
promiseReject = reject
})
return [
function(err, token) {
if (err) {
return promiseReject(err)
}
return promiseResolve(token)
},
promise
]
}
function destinationFile(ext) {
return join(process.cwd(), `profile-${process.pid}-${Date.now()}.${ext}`)
}
function validateDestinationFile(file, cb) {
open(file, 'w', (err, fd) => {
if (err) {
return cb(err)
}
close(fd, cb)
})
}
module.exports = { ensurePromiseCallback, destinationFile, validateDestinationFile }