text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  var diagnostic_channel_1 = require("diagnostic-channel");
  var clients = [];
  exports.subscriber = function (event) {
      clients.forEach(function (client) {
          if (event.data.commandObj.command === "info") {
              // We don't want to report 'info', it's irrelevant
              return;
          }
          client.trackDependency({
              target: event.data.address,
              name: event.data.commandObj.command,
              data: event.data.commandObj.command,
              duration: event.data.duration,
              success: !event.data.err,
              /* TODO: transmit result code from redis */
              resultCode: event.data.err ? "1" : "0",
              dependencyTypeName: "redis"
          });
      });
  };
  function enable(enabled, client) {
      if (enabled) {
          if (clients.length === 0) {
              diagnostic_channel_1.channel.subscribe("redis", exports.subscriber);
          }
          ;
          clients.push(client);
      }
      else {
          clients = clients.filter(function (c) { return c != client; });
          if (clients.length === 0) {
              diagnostic_channel_1.channel.unsubscribe("redis", exports.subscriber);
          }
      }
  }
  exports.enable = enable;
  //# sourceMappingURL=redis.sub.js.map