Sha256: ae33c676a4a1733b17bde7a4e20ecf7bbd9743c94222633e58a1375393b7594b
Contents?: true
Size: 796 Bytes
Versions: 21
Compression:
Stored size: 796 Bytes
Contents
'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 = 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'];
Version data entries
21 entries across 21 versions & 1 rubygems