code: function TelemetryEvents(config) {
      var self = this;
  
      config = config || {};
  
      REQUIRED_CONFIG_PROPERTIES.forEach(function(property) {
          if (!(self["_" + property] = config[property])) {
              throw new Error("config is missing required property: " + property);
          }
      });
  
      self._emitter = config.emitter;
      if (self._emitter) {
          self._eventName = config.eventName || "telemetry";
      } else {
          if (config.event) {
              throw new Error("'eventName' property specified in 'config' without corresponding 'emitter' property");
          }
      }
  }
docs: /*
  `config`: _Object_
  `package`: _Object_ Contents of `package.json`.
  `name`: _String_ Module name.
  `version`: _String_ Module version.
  `emitter`: _EventEmitter_ _(Default: undefined)_ An optional event emitter to emit events when `emit()` is called.
  `eventName`: _String_ _(Default: 'telemetry')_ An optional event name used for event emission if `emitter` is specified.