@microsoft/1ds-post-js
Version:
Microsoft Application Insights JavaScript SDK - 1ds-post-channel-js
61 lines • 2.22 kB
JavaScript
/*
* 1DS JS SDK POST plugin, 4.4.3
* Copyright (c) Microsoft and contributors. All rights reserved.
* (Microsoft Internal Only)
*/
/**
* KillSwitch.ts
* @author Abhilash Panwar (abpanwar)
* @copyright Microsoft 2018
*/
import { arrForEach, dateNow, strTrim } from "@microsoft/applicationinsights-core-js";
import { _DYN_LENGTH, _DYN_PUSH, _DYN_SET_KILL_SWITCH_TENA9, _DYN_SPLIT } from "./__DynamicConstants";
var SecToMsMultiplier = 1000;
function _normalizeTenants(values) {
var result = [];
if (values) {
arrForEach(values, function (value) {
result[_DYN_PUSH /* @min:%2epush */](strTrim(value));
});
}
return result;
}
/**
* Factory function to create a KillSwitch instance.
* @returns A new IKillSwitch instance.
* @internal
*/
export function createKillSwitch() {
var _a;
var _killedTokenDictionary = {};
return _a = {},
_a[_DYN_SET_KILL_SWITCH_TENA9 /* @min:setKillSwitchTenants */] = function (killTokens, killDuration) {
if (killTokens && killDuration) {
try {
var killedTokens = _normalizeTenants(killTokens[_DYN_SPLIT /* @min:%2esplit */](","));
if (killDuration === "this-request-only") {
return killedTokens;
}
var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;
for (var i = 0; i < killedTokens[_DYN_LENGTH /* @min:%2elength */]; ++i) {
_killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;
}
}
catch (ex) {
return [];
}
}
return [];
},
_a.isTenantKilled = function (tenantToken) {
var killDictionary = _killedTokenDictionary;
var name = strTrim(tenantToken);
if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {
return true;
}
delete killDictionary[name];
return false;
},
_a;
}
//# sourceMappingURL=KillSwitch.js.map