38 lines
1 KiB
JavaScript
38 lines
1 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
|
||
}
|