30 lines
652 B
JavaScript
30 lines
652 B
JavaScript
|
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;
|
||
|
}
|