Repository URL to install this package:
|
Version:
0.7.0 ▾
|
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const fs=require("fs"),path=require("path");let config,metricsModules=(exports.init=_config=>{config=_config},exports.findAndRequire=function(baseDir){return fs.readdirSync(baseDir).filter(moduleName=>moduleName.indexOf(".js")===moduleName.length-3&&moduleName.indexOf("index.js")<0&&moduleName.indexOf("transmissionCycle.js")<0).map(moduleName=>require(path.join(baseDir,moduleName)))},exports.findAndRequire(__dirname));exports.registerAdditionalMetrics=function(additionalMetricsModules){metricsModules=metricsModules.concat(additionalMetricsModules)},exports.activate=()=>{metricsModules.forEach(metricsModule=>{metricsModule.activate&&metricsModule.activate(config)})},exports.deactivate=()=>{metricsModules.forEach(metricsModule=>{metricsModule.deactivate&&metricsModule.deactivate()})},exports.gatherData=function(){const payload={};return metricsModules.forEach(metricsModule=>{payload[metricsModule.payloadPrefix]=metricsModule.currentPayload}),payload},exports.setLogger=function(logger){metricsModules.forEach(metricModule=>{"function"==typeof metricModule.setLogger&&metricModule.setLogger(logger)})};