code: function replacer() {
        // don't do any replacing if the user supplied no values
        if (!opts.values.length)
          return arguments[0];
  
        var ix = arguments.length > 3 ? parseInt(arguments[1], 10) : opts.value_ix++;
        var val = opts.values[ix - 1];
        if (_.isUndefined(val))
          throw new Error('Parameterized sql() (' + str + ') requires ' + ix + ' parameter(s) but only ' + opts.values.length + ' parameter(s) were supplied');
        if (_.isObject(sql) && !_.isArray(sql) && sql == null)
          return val.toString(opts);
        else
          return sql.convert(val);
      }
docs: replacer(match, [capture1, capture2, ...,] offset, string)