UNPKG

wcz-layout

Version:

34 lines (33 loc) 1.35 kB
import { t as getAccessToken } from "./user-BQiWoQk1.mjs"; import { n as getTokenOnBehalfOf, t as getAppToken } from "./msalServer-BHuM63vM.mjs"; import { createMiddleware } from "@tanstack/react-start"; import axios, { AxiosError } from "axios"; import https from "node:https"; //#region src/middleware/apiMiddleware.ts const httpsAgent = new https.Agent({ rejectUnauthorized: false }); const apiMiddleware = ({ baseURL, scopeKey }) => createMiddleware().server(async ({ next, request }) => { const resolvedBaseURL = process.env[baseURL]; if (!resolvedBaseURL) throw new Error(`"${baseURL}" env variable is not set.`); const authHeader = request.headers.get("Authorization"); let accessToken; if (authHeader?.startsWith("Bearer ")) accessToken = await getTokenOnBehalfOf(authHeader.substring(7), scopeKey); else try { accessToken = await getAccessToken(scopeKey); } catch { accessToken = await getAppToken(scopeKey); } const api = axios.create({ baseURL: resolvedBaseURL, httpsAgent, headers: { Authorization: `Bearer ${accessToken}` } }); try { return await next({ context: { api } }); } catch (error) { if (error instanceof AxiosError) throw new Error(error.response?.data?.message ?? error.message); throw error; } }); //#endregion export { apiMiddleware as t }; //# sourceMappingURL=apiMiddleware-DRhawg5S.mjs.map