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));
}
