{"version":3,"file":"errorHandler.mjs","names":[],"sources":["../../../src/nitro-v3/errorHandler.ts"],"sourcesContent":["import { parseURL } from 'ufo'\nimport { defineErrorHandler } from 'nitro'\nimport { resolveMxllogError, extractErrorStatus, serializeMxllogErrorResponse } from '../nitro'\n\n/**\n * Custom Nitro v3 error handler that properly serializes MxllogError.\n * This ensures that 'data' (containing 'why', 'fix', 'link') is preserved\n * in the JSON response regardless of the underlying HTTP framework.\n *\n * For non-MxllogError, returns undefined to let Nitro's default handler take over.\n *\n * Usage in nitro.config.ts:\n * ```ts\n * // errorHandler.ts\n * export { default } from '@safaricom-mxl/log/nitro/v3/errorHandler'\n * // nitro.config.ts\n * export default defineConfig({\n *   errorHandler: './errorHandler',\n * })\n * ```\n */\nexport default defineErrorHandler((error, event) => {\n  const mxllogError = resolveMxllogError(error)\n\n  if (!mxllogError) return\n\n  const url = parseURL(event.req.url).pathname\n  const status = extractErrorStatus(mxllogError)\n\n  return new Response(JSON.stringify(serializeMxllogErrorResponse(mxllogError, url)), {\n    status,\n    headers: { 'Content-Type': 'application/json' },\n  })\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAA,uBAAe,oBAAoB,OAAO,UAAU;CAClD,MAAM,cAAc,mBAAmB,MAAM;AAE7C,KAAI,CAAC,YAAa;CAElB,MAAM,MAAM,SAAS,MAAM,IAAI,IAAI,CAAC;CACpC,MAAM,SAAS,mBAAmB,YAAY;AAE9C,QAAO,IAAI,SAAS,KAAK,UAAU,6BAA6B,aAAa,IAAI,CAAC,EAAE;EAClF;EACA,SAAS,EAAE,gBAAgB,oBAAoB;EAChD,CAAC;EACF"}