promiseCallback.js 532 Bytes
'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});
const PROMISE_SYMBOL = Symbol('promiseCallback');

function promiseCallback() {
    let resolve, reject;
    function callback(err, ...args) {
        if (err) return reject(err);
        resolve(args.length > 1 ? args : args[0]);
    }

    callback[PROMISE_SYMBOL] = new Promise((res, rej) => {
        resolve = res, reject = rej;
    });

    return callback;
}

exports.promiseCallback = promiseCallback;
exports.PROMISE_SYMBOL = PROMISE_SYMBOL;