Skip to content

Instantly share code, notes, and snippets.

@degitgitagitya
Last active June 21, 2022 12:33
Show Gist options
  • Save degitgitagitya/495e5613e89d9a660f747ce40e90ca1b to your computer and use it in GitHub Desktop.
Save degitgitagitya/495e5613e89d9a660f747ce40e90ca1b to your computer and use it in GitHub Desktop.
Clean Error Handler For Axios (Typescript)
import { AxiosError } from 'axios';
/**
* @param {Promise<{data:T;}>} promise
* @param {(error:AxiosError<ErrorResolverBackEndDataType>)=>ErrorResolverBackEndType} resolveError
*/
export const resolvePromise = async <T>(
promise: Promise<{
data: T;
}>,
resolveError: (
error: AxiosError<ErrorResolverBackEndDataType>
) => ErrorResolverBackEndType
) => {
try {
const { data } = await promise;
return [data, null] as const;
} catch (error) {
return [null, resolveError(error)] as const;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment