@octokit/oauth-methods
Version:
Set of stateless request methods to create, check, reset, refresh, and delete user access tokens for OAuth and GitHub Apps
35 lines (34 loc) • 1 kB
JavaScript
import { RequestError } from "@octokit/request-error";
function requestToOAuthBaseUrl(request) {
const endpointDefaults = request.endpoint.DEFAULTS;
return /^https:\/\/(api\.)?github\.com$/.test(endpointDefaults.baseUrl) ? "https://github.com" : endpointDefaults.baseUrl.replace("/api/v3", "");
}
async function oauthRequest(request, route, parameters) {
const withOAuthParameters = {
baseUrl: requestToOAuthBaseUrl(request),
headers: {
accept: "application/json"
},
...parameters
};
const response = await request(route, withOAuthParameters);
if ("error" in response.data) {
const error = new RequestError(
`${response.data.error_description} (${response.data.error}, ${response.data.error_uri})`,
400,
{
request: request.endpoint.merge(
route,
withOAuthParameters
)
}
);
error.response = response;
throw error;
}
return response;
}
export {
oauthRequest,
requestToOAuthBaseUrl
};