{"version":3,"file":"koa.mjs","sources":["../src/koa.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport type { Logger } from './core/types';\nimport type { HttpLoggerParams, HttpLogLevels } from './http';\nimport { createHttpLogger } from './http';\n\ndeclare module 'koa' {\n  export interface ExtendableContext {\n    log: Logger<HttpLogLevels>;\n  }\n  export interface Request {\n    log: Logger<HttpLogLevels>;\n  }\n  export interface Response {\n    log: Logger<HttpLogLevels>;\n  }\n}\n\nexport function createKoaLogger(params?: HttpLoggerParams) {\n  const http = createHttpLogger(params);\n\n  return async function koaLogger(ctx: Context, next: Next) {\n    ctx.log = ctx.request.log = ctx.response.log = ctx.req.log;\n    http(ctx.req, ctx.res);\n    return next().catch(error => {\n      ctx.res.err = error;\n      throw error;\n    });\n  };\n}\n"],"names":["createKoaLogger","params","http","createHttpLogger","ctx","next","log","request","response","req","res","catch","error","err"],"mappings":"oDAiBO,SAASA,EAAgBC,CAAyB,EACvD,IAAMC,EAAOC,EAAiBF,GAE9B,OAAO,eAAyBG,CAAY,CAAEC,CAAU,EAGtD,OAFAD,EAAIE,GAAG,CAAGF,EAAIG,OAAO,CAACD,GAAG,CAAGF,EAAII,QAAQ,CAACF,GAAG,CAAGF,EAAIK,GAAG,CAACH,GAAG,CAC1DJ,EAAKE,EAAIK,GAAG,CAAEL,EAAIM,GAAG,EACdL,IAAOM,KAAK,CAACC,AAAAA,IAElB,MADAR,EAAIM,GAAG,CAACG,GAAG,CAAGD,EACRA,CACR,EACF,CACF"}