module.exports = Octokit; const { request } = require("@octokit/request"); const Hook = require("before-after-hook"); const parseClientOptions = require("./parse-client-options"); function Octokit(plugins, options) { options = options || {}; const hook = new Hook.Collection(); const log = Object.assign( { debug: () => {}, info: () => {}, warn: console.warn, error: console.error }, options && options.log ); const api = { hook, log, request: request.defaults(parseClientOptions(options, log, hook)) }; plugins.forEach(pluginFunction => pluginFunction(api, options)); return api; }