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

Version Path
appmap-0.72.2 ./node_modules/async/internal/awaitify.js
appmap-0.72.1 ./node_modules/async/internal/awaitify.js
appmap-0.72.0 ./node_modules/async/internal/awaitify.js
appmap-0.71.0 ./node_modules/async/internal/awaitify.js
appmap-0.70.2 ./node_modules/async/internal/awaitify.js
appmap-0.70.1 ./node_modules/async/internal/awaitify.js
appmap-0.70.0 ./node_modules/async/internal/awaitify.js
appmap-0.69.0 ./node_modules/async/internal/awaitify.js
appmap-0.68.2 ./node_modules/async/internal/awaitify.js
appmap-0.68.1 ./node_modules/async/internal/awaitify.js
appmap-0.68.0 ./node_modules/async/internal/awaitify.js
appmap-0.67.1 ./node_modules/async/internal/awaitify.js
appmap-0.67.0 ./node_modules/async/internal/awaitify.js
appmap-0.66.2 ./node_modules/async/internal/awaitify.js
appmap-0.66.1 ./node_modules/async/internal/awaitify.js
appmap-0.66.0 ./node_modules/async/internal/awaitify.js
appmap-0.65.1 ./node_modules/async/internal/awaitify.js
appmap-0.65.0 ./node_modules/async/internal/awaitify.js
appmap-0.64.0 ./node_modules/async/internal/awaitify.js
appmap-0.63.0 ./node_modules/async/internal/awaitify.js