{"version":3,"file":"useLogger.mjs","names":[],"sources":["../../../src/runtime/server/useLogger.ts"],"sourcesContent":["import type { RequestLogger, ServerEvent } from '../../types'\n\n/**\n * Returns the request logger attached to the given server event.\n *\n * @param event - The current server event containing the context with the logger.\n * @param service - Optional service name to override the default service.\n * @returns The request-scoped logger.\n * @throws Error if the logger is not initialized on the event context.\n *\n * @example\n * export default defineEventHandler((event) => {\n *   const log = useLogger(event)\n *   log.set({ foo: 'bar' })\n *   // ...\n * })\n *\n * @example\n * // Override service name for specific routes\n * export default defineEventHandler((event) => {\n *   const log = useLogger(event, 'payment-service')\n *   log.set({ foo: 'bar' })\n *   // ...\n * })\n *\n * @example\n * // Typed fields — must use explicit import for type checking to work\n * import { useLogger } from '@safaricom-mxl/log'\n *\n * interface MyFields { user: { id: string; plan: string } }\n * const log = useLogger<MyFields>(event)\n * log.set({ user: { id: '123', plan: 'pro' } }) // OK\n * log.set({ foo: 'bar' })                        // TS error\n */\nexport function useLogger<T extends object = Record<string, unknown>>(event: ServerEvent, service?: string): RequestLogger<T> {\n  const log = event.context.log as RequestLogger<T> | undefined\n\n  if (!log) {\n    throw new Error(\n      '[mxllog] Logger not initialized. Make sure the mxllog Nitro plugin is registered. '\n      + 'If using Nuxt, add \"@safaricom-mxl/log\" to your modules.',\n    )\n  }\n\n  if (service) {\n    const untyped = log as unknown as RequestLogger\n    untyped.set({ service })\n  }\n\n  return log\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,SAAgB,UAAsD,OAAoB,SAAoC;CAC5H,MAAM,MAAM,MAAM,QAAQ;AAE1B,KAAI,CAAC,IACH,OAAM,IAAI,MACR,+IAED;AAGH,KAAI,QACc,KACR,IAAI,EAAE,SAAS,CAAC;AAG1B,QAAO"}