This commit is contained in:
eric sciple 2020-01-24 12:20:19 -05:00
parent beb1329f9f
commit 2b95e76931
7736 changed files with 1874747 additions and 51184 deletions

View file

@ -1,26 +1,29 @@
module.exports = Octokit
module.exports = Octokit;
const { request } = require('@octokit/request')
const Hook = require('before-after-hook')
const { request } = require("@octokit/request");
const Hook = require("before-after-hook");
const parseClientOptions = require('./parse-client-options')
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)
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))
plugins.forEach(pluginFunction => pluginFunction(api, options));
return api
return api;
}

View file

@ -1,3 +1,3 @@
const factory = require('./factory')
const factory = require("./factory");
module.exports = factory()
module.exports = factory();

View file

@ -1,10 +1,10 @@
module.exports = factory
module.exports = factory;
const Octokit = require('./constructor')
const registerPlugin = require('./register-plugin')
const Octokit = require("./constructor");
const registerPlugin = require("./register-plugin");
function factory (plugins) {
const Api = Octokit.bind(null, plugins || [])
Api.plugin = registerPlugin.bind(null, plugins || [])
return Api
function factory(plugins) {
const Api = Octokit.bind(null, plugins || []);
Api.plugin = registerPlugin.bind(null, plugins || []);
return Api;
}

View file

@ -1,21 +1,25 @@
module.exports = parseOptions
module.exports = parseOptions;
const { Deprecation } = require('deprecation')
const getUserAgent = require('universal-user-agent')
const once = require('once')
const { Deprecation } = require("deprecation");
const { getUserAgent } = require("universal-user-agent");
const once = require("once");
const pkg = require('../package.json')
const pkg = require("../package.json");
const deprecateOptionsTimeout = once((log, deprecation) => log.warn(deprecation))
const deprecateOptionsAgent = once((log, deprecation) => log.warn(deprecation))
const deprecateOptionsHeaders = once((log, deprecation) => log.warn(deprecation))
const deprecateOptionsTimeout = once((log, deprecation) =>
log.warn(deprecation)
);
const deprecateOptionsAgent = once((log, deprecation) => log.warn(deprecation));
const deprecateOptionsHeaders = once((log, deprecation) =>
log.warn(deprecation)
);
function parseOptions (options, log, hook) {
function parseOptions(options, log, hook) {
if (options.headers) {
options.headers = Object.keys(options.headers).reduce((newObj, key) => {
newObj[key.toLowerCase()] = options.headers[key]
return newObj
}, {})
newObj[key.toLowerCase()] = options.headers[key];
return newObj;
}, {});
}
const clientDefaults = {
@ -23,42 +27,63 @@ function parseOptions (options, log, hook) {
request: options.request || {},
mediaType: {
previews: [],
format: ''
format: ""
}
}
};
if (options.baseUrl) {
clientDefaults.baseUrl = options.baseUrl
clientDefaults.baseUrl = options.baseUrl;
}
if (options.userAgent) {
clientDefaults.headers['user-agent'] = options.userAgent
clientDefaults.headers["user-agent"] = options.userAgent;
}
if (options.previews) {
clientDefaults.mediaType.previews = options.previews
clientDefaults.mediaType.previews = options.previews;
}
if (options.timeZone) {
clientDefaults.headers["time-zone"] = options.timeZone;
}
if (options.timeout) {
deprecateOptionsTimeout(log, new Deprecation('[@octokit/rest] new Octokit({timeout}) is deprecated. Use {request: {timeout}} instead. See https://github.com/octokit/request.js#request'))
clientDefaults.request.timeout = options.timeout
deprecateOptionsTimeout(
log,
new Deprecation(
"[@octokit/rest] new Octokit({timeout}) is deprecated. Use {request: {timeout}} instead. See https://github.com/octokit/request.js#request"
)
);
clientDefaults.request.timeout = options.timeout;
}
if (options.agent) {
deprecateOptionsAgent(log, new Deprecation('[@octokit/rest] new Octokit({agent}) is deprecated. Use {request: {agent}} instead. See https://github.com/octokit/request.js#request'))
clientDefaults.request.agent = options.agent
deprecateOptionsAgent(
log,
new Deprecation(
"[@octokit/rest] new Octokit({agent}) is deprecated. Use {request: {agent}} instead. See https://github.com/octokit/request.js#request"
)
);
clientDefaults.request.agent = options.agent;
}
if (options.headers) {
deprecateOptionsHeaders(log, new Deprecation('[@octokit/rest] new Octokit({headers}) is deprecated. Use {userAgent, previews} instead. See https://github.com/octokit/request.js#request'))
deprecateOptionsHeaders(
log,
new Deprecation(
"[@octokit/rest] new Octokit({headers}) is deprecated. Use {userAgent, previews} instead. See https://github.com/octokit/request.js#request"
)
);
}
const userAgentOption = clientDefaults.headers['user-agent']
const defaultUserAgent = `octokit.js/${pkg.version} ${getUserAgent()}`
const userAgentOption = clientDefaults.headers["user-agent"];
const defaultUserAgent = `octokit.js/${pkg.version} ${getUserAgent()}`;
clientDefaults.headers['user-agent'] = [userAgentOption, defaultUserAgent].filter(Boolean).join(' ')
clientDefaults.headers["user-agent"] = [userAgentOption, defaultUserAgent]
.filter(Boolean)
.join(" ");
clientDefaults.request.hook = hook.bind(null, 'request')
clientDefaults.request.hook = hook.bind(null, "request");
return clientDefaults
return clientDefaults;
}

View file

@ -1,7 +1,9 @@
module.exports = registerPlugin
module.exports = registerPlugin;
const factory = require('./factory')
const factory = require("./factory");
function registerPlugin (plugins, pluginFunction) {
return factory(plugins.includes(pluginFunction) ? plugins : plugins.concat(pluginFunction))
function registerPlugin(plugins, pluginFunction) {
return factory(
plugins.includes(pluginFunction) ? plugins : plugins.concat(pluginFunction)
);
}