{"version":3,"file":"index.cjs","names":[],"sources":["../src/server/server.ts"],"sourcesContent":["import {\n  createServer as createHttpServer,\n  type IncomingMessage,\n  type Server,\n  type ServerResponse,\n} from 'node:http';\n\nimport {\n  getContentType,\n  getSummary,\n  skipMetricsInEnvironment,\n} from '@promster/metrics';\n\ntype TServerOptions = {\n  port: number;\n  hostname: string;\n  detectKubernetes: boolean;\n};\n\nconst defaultOptions: TServerOptions = {\n  port: 7788,\n  hostname: '0.0.0.0',\n  detectKubernetes: false,\n};\n\nconst createServer = async (\n  options: Partial<TServerOptions>,\n): Promise<Server> => {\n  const defaultedOptions = {\n    ...defaultOptions,\n    ...options,\n  };\n\n  const server = createHttpServer(\n    async (_req: IncomingMessage, res: ServerResponse) => {\n      res.writeHead(200, 'OK', { 'content-type': getContentType() });\n      res.end(await getSummary());\n    },\n  );\n\n  return new Promise((resolve, reject) => {\n    const skipServerStart = skipMetricsInEnvironment(defaultedOptions);\n\n    const port = skipServerStart ? undefined : defaultedOptions.port;\n\n    server.listen(port, defaultedOptions.hostname, () => {\n      server.on('error', reject);\n\n      resolve(server);\n    });\n  });\n};\n\nexport { createServer };\n"],"mappings":";;;;AAmBA,MAAM,iBAAiC;CACrC,MAAM;CACN,UAAU;CACV,kBAAkB;AACpB;AAEA,MAAM,eAAe,OACnB,YACoB;CACpB,MAAM,mBAAmB;EACvB,GAAG;EACH,GAAG;CACL;CAEA,MAAM,UAAA,GAAA,UAAA,aAAA,CACJ,OAAO,MAAuB,QAAwB;EACpD,IAAI,UAAU,KAAK,MAAM,EAAE,iBAAA,GAAA,kBAAA,eAAA,CAA+B,EAAE,CAAC;EAC7D,IAAI,IAAI,OAAA,GAAA,kBAAA,WAAA,CAAiB,CAAC;CAC5B,CACF;CAEA,OAAO,IAAI,SAAS,SAAS,WAAW;EAGtC,MAAM,QAAA,GAAA,kBAAA,yBAAA,CAF2C,gBAEtB,IAAI,KAAA,IAAY,iBAAiB;EAE5D,OAAO,OAAO,MAAM,iBAAiB,gBAAgB;GACnD,OAAO,GAAG,SAAS,MAAM;GAEzB,QAAQ,MAAM;EAChB,CAAC;CACH,CAAC;AACH"}