import log4js from "logger"; interface IConfig { } const defaultConfig: IConfig = { } const logger = log4js.getLogger("ERROR"); export const defineWrappedResponseHandler = ( handlerOrConfig?: EventHandler | IConfig, _handler?: EventHandler, ): EventHandler => { const handler = typeof handlerOrConfig === 'function' ? handlerOrConfig : _handler; if (!handler) { throw new Error('handler or config is required'); } const config = Object.assign({ ...defaultConfig }, typeof handlerOrConfig === 'object' ? handlerOrConfig : {}); return defineEventHandler(async (event) => { try { const response = await handler(event) return response } catch (error) { logger.error( event?.method ?? "", event?.path ?? "(no request)", `[request]`, "\n", error ); throw error } }) }