UNPKG

motion

Version:

motion - moving development forward

30 lines (27 loc) 932 B
'use strict'; /* @flow */ module.exports = function promisify(callback) { return function promisified() { var _this = this; const parameters = Array.from(arguments); const parametersLength = parameters.length + 1; return new Promise(function (resolve, reject) { parameters.push(function (error, data) { if (error) { reject(error); } else resolve(data); }); if (parametersLength === 1) { callback.call(_this, parameters[0]); } else if (parametersLength === 2) { callback.call(_this, parameters[0], parameters[1]); } else if (parametersLength === 3) { callback.call(_this, parameters[0], parameters[1], parameters[2]); } else if (parametersLength === 4) { callback.call(_this, parameters[0], parameters[1], parameters[2], parameters[3]); } else { callback.apply(_this, parameters); } }); }; };