function resolveArguments()

in packages/mysql/lib/mysql_p.js [158:192]


function resolveArguments(argsObj) {
  var args = {};

  if (argsObj && argsObj.length > 0) {
    if (argsObj[0] instanceof Object) {
      args.sql = argsObj[0];

      // Patch for mysql2
      if (argsObj[0].values) {
        args.values = argsObj[0].values; // mysql implementation
      } else if (typeof argsObj[2] === 'function') {
        args.values = typeof argsObj[1] !== 'function' ? argsObj[1] : null; // mysql2 implementation
      }
      args.callback = typeof argsObj[1] === 'function'
        ? argsObj[1]
        : (
          typeof argsObj[2] === 'function'
            ? argsObj[2]
            : undefined
        );
      if (!argsObj[1] && argsObj[0].on instanceof Function) {
        args.sql = argsObj[0];
      }
    } else {
      args.sql = argsObj[0];
      args.values = typeof argsObj[1] !== 'function' ? argsObj[1] : null;
      args.callback = typeof argsObj[1] === 'function' ? argsObj[1] : (typeof argsObj[2] === 'function' ? argsObj[2] : undefined);
    }

    args.segment = (argsObj[argsObj.length-1] != null && argsObj[argsObj.length-1].constructor && (argsObj[argsObj.length-1].constructor.name === 'Segment' ||
      argsObj[argsObj.length-1].constructor.name === 'Subsegment')) ? argsObj[argsObj.length-1] : null;
  }

  return args;
}