main
import { ApiFailure, meKey, unwrapApi } from '@app/lib'
import Apis, { type EnvelopeMeResp } from '@app/services/api'
import { invalidateCache } from '@app/services/storage'
export type SessionUser = NonNullable<EnvelopeMeResp['data']>
export function fetchSessionUser(): Promise<SessionUser> {
return unwrapApi<SessionUser>(Apis.account.me()).catch((err) => {
if (err instanceof ApiFailure && (err.code === 401 || err.code === 403)) {
invalidateCache(meKey())
}
throw err
})
}