module.exports = authenticationPlugin;

const beforeRequest = require("./before-request");
const requestError = require("./request-error");
const validate = require("./validate");

function authenticationPlugin(octokit, options) {
  if (!options.auth) {
    return;
  }

  validate(options.auth);

  const state = {
    octokit,
    auth: options.auth
  };

  octokit.hook.before("request", beforeRequest.bind(null, state));
  octokit.hook.error("request", requestError.bind(null, state));
}