UNPKG

3.72 kBJavaScriptView Raw
1"use strict";
2/*
3 * Copyright (c) Microsoft Corporation. All rights reserved.
4 * Licensed under the MIT License.
5 */
6Object.defineProperty(exports, "__esModule", { value: true });
7var tslib_1 = require("tslib");
8var TelemetryConstants_1 = require("./TelemetryConstants");
9var TelemetryUtils_1 = require("./TelemetryUtils");
10var CryptoUtils_1 = require("../utils/CryptoUtils");
11var TelemetryEvent = /** @class */ (function () {
12 function TelemetryEvent(eventName, correlationId, eventLabel) {
13 var _a;
14 this.eventId = CryptoUtils_1.CryptoUtils.createNewGuid();
15 this.label = eventLabel;
16 this.event = (_a = {},
17 _a[TelemetryUtils_1.prependEventNamePrefix(TelemetryConstants_1.EVENT_NAME_KEY)] = eventName,
18 _a[TelemetryUtils_1.prependEventNamePrefix(TelemetryConstants_1.ELAPSED_TIME_KEY)] = -1,
19 _a["" + TelemetryConstants_1.TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey] = correlationId,
20 _a);
21 }
22 TelemetryEvent.prototype.setElapsedTime = function (time) {
23 this.event[TelemetryUtils_1.prependEventNamePrefix(TelemetryConstants_1.ELAPSED_TIME_KEY)] = time;
24 };
25 TelemetryEvent.prototype.stop = function () {
26 // Set duration of event
27 this.setElapsedTime(+Date.now() - +this.startTimestamp);
28 TelemetryUtils_1.endBrowserPerformanceMeasurement(this.displayName, this.perfStartMark, this.perfEndMark);
29 };
30 TelemetryEvent.prototype.start = function () {
31 this.startTimestamp = Date.now();
32 this.event[TelemetryUtils_1.prependEventNamePrefix(TelemetryConstants_1.START_TIME_KEY)] = this.startTimestamp;
33 TelemetryUtils_1.startBrowserPerformanceMeasurement(this.perfStartMark);
34 };
35 Object.defineProperty(TelemetryEvent.prototype, "telemetryCorrelationId", {
36 get: function () {
37 return this.event["" + TelemetryConstants_1.TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey];
38 },
39 set: function (value) {
40 this.event["" + TelemetryConstants_1.TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey] = value;
41 },
42 enumerable: false,
43 configurable: true
44 });
45 Object.defineProperty(TelemetryEvent.prototype, "eventName", {
46 get: function () {
47 return this.event[TelemetryUtils_1.prependEventNamePrefix(TelemetryConstants_1.EVENT_NAME_KEY)];
48 },
49 enumerable: false,
50 configurable: true
51 });
52 TelemetryEvent.prototype.get = function () {
53 return tslib_1.__assign(tslib_1.__assign({}, this.event), { eventId: this.eventId });
54 };
55 Object.defineProperty(TelemetryEvent.prototype, "key", {
56 get: function () {
57 return this.telemetryCorrelationId + "_" + this.eventId + "-" + this.eventName;
58 },
59 enumerable: false,
60 configurable: true
61 });
62 Object.defineProperty(TelemetryEvent.prototype, "displayName", {
63 get: function () {
64 return "Msal-" + this.label + "-" + this.telemetryCorrelationId;
65 },
66 enumerable: false,
67 configurable: true
68 });
69 Object.defineProperty(TelemetryEvent.prototype, "perfStartMark", {
70 get: function () {
71 return "start-" + this.key;
72 },
73 enumerable: false,
74 configurable: true
75 });
76 Object.defineProperty(TelemetryEvent.prototype, "perfEndMark", {
77 get: function () {
78 return "end-" + this.key;
79 },
80 enumerable: false,
81 configurable: true
82 });
83 return TelemetryEvent;
84}());
85exports.default = TelemetryEvent;
86//# sourceMappingURL=TelemetryEvent.js.map
\No newline at end of file