aws-delivlib
Version:
A fabulous library for defining continuous pipelines for building, testing and releasing code libraries.
24 lines (23 loc) • 802 B
JavaScript
import btoa from "btoa-lite";
import { auth } from "./auth";
import { requiresBasicAuth } from "./requires-basic-auth";
async function hook(state, request, route, parameters = {}) {
const endpoint = request.endpoint.merge(
route,
parameters
);
if (/\/login\/(oauth\/access_token|device\/code)$/.test(endpoint.url)) {
return request(endpoint);
}
if (requiresBasicAuth(endpoint.url)) {
const credentials = btoa(`${state.clientId}:${state.clientSecret}`);
endpoint.headers.authorization = `basic ${credentials}`;
return request(endpoint);
}
const { token } = state.clientType === "oauth-app" ? await auth({ ...state, request }) : await auth({ ...state, request });
endpoint.headers.authorization = "token " + token;
return request(endpoint);
}
export {
hook
};