UNPKG

axo-electron-rebuild

Version:

Electron supporting package to rebuild native node modules against the currently installed electron

32 lines (26 loc) 737 B
import _ from 'lodash'; const promisify = (funcOrObject) => { if (typeof funcOrObject === 'function') { return function(...args) { return new Promise(function(resolve, reject) { args.push((err, ...rest) => { if (err) { reject(err); } else { resolve(rest.length === 1 ? rest[0] : rest); } }); funcOrObject.apply(this, args); }); }; } if (typeof funcOrObject === 'object') { return _.reduce(Object.keys(funcOrObject), (acc, x) => { acc[x] = promisify(funcOrObject[x]); return acc; }, {}); } // Neither a func or an object, just return itself return funcOrObject; }; export default promisify;