import { ClientResponseError } from '@atcute/client'; import { TokenRefreshError } from '@atcute/oauth-browser-client'; export const formatXRPCError = (err: ClientResponseError): string => { const name = err.error; return (name ? name + ': ' : '') + err.description; }; export const formatQueryError = (err: unknown) => { if (err instanceof TokenRefreshError) { return `Account session is no longer valid`; } if (err instanceof ClientResponseError) { const kind = err.error; if (kind === 'invalid_token') { return `Account session is no longer valid`; } if (kind === 'UpstreamFailure') { return `Server appears to be experiencing issues, try again later`; } if (kind === 'InternalServerError') { return `Server is having issues processing this request, try again later`; } return formatXRPCError(err); } if (err instanceof Error) { if (/NetworkError|Failed to fetch|timed out|abort/.test(err.message)) { return `Unable to access the internet, try again later`; } } return '' + err; };