UNPKG

3.56 kBJavaScriptView Raw
1"use strict";
2/**
3 * -------------------------------------------------------------------------------------------
4 * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.
5 * See License in the project root for license information.
6 * -------------------------------------------------------------------------------------------
7 */
8Object.defineProperty(exports, "__esModule", { value: true });
9exports.TelemetryHandlerOptions = exports.FeatureUsageFlag = void 0;
10var MiddlewareControl_1 = require("../MiddlewareControl");
11/**
12 * @enum
13 * @property {number} NONE - The hexadecimal flag value for nothing enabled
14 * @property {number} REDIRECT_HANDLER_ENABLED - The hexadecimal flag value for redirect handler enabled
15 * @property {number} RETRY_HANDLER_ENABLED - The hexadecimal flag value for retry handler enabled
16 * @property {number} AUTHENTICATION_HANDLER_ENABLED - The hexadecimal flag value for the authentication handler enabled
17 */
18var FeatureUsageFlag;
19(function (FeatureUsageFlag) {
20 /* eslint-disable @typescript-eslint/naming-convention */
21 FeatureUsageFlag[FeatureUsageFlag["NONE"] = 0] = "NONE";
22 FeatureUsageFlag[FeatureUsageFlag["REDIRECT_HANDLER_ENABLED"] = 1] = "REDIRECT_HANDLER_ENABLED";
23 FeatureUsageFlag[FeatureUsageFlag["RETRY_HANDLER_ENABLED"] = 2] = "RETRY_HANDLER_ENABLED";
24 FeatureUsageFlag[FeatureUsageFlag["AUTHENTICATION_HANDLER_ENABLED"] = 4] = "AUTHENTICATION_HANDLER_ENABLED";
25 /* eslint-enable @typescript-eslint/naming-convention */
26})(FeatureUsageFlag || (exports.FeatureUsageFlag = FeatureUsageFlag = {}));
27/**
28 * @class
29 * @implements MiddlewareOptions
30 * Class for TelemetryHandlerOptions
31 */
32var TelemetryHandlerOptions = /** @class */ (function () {
33 function TelemetryHandlerOptions() {
34 /**
35 * @private
36 * A member to hold the OR of feature usage flags
37 */
38 this.featureUsage = FeatureUsageFlag.NONE;
39 }
40 /**
41 * @public
42 * @static
43 * To update the feature usage in the context object
44 * @param {Context} context - The request context object containing middleware options
45 * @param {FeatureUsageFlag} flag - The flag value
46 * @returns nothing
47 */
48 TelemetryHandlerOptions.updateFeatureUsageFlag = function (context, flag) {
49 var options;
50 if (context.middlewareControl instanceof MiddlewareControl_1.MiddlewareControl) {
51 options = context.middlewareControl.getMiddlewareOptions(TelemetryHandlerOptions);
52 }
53 else {
54 context.middlewareControl = new MiddlewareControl_1.MiddlewareControl();
55 }
56 if (typeof options === "undefined") {
57 options = new TelemetryHandlerOptions();
58 context.middlewareControl.setMiddlewareOptions(TelemetryHandlerOptions, options);
59 }
60 options.setFeatureUsage(flag);
61 };
62 /**
63 * @private
64 * To set the feature usage flag
65 * @param {FeatureUsageFlag} flag - The flag value
66 * @returns nothing
67 */
68 TelemetryHandlerOptions.prototype.setFeatureUsage = function (flag) {
69 this.featureUsage = this.featureUsage | flag;
70 };
71 /**
72 * @public
73 * To get the feature usage
74 * @returns A feature usage flag as hexadecimal string
75 */
76 TelemetryHandlerOptions.prototype.getFeatureUsage = function () {
77 return this.featureUsage.toString(16);
78 };
79 return TelemetryHandlerOptions;
80}());
81exports.TelemetryHandlerOptions = TelemetryHandlerOptions;
82//# sourceMappingURL=TelemetryHandlerOptions.js.map
\No newline at end of file