handle-error.ts•716 B
import { Logger } from "../utils/logger";
export function handleError(customMessage?: string) {
return function (
target: unknown,
propertyKey: string,
descriptor: PropertyDescriptor
) {
const originalMethod = descriptor.value;
descriptor.value = async function (...args: Array<unknown>) {
try {
return await originalMethod.apply(this, args);
} catch (error) {
const errorMessage =
error instanceof Error ? error.message : "Unknown error";
Logger.error(
`Error in ${target}.${propertyKey}: ${customMessage ?? ""}`,
errorMessage
);
throw new Error(errorMessage);
}
};
return descriptor;
};
}