// Copyright (c) Holly Stubbs (tgpholly) - Licensed under MIT // Check LICENSE in repository root for more information. import { createServer, Server } from "http"; import IConfig from "./interfaces/IConfig"; import IMetric from "./interfaces/IMetric"; export default class SimpleProm { static instance?:SimpleProm; public config:IConfig; public selfHostServer?:Server; private constructor(config:IConfig) { SimpleProm.instance?.end(); SimpleProm.instance = this; this.config = config; if (this.config.selfHost) { this.config.selfHostPort = this.config.selfHostPort ?? 9100; this.selfHostServer = createServer((req, res) => { res.end("SimpleProm exporter"); }); this.selfHostServer.listen(this.config.selfHostPort); } } static init(config:IConfig) { return new SimpleProm(config); } public addMetric(metric:IMetric) { } public removeMetric(metric:IMetric) { } public end() { if (this.selfHostServer) { this.selfHostServer.close(); this.selfHostServer.closeAllConnections(); } } }