@microsoft/applicationinsights-core-js
Version:
Microsoft Application Insights Core Javascript SDK
92 lines (91 loc) • 4.29 kB
JavaScript
/*
* 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