callbackify.js 2.2 KB

123456789101112131415161718192021
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.callbackify = callbackify;
  6. /* eslint-disable @typescript-eslint/no-explicit-any */
  7. // Wrapper for an async function that supports callback style API.
  8. // It will preserve 'this'.
  9. function callbackify(fn) {
  10. return function (...args) {
  11. const lastArg = args[args.length - 1];
  12. if (typeof lastArg === 'function') {
  13. const callback = args.pop();
  14. return fn.apply(this, args).then(result => callback(null, result), err => callback(err));
  15. }
  16. return fn.apply(this, args);
  17. };
  18. }
  19. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjYWxsYmFja2lmeSIsImZuIiwiYXJncyIsImxhc3RBcmciLCJsZW5ndGgiLCJjYWxsYmFjayIsInBvcCIsImFwcGx5IiwidGhlbiIsInJlc3VsdCIsImVyciJdLCJzb3VyY2VzIjpbImNhbGxiYWNraWZ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuLy8gV3JhcHBlciBmb3IgYW4gYXN5bmMgZnVuY3Rpb24gdGhhdCBzdXBwb3J0cyBjYWxsYmFjayBzdHlsZSBBUEkuXG4vLyBJdCB3aWxsIHByZXNlcnZlICd0aGlzJy5cbmV4cG9ydCBmdW5jdGlvbiBjYWxsYmFja2lmeShmbjogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGlzOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgbGFzdEFyZyA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXVxuXG4gICAgaWYgKHR5cGVvZiBsYXN0QXJnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IGFyZ3MucG9wKClcbiAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmdzKS50aGVuKFxuICAgICAgICAocmVzdWx0OiBhbnkpID0+IGNhbGxiYWNrKG51bGwsIHJlc3VsdCksXG4gICAgICAgIChlcnI6IGFueSkgPT4gY2FsbGJhY2soZXJyKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJncylcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFFQTtBQUNBO0FBQ08sU0FBU0EsV0FBV0EsQ0FBQ0MsRUFBMkIsRUFBRTtFQUN2RCxPQUFPLFVBQXFCLEdBQUdDLElBQVcsRUFBRTtJQUMxQyxNQUFNQyxPQUFPLEdBQUdELElBQUksQ0FBQ0EsSUFBSSxDQUFDRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRXJDLElBQUksT0FBT0QsT0FBTyxLQUFLLFVBQVUsRUFBRTtNQUNqQyxNQUFNRSxRQUFRLEdBQUdILElBQUksQ0FBQ0ksR0FBRyxDQUFDLENBQUM7TUFDM0IsT0FBT0wsRUFBRSxDQUFDTSxLQUFLLENBQUMsSUFBSSxFQUFFTCxJQUFJLENBQUMsQ0FBQ00sSUFBSSxDQUM3QkMsTUFBVyxJQUFLSixRQUFRLENBQUMsSUFBSSxFQUFFSSxNQUFNLENBQUMsRUFDdENDLEdBQVEsSUFBS0wsUUFBUSxDQUFDSyxHQUFHLENBQzVCLENBQUM7SUFDSDtJQUVBLE9BQU9ULEVBQUUsQ0FBQ00sS0FBSyxDQUFDLElBQUksRUFBRUwsSUFBSSxDQUFDO0VBQzdCLENBQUM7QUFDSCJ9