/**
* @module ext.eventLogging.metricsPlatform
*/
const MediaWikiMetricsClientIntegration = require( './MediaWikiMetricsClientIntegration.js' );
const MediaWikiMetricsClientLogger = require( './MediaWikiMetricsClientLogger.js' );
const MetricsClient = require( '../lib/metrics-platform/MetricsClient.js' );
const DefaultEventSubmitter = require( '../lib/metrics-platform/DefaultEventSubmitter.js' );
let integration;
let logger;
/**
* Creates a new `MetricsClient` instance with the given `EventSubmitter` implementation.
*
* Currently, the `MetricsClient` will use a singleton instance of
* {@link module:ext.eventLogging.metricsPlatform.MediaWikiMetricsClientIntegration}.
*
* @param {Object|false} streamConfigs
* @param {Object} eventSubmitter
* @return {Object}
*/
function newMetricsClient( streamConfigs, eventSubmitter ) {
if ( !integration ) {
integration = new MediaWikiMetricsClientIntegration();
}
if ( !logger ) {
logger = new MediaWikiMetricsClientLogger();
}
return new MetricsClient( integration, logger, streamConfigs, eventSubmitter );
}
module.exports = {
DefaultEventSubmitter,
newMetricsClient
};