You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'use strict';
Object.defineProperty(exports, "__esModule", { value: true});exports.default = awaitify;// conditionally promisify a function.
// only return a promise if a callback is omitted
function awaitify(asyncFn, arity) { if (!arity) arity = asyncFn.length; if (!arity) throw new Error('arity is undefined'); function awaitable(...args) { if (typeof args[arity - 1] === 'function') { return asyncFn.apply(this, args); }
return new Promise((resolve, reject) => { args[arity - 1] = (err, ...cbArgs) => { if (err) return reject(err); resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]); }; asyncFn.apply(this, args); }); }
return awaitable;}module.exports = exports.default;
|