39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | module.exports = getPage | |||
|  | 
 | |||
|  | const deprecate = require('./deprecate') | |||
|  | const getPageLinks = require('./get-page-links') | |||
|  | const HttpError = require('./http-error') | |||
|  | 
 | |||
|  | function getPage (octokit, link, which, headers) { | |||
|  |   deprecate(`octokit.get${which.charAt(0).toUpperCase() + which.slice(1)}Page() – You can use octokit.paginate or async iterators instead: https://github.com/octokit/rest.js#pagination.`) | |||
|  |   const url = getPageLinks(link)[which] | |||
|  | 
 | |||
|  |   if (!url) { | |||
|  |     const urlError = new HttpError(`No ${which} page found`, 404) | |||
|  |     return Promise.reject(urlError) | |||
|  |   } | |||
|  | 
 | |||
|  |   const requestOptions = { | |||
|  |     url, | |||
|  |     headers: applyAcceptHeader(link, headers) | |||
|  |   } | |||
|  | 
 | |||
|  |   const promise = octokit.request(requestOptions) | |||
|  | 
 | |||
|  |   return promise | |||
|  | } | |||
|  | 
 | |||
|  | function applyAcceptHeader (res, headers) { | |||
|  |   const previous = res.headers && res.headers['x-github-media-type'] | |||
|  | 
 | |||
|  |   if (!previous || (headers && headers.accept)) { | |||
|  |     return headers | |||
|  |   } | |||
|  |   headers = headers || {} | |||
|  |   headers.accept = 'application/vnd.' + previous | |||
|  |     .replace('; param=', '.') | |||
|  |     .replace('; format=', '+') | |||
|  | 
 | |||
|  |   return headers | |||
|  | } |