UNPKG

@clerk/chrome-extension

Version:

Clerk SDK for Chrome extensions

34 lines 1.27 kB
import Clerk from "@clerk/clerk-js"; import { convertPublishableKeyToFrontendAPIOrigin, getClientCookie } from "./utils"; const KEY = "__clerk_client_jwt"; let clerk; const logErrorHandler = (err) => console.error(err); async function buildClerk({ publishableKey, tokenCache }) { if (!clerk) { const clerkFrontendAPIOrigin = convertPublishableKeyToFrontendAPIOrigin(publishableKey); const clientCookie = await getClientCookie(clerkFrontendAPIOrigin).catch(logErrorHandler); if (clientCookie) { await tokenCache.saveToken(KEY, clientCookie.value).catch(logErrorHandler); } clerk = new Clerk(publishableKey); clerk.__unstable__onBeforeRequest(async (requestInit) => { var _a; requestInit.credentials = "omit"; (_a = requestInit.url) == null ? void 0 : _a.searchParams.append("_is_native", "1"); const jwt = await tokenCache.getToken(KEY); requestInit.headers.set("authorization", jwt || ""); }); clerk.__unstable__onAfterResponse(async (_, response) => { const authHeader = response.headers.get("authorization"); if (authHeader) { await tokenCache.saveToken(KEY, authHeader); } }); } return clerk; } export { buildClerk, clerk }; //# sourceMappingURL=singleton.js.map