@specialblend/unpromisify
Version:
convert async functions into callback style functions
24 lines (19 loc) • 912 B
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('assert')) :
typeof define === 'function' && define.amd ? define(['assert'], factory) :
(global = global || self, global.index = factory(global.assert));
}(this, function (assert) { 'use strict';
assert = assert && assert.hasOwnProperty('default') ? assert['default'] : assert;
function unpromisify(handler) {
return (...args) => {
assert(args.length, 'unpromisified handler needs at least 1 argument');
const params = args;
const callback = args.pop();
assert(typeof callback === 'function', 'provided callback argument must be a function');
handler(...params)
.then(data => callback(null, data))
.catch(callback);
};
}
return unpromisify;
}));