27 lines
		
	
	
		
			621 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			621 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
 | |
| }
 |