1'use strict' 2 3module.exports.promisify = promisify 4function promisify (f) { 5 const util = require('util') 6 if (util.promisify) { 7 return util.promisify(f) 8 } else { 9 return function () { 10 return new Promise((resolve, reject) => { 11 f.apply(this, [].slice.call(arguments).concat((err, val) => { 12 err ? reject(err) : resolve(val) 13 })) 14 }) 15 } 16 } 17} 18