code: function promisify(f, args) {
    return new Promise((resolve, reject) => f.apply(this, args.concat((err, x) => err ? reject(err) : resolve(x))));
  }
docs: Converts a callback style call to a Promise
  @param  {function} f       a node style function that accepts a callback
  @param  {Object[]} args    arguments to pass to the function when invoking it
  @return {Promise<Object>}  object returned by the function