UNPKG

becky

Version:

Promisify and callbackify functions

45 lines (38 loc) 1.03 kB
"use strict"; module.exports = {}; module.exports.callbackify = module.exports.cb = function (func) { return function () { var _this = this; var args = [].slice.call(arguments); var cb = args.pop(); func.apply(this, args).then(function (res) { return cb.call(_this, null, res); }).catch(function (err) { return cb.call(_this, err); }); }; }; module.exports.promisify = module.exports.p = function (func) { return function () { var _this2 = this; var args = [].slice.call(arguments); return new Promise(function (resolve, reject) { args.push(function (err, res) { err ? reject(err) : resolve(res); }); func.apply(_this2, args); }); }; }; module.exports.promisifyMulti = module.exports.pm = function (func) { return function () { var _this3 = this; var args = [].slice.call(arguments); return new Promise(function (resolve, reject) { args.push(function (err) { err ? reject(err) : resolve([].slice.call(arguments, 1)); }); func.apply(_this3, args); }); }; };