methodProperties = ({ methods, chain }) => {
  const properties = {}
  for (const name in methods) {
    const { getter } = methods[name]
    if (getter) {
      // add getter methods
      properties[name] = {
        get: function() {
          return chain({ name, prev: this.method })
        }
      }
    } else {
      // add function call methods
      properties[name] = {
        value: function(...args) {
          return chain({ name, args, prev: this.method })
        }
      }
    }
  }
  return properties
}
Builds object containing a property for every query building method