UNPKG

@microsoft/applicationinsights-core-js

Version:

Microsoft Application Insights Core Javascript SDK

92 lines (91 loc) 4.29 kB
/* * Application Insights JavaScript SDK - Core, 3.3.6 * Copyright (c) Microsoft and contributors. All rights reserved. */ // // import { __extendsFn as __extends } from "@microsoft/applicationinsights-shims"; import dynamicProto from "@microsoft/dynamicproto-js"; import { arrAppend, arrForEach, dumpObj } from "@nevware21/ts-utils"; import { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from "../__DynamicConstants"; import { BaseTelemetryPlugin } from "./BaseTelemetryPlugin"; import { _throwInternal } from "./DiagnosticLogger"; import { getExceptionName } from "./HelperFuncs"; import { STR_PROCESS_TELEMETRY } from "./InternalConstants"; function _addInitializer(_initializers, id, telemetryInitializer) { var theInitializer = { id: id, fn: telemetryInitializer }; arrAppend(_initializers, theInitializer); var handler = { remove: function () { arrForEach(_initializers, function (initializer, idx) { if (initializer.id === theInitializer.id) { _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1); return -1; } }); } }; return handler; } function _runInitializers(_initializers, item, logger) { var doNotSendItem = false; var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */]; for (var i = 0; i < telemetryInitializersCount; ++i) { var telemetryInitializer = _initializers[i]; if (telemetryInitializer) { try { if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) { doNotSendItem = true; break; } } catch (e) { // log error but dont stop executing rest of the telemetry initializers // doNotSendItem = true; _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, "Telemetry initializer failed: " + getExceptionName(e), { exception: dumpObj(e) }, true); } } } return !doNotSendItem; } var TelemetryInitializerPlugin = /** @class */ (function (_super) { __extends(TelemetryInitializerPlugin, _super); function TelemetryInitializerPlugin() { var _this = _super.call(this) || this; _this.identifier = "TelemetryInitializerPlugin"; _this.priority = 199; // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown() var _id; var _initializers; _initDefaults(); dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) { _self.addTelemetryInitializer = function (telemetryInitializer) { return _addInitializer(_initializers, _id++, telemetryInitializer); }; _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) { if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) { _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx); } }; _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () { _initDefaults(); }; }); function _initDefaults() { _id = 0; _initializers = []; } return _this; } // Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer. // Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry. // 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. TelemetryInitializerPlugin.__ieDyn=1; return TelemetryInitializerPlugin; }(BaseTelemetryPlugin)); export { TelemetryInitializerPlugin }; //# sourceMappingURL=TelemetryInitializerPlugin.js.map