Files
bewell-in-ua/actions/execute-action.helper.ts
2025-02-05 08:01:14 +02:00

32 lines
595 B
TypeScript

import {isRedirectError} from 'next/dist/client/components/redirect-error'
type Options<T> = {
actionFn: () => Promise<T>
successMessage?: string
}
const executeAction = async <T>({
actionFn,
successMessage = 'The actions was successful'
}: Options<T>): Promise<{success: boolean; message: string}> => {
try {
await actionFn()
return {
success: true,
message: successMessage
}
} catch (error) {
if (isRedirectError(error)) {
throw error
}
return {
success: false,
message: 'An error has occurred during executing the action'
}
}
}
export {executeAction}