{"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","koaLogger","ctx","next","log","request","response","req","res","catch","error","err"],"mappings":";;AAiBO,SAASA,gBAAgBC,MAAyB,EAAA;AACvD,IAAA,MAAMC,OAAOC,gBAAiBF,CAAAA,MAAAA,CAAAA,CAAAA;AAE9B,IAAA,OAAO,eAAeG,SAAAA,CAAUC,GAAY,EAAEC,IAAU,EAAA;AACtDD,QAAAA,GAAAA,CAAIE,GAAG,GAAGF,GAAIG,CAAAA,OAAO,CAACD,GAAG,GAAGF,GAAII,CAAAA,QAAQ,CAACF,GAAG,GAAGF,GAAIK,CAAAA,GAAG,CAACH,GAAG,CAAA;AAC1DL,QAAAA,IAAAA,CAAKG,GAAIK,CAAAA,GAAG,EAAEL,GAAAA,CAAIM,GAAG,CAAA,CAAA;QACrB,OAAOL,IAAAA,EAAAA,CAAOM,KAAK,CAACC,CAAAA,KAAAA,GAAAA;YAClBR,GAAIM,CAAAA,GAAG,CAACG,GAAG,GAAGD,KAAAA,CAAAA;YACd,MAAMA,KAAAA,CAAAA;AACR,SAAA,CAAA,CAAA;AACF,KAAA,CAAA;AACF;;;;"}