function patchGetConnection()

in packages/mysql/lib/mysql_p.js [110:134]


function patchGetConnection(pool) {
  var baseFcn = '__getConnection';
  pool[baseFcn] = pool['getConnection'];

  pool['getConnection'] = function patchedGetConnection() {
    var args = arguments;
    var callback = args[args.length-1];

    if (callback instanceof Function) {
      args[args.length-1] = (err, connection) => {
        if (connection) {
          patchObject(connection);
        }
        return callback(err, connection);
      };
    }

    var result = pool[baseFcn].apply(pool, args);
    if (isPromise(result)) {
      return result.then(patchObject);
    } else {
      return result;
    }
  };
}