interface IConfig { auth?: boolean; authType?: 'token' | 'basic'; } 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 = typeof handlerOrConfig === 'object' ? handlerOrConfig : {}; return defineEventHandler(async (event) => { try { // do something before the route handler const response = await handler(event) // do something after the route handler return { response } } catch (err) { // Error handling return { err } } }) }