This commit is contained in:
Nadar
2026-03-17 13:24:22 +03:00
commit 82e5ac9d81
554 changed files with 29637 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
import type { NitroFetchRequest } from 'nitropack'
import { callWithNuxt } from '#app'
export function $api<
T = unknown,
R extends NitroFetchRequest = NitroFetchRequest,
>(
request: Parameters<typeof $fetch<T, R>>[0],
options?: Partial<Parameters<typeof $fetch<T, R>>[1]>,
) {
const nuxtApp = useNuxtApp()
const runtimeConfig = useRuntimeConfig()
const cookies = useRequestHeaders(['cookie'])
return $fetch<T, R>(request, {
...options,
headers: {
...options?.headers,
...cookies,
},
retry: false,
baseURL: runtimeConfig.public.apiHost as string,
credentials: 'include',
onResponseError: async ({ response }) => {
if (response.status === 401) {
nuxtApp.runWithContext(() => {
useCookie('session').value = null
})
await callWithNuxt(nuxtApp, clearNuxtState, ['user'])
await callWithNuxt(nuxtApp, navigateTo, ['/login', { redirectCode: 401 }])
}
// setStaticError({
// status: response.status,
// message: nuxtApp.$i18n.t('something_went_wrong'),
// });
},
})
}