UNPKG

@microsoft/1ds-post-js

Version:

Microsoft Application Insights JavaScript SDK - 1ds-post-channel-js

69 lines (68 loc) 2.93 kB
/* * 1DS JS SDK POST plugin, 4.3.11 * Copyright (c) Microsoft and contributors. All rights reserved. * (Microsoft Internal Only) */ /** * KillSwitch.ts * @author Abhilash Panwar (abpanwar) * @copyright Microsoft 2018 */ import dynamicProto from "@microsoft/dynamicproto-js"; import { arrForEach, dateNow, strTrim } from "@microsoft/1ds-core-js"; import { _DYN_IS_TENANT_KILLED, _DYN_LENGTH, _DYN_PUSH, _DYN_SET_KILL_SWITCH_TENA11, _DYN_SPLIT } from "./__DynamicConstants"; var SecToMsMultiplier = 1000; /** * Class to stop certain tenants sending events. */ var KillSwitch = /** @class */ (function () { function KillSwitch() { var _killedTokenDictionary = {}; function _normalizeTenants(values) { var result = []; if (values) { arrForEach(values, function (value) { result[_DYN_PUSH /* @min:%2epush */](strTrim(value)); }); } return result; } dynamicProto(KillSwitch, this, function (_self) { _self[_DYN_SET_KILL_SWITCH_TENA11 /* @min:%2esetKillSwitchTenants */] = 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 []; }; _self[_DYN_IS_TENANT_KILLED /* @min:%2eisTenantKilled */] = function (tenantToken) { var killDictionary = _killedTokenDictionary; var name = strTrim(tenantToken); if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) { return true; } delete killDictionary[name]; return false; }; }); } // Removed Stub for KillSwitch.prototype.setKillSwitchTenants. // Removed Stub for KillSwitch.prototype.isTenantKilled. // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code. KillSwitch.__ieDyn=1; return KillSwitch; }()); export { KillSwitch }; //# sourceMappingURL=KillSwitch.js.map