appcenter-cli
Version:
Command line tool for Visual Studio App Center
29 lines (28 loc) • 1.17 kB
JavaScript
;
//
// Filter to add command telemetry headers for requests.
//
Object.defineProperty(exports, "__esModule", { value: true });
const profile_1 = require("../profile");
const requestPipeline = require("ms-rest/lib/requestPipeline");
const uuid = require("uuid");
const sessionId = uuid.v4();
const sessionHeaderName = "diagnostic-context";
const commandNameHeaderName = "cli-command-name";
function telemetryFilter(commandName, telemetryIsEnabled) {
const telemetrySource = profile_1.getTelemetrySourceFromEnvironmentVar() || "cli";
return (resource, next, callback) => {
return requestPipeline.interimStream((input, output) => {
input.pause();
if (telemetryIsEnabled) {
resource.headers["internal-request-source"] = telemetrySource;
resource.headers[sessionHeaderName] = sessionId;
resource.headers[commandNameHeaderName] = commandName;
}
const nextStream = next(resource, callback);
resource.pipeInput(input, nextStream).pipe(output);
input.resume();
});
};
}
exports.telemetryFilter = telemetryFilter;