@microsoft/microsoft-graph-client
Version:
Microsoft Graph Client Library
82 lines • 3.56 kB
JavaScript
/**
* -------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.
* See License in the project root for license information.
* -------------------------------------------------------------------------------------------
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.TelemetryHandlerOptions = exports.FeatureUsageFlag = void 0;
var MiddlewareControl_1 = require("../MiddlewareControl");
/**
* @enum
* @property {number} NONE - The hexadecimal flag value for nothing enabled
* @property {number} REDIRECT_HANDLER_ENABLED - The hexadecimal flag value for redirect handler enabled
* @property {number} RETRY_HANDLER_ENABLED - The hexadecimal flag value for retry handler enabled
* @property {number} AUTHENTICATION_HANDLER_ENABLED - The hexadecimal flag value for the authentication handler enabled
*/
var FeatureUsageFlag;
(function (FeatureUsageFlag) {
/* eslint-disable @typescript-eslint/naming-convention */
FeatureUsageFlag[FeatureUsageFlag["NONE"] = 0] = "NONE";
FeatureUsageFlag[FeatureUsageFlag["REDIRECT_HANDLER_ENABLED"] = 1] = "REDIRECT_HANDLER_ENABLED";
FeatureUsageFlag[FeatureUsageFlag["RETRY_HANDLER_ENABLED"] = 2] = "RETRY_HANDLER_ENABLED";
FeatureUsageFlag[FeatureUsageFlag["AUTHENTICATION_HANDLER_ENABLED"] = 4] = "AUTHENTICATION_HANDLER_ENABLED";
/* eslint-enable @typescript-eslint/naming-convention */
})(FeatureUsageFlag || (exports.FeatureUsageFlag = FeatureUsageFlag = {}));
/**
* @class
* @implements MiddlewareOptions
* Class for TelemetryHandlerOptions
*/
var TelemetryHandlerOptions = /** @class */ (function () {
function TelemetryHandlerOptions() {
/**
* @private
* A member to hold the OR of feature usage flags
*/
this.featureUsage = FeatureUsageFlag.NONE;
}
/**
* @public
* @static
* To update the feature usage in the context object
* @param {Context} context - The request context object containing middleware options
* @param {FeatureUsageFlag} flag - The flag value
* @returns nothing
*/
TelemetryHandlerOptions.updateFeatureUsageFlag = function (context, flag) {
var options;
if (context.middlewareControl instanceof MiddlewareControl_1.MiddlewareControl) {
options = context.middlewareControl.getMiddlewareOptions(TelemetryHandlerOptions);
}
else {
context.middlewareControl = new MiddlewareControl_1.MiddlewareControl();
}
if (typeof options === "undefined") {
options = new TelemetryHandlerOptions();
context.middlewareControl.setMiddlewareOptions(TelemetryHandlerOptions, options);
}
options.setFeatureUsage(flag);
};
/**
* @private
* To set the feature usage flag
* @param {FeatureUsageFlag} flag - The flag value
* @returns nothing
*/
TelemetryHandlerOptions.prototype.setFeatureUsage = function (flag) {
this.featureUsage = this.featureUsage | flag;
};
/**
* @public
* To get the feature usage
* @returns A feature usage flag as hexadecimal string
*/
TelemetryHandlerOptions.prototype.getFeatureUsage = function () {
return this.featureUsage.toString(16);
};
return TelemetryHandlerOptions;
}());
exports.TelemetryHandlerOptions = TelemetryHandlerOptions;
//# sourceMappingURL=TelemetryHandlerOptions.js.map
;