mirror of
https://code.forgejo.org/actions/setup-node.git
synced 2024-12-27 04:55:49 +00:00
65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
|
module.exports = parseOptions
|
||
|
|
||
|
const { Deprecation } = require('deprecation')
|
||
|
const getUserAgent = require('universal-user-agent')
|
||
|
const once = require('once')
|
||
|
|
||
|
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))
|
||
|
|
||
|
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
|
||
|
}, {})
|
||
|
}
|
||
|
|
||
|
const clientDefaults = {
|
||
|
headers: options.headers || {},
|
||
|
request: options.request || {},
|
||
|
mediaType: {
|
||
|
previews: [],
|
||
|
format: ''
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (options.baseUrl) {
|
||
|
clientDefaults.baseUrl = options.baseUrl
|
||
|
}
|
||
|
|
||
|
if (options.userAgent) {
|
||
|
clientDefaults.headers['user-agent'] = options.userAgent
|
||
|
}
|
||
|
|
||
|
if (options.previews) {
|
||
|
clientDefaults.mediaType.previews = options.previews
|
||
|
}
|
||
|
|
||
|
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
|
||
|
}
|
||
|
|
||
|
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
|
||
|
}
|
||
|
|
||
|
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'))
|
||
|
}
|
||
|
|
||
|
const userAgentOption = clientDefaults.headers['user-agent']
|
||
|
const defaultUserAgent = `octokit.js/${pkg.version} ${getUserAgent()}`
|
||
|
|
||
|
clientDefaults.headers['user-agent'] = [userAgentOption, defaultUserAgent].filter(Boolean).join(' ')
|
||
|
|
||
|
clientDefaults.request.hook = hook.bind(null, 'request')
|
||
|
|
||
|
return clientDefaults
|
||
|
}
|