import { auth } from "./auth.js"; import { requiresBasicAuth } from "./requires-basic-auth.js"; 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 };