12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- 'use strict'
- module.exports = apiPlugin
- const get = require('lodash/get')
- const pick = require('lodash/pick')
- const method = require('./method')
- const deprecate = require('./deprecate')
- const ENDPOINT_DEFAULTS = require('../../routes.json')
- function apiPlugin (octokit) {
- Object.keys(ENDPOINT_DEFAULTS).forEach(namespaceName => {
- octokit[namespaceName] = {}
- Object.keys(ENDPOINT_DEFAULTS[namespaceName]).forEach(apiName => {
- let apiOptions = ENDPOINT_DEFAULTS[namespaceName][apiName]
- let deprecated
- if (apiOptions.alias) {
- deprecated = apiOptions.deprecated
- apiOptions = get(ENDPOINT_DEFAULTS, apiOptions.alias)
- }
- const endpointDefaults = pick(apiOptions, ['method', 'url', 'headers', 'request'])
- if (deprecated) {
- endpointDefaults.deprecated = deprecated
- }
- octokit[namespaceName][apiName] = method.bind(null, octokit, endpointDefaults, apiOptions.params)
- // log deprecation warning for APIs flagged as deprecated
- if (apiOptions.deprecated) {
- octokit[namespaceName][apiName] = deprecate(
- octokit[namespaceName][apiName],
- apiOptions.deprecated
- )
- }
- })
- })
- }
|