31 lines
954 B
TypeScript
31 lines
954 B
TypeScript
import { assert } from "~~/utils/assert";
|
|
|
|
export default defineNuxtPlugin({
|
|
name: 'better-auth-fetch-plugin',
|
|
enforce: 'pre',
|
|
async setup(nuxtApp) {
|
|
const triplit = useTriplitClient();
|
|
|
|
// Flag if request is cached
|
|
nuxtApp.payload.isCached = Boolean(useRequestEvent()?.context.cache);
|
|
if (nuxtApp.payload.serverRendered && !nuxtApp.payload.prerenderedAt && !nuxtApp.payload.isCached) {
|
|
const { session, fetchSession } = useAuth();
|
|
|
|
if (!session.value) {
|
|
const result = await fetchSession();
|
|
if (!result.ok) {
|
|
console.error('Failed to fetch session:', result.error);
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (!session.value) return;
|
|
|
|
assert('updateOptions' in triplit);
|
|
triplit.updateOptions({
|
|
token: session.value.token,
|
|
});
|
|
}
|
|
},
|
|
});
|