const unpackTgz = (packageTgz, unpackTarget) => { const extractOpts = { type: 'Directory', path: unpackTarget, strip: 1 } return new Promise((resolve, reject) => { fs.createReadStream(packageTgz) .on('error', function(err) { reject('Unable to open tarball ' + packageTgz + ': ' + err) }) .pipe(zlib.createUnzip()) .on('error', function(err) { reject('Error during unzip for ' + packageTgz + ': ' + err) }) .pipe(tar.Extract(extractOpts)) .on('error', function(err) { reject('Error during untar for ' + packageTgz + ': ' + err) }) .on('end', function(result) { resolve(result) }) }) }