{"version":3,"sources":["jsdelivr-header.js","/npm/koa-healthcheck@1.3.2/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,OAAS,QAAQ,aAAR,GACT,OAAS,QAAQ,YACjB,MAAQ,CAAC,QAAS,WAAY,eAAgB,YAEpD,SAAS,kBAAkB,EAAK,EAAY,GAC1C,MAAM,EAAQ,CACZ,QAAS,EACT,QAAS,EACT,QAAS,GAmCX,OACG,IAAI,SAAU,IAAU,EAAI,KAAO,MAAM,IACzC,IAAI,YAAa,IAAU,EAAI,KAAO,CAAO,IAC7C,IAAI,gBAnCP,eAA2B,GACzB,MAAM,EAAS,CAAC,EACV,EAAW,EAAW,KAAK,GACxB,OAAO,WAGV,QAAQ,IAAI,GACf,MAAM,IACL,EAAW,KAAI,CAAC,EAAO,KACrB,EAAO,EAAM,MAAQ,WAAW,KAAW,EAAK,EAAM,GACtD,IAGN,EAAI,KAAO,CACb,IAsBG,IAAI,YAAa,IAAU,EAAI,KAAO,CAAK,IAE9C,EAAI,KAtBJ,eAAiC,EAAK,SAC9B,IACF,MAAM,SAAS,EAAI,QAGnB,EAAI,QAAU,KAAO,EAAI,OAAS,KACpC,EAAM,UAEJ,EAAI,QAAU,KAAO,EAAI,OAAS,KACpC,EAAM,UAEJ,EAAI,QAAU,KAAO,EAAI,OAAS,KACpC,EAAM,UAEV,IASA,EAAI,IAAI,OAAO,SACjB,CAEA,OAAO,QAAU","file":"/npm/koa-healthcheck@1.3.2/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/koa-healthcheck@1.3.2/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nconst router = require('koa-router')();\nconst checks = require('./checks');\nconst paths = ['/ping', '/version', '/healthcheck', '/metrics'];\n\nfunction healthcheckPlugin(app, checksConf, version) {\n  const count = {\n    Http2XX: 0,\n    Http4XX: 0,\n    Http5XX: 0,\n  };\n\n  async function healthcheck(ctx) {\n    const result = {};\n    const promises = checksConf.map((check) => {\n      return checks(check);\n    });\n\n    await Promise.all(promises)\n      .then((data) => {\n        checksConf.map((check, index) => {\n          result[check.name || `no-name-${index}`] = data[index];\n        });\n      });\n\n    ctx.body = result;\n  }\n\n  async function metricsMiddleware(ctx, next) {\n    await next();\n    if (paths.includes(ctx.path)) {\n      return;\n    }\n    if (ctx.status >= 200 && ctx.status < 300) {\n      count.Http2XX++;\n    }\n    if (ctx.status >= 400 && ctx.status < 500) {\n      count.Http4XX++;\n    }\n    if (ctx.status >= 500 && ctx.status < 600) {\n      count.Http5XX++;\n    }\n  }\n\n  router\n    .get('/ping', (ctx) => { ctx.body = 'pong'; })\n    .get('/version', (ctx) => { ctx.body = version; })\n    .get('/healthcheck', healthcheck)\n    .get('/metrics', (ctx) => { ctx.body = count; });\n\n  app.use(metricsMiddleware);\n  app.use(router.routes());\n}\n\nmodule.exports = healthcheckPlugin;\n"]}