const { MetricTypes } = require('./Metric'); /** * A No-Op Impl of Meter that can be used with a timer, to only create histogram data. * This is useful for some time series aggregators that can calculate rates for you just off of sent count. * * @implements {Metric} * @example * const { NoOpMeter, Timer } = require('measured') * const meter = new NoOpMeter(); * const timer = new Timer({meter: meter}); * ... * // do some stuff with the timer and stopwatch api * ... */ // eslint-disable-next-line padded-blocks class NoOpMeter { /** * No-Op impl * @param {number} n Number of events to mark. */ // eslint-disable-next-line no-unused-vars mark(n) {} /** * No-Op impl */ start() {} /** * No-Op impl */ end() {} /** * No-Op impl */ ref() {} /** * No-Op impl */ unref() {} /** * No-Op impl */ reset() {} /** * No-Op impl */ meanRate() {} /** * No-Op impl */ currentRate() {} /** * Returns an empty object * @return {{}} */ toJSON() { return {}; } /** * The type of the Metric Impl. {@link MetricTypes}. * @return {string} The type of the Metric Impl. */ getType() { return MetricTypes.METER; } } module.exports = NoOpMeter;