diffusion
Version:
Diffusion JavaScript client
74 lines (73 loc) • 2.73 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TopicMetricCollectorBuilderImpl = void 0;
var topic_metric_collector_1 = require("./../../services/metric-collectors/topic-metric-collector");
var math_1 = require("./../../util/math");
var require_non_null_1 = require("./../../util/require-non-null");
/**
* Implementation of {@link TopicMetricCollectorBuilder}.
*/
var TopicMetricCollectorBuilderImpl = /** @class */ (function () {
function TopicMetricCollectorBuilderImpl() {
this.exportToPrometheusProp = false;
this.groupByTopicTypeProp = false;
this.groupByTopicViewProp = false;
this.groupByPathPrefixPartsProp = 0;
this.reset();
}
/**
* @inheritdoc
*/
TopicMetricCollectorBuilderImpl.prototype.reset = function () {
this.exportToPrometheusProp = false;
this.maximumGroupsProp = math_1.MAX_INT32;
this.groupByTopicTypeProp = false;
this.groupByTopicViewProp = false;
this.groupByPathPrefixPartsProp = 0;
return this;
};
/**
* @inheritdoc
*/
TopicMetricCollectorBuilderImpl.prototype.exportToPrometheus = function (exportMetrics) {
this.exportToPrometheusProp = exportMetrics;
return this;
};
/**
* @inheritdoc
*/
TopicMetricCollectorBuilderImpl.prototype.maximumGroups = function (limit) {
this.maximumGroupsProp = limit;
return this;
};
/**
* @inheritdoc
*/
TopicMetricCollectorBuilderImpl.prototype.groupByTopicType = function (group) {
this.groupByTopicTypeProp = group;
return this;
};
/**
* @inheritdoc
*/
TopicMetricCollectorBuilderImpl.prototype.groupByTopicView = function (group) {
this.groupByTopicViewProp = group;
return this;
};
/**
* @inheritdoc
*/
TopicMetricCollectorBuilderImpl.prototype.groupByPathPrefixParts = function (parts) {
this.groupByPathPrefixPartsProp = parts;
return this;
};
/**
* @inheritdoc
*/
TopicMetricCollectorBuilderImpl.prototype.create = function (name, topicSelector) {
require_non_null_1.requireNonNull(topicSelector, 'topicSelector');
return new topic_metric_collector_1.TopicMetricCollectorImpl(require_non_null_1.requireNonNull(name, 'name'), this.exportToPrometheusProp, this.maximumGroupsProp, typeof topicSelector === 'string' ? topicSelector : topicSelector.expression, this.groupByTopicTypeProp, this.groupByTopicViewProp, this.groupByPathPrefixPartsProp);
};
return TopicMetricCollectorBuilderImpl;
}());
exports.TopicMetricCollectorBuilderImpl = TopicMetricCollectorBuilderImpl;