docs: function decorate (fn) {
    return async function (...args) {
      try {
        return fn.call(this, ...args);
      } catch (err) {
        this.logger && this.logger.error(err.message);
        throw err;
      }
    };
  }