UNPKG

@dynatrace/react-native-plugin

Version:

This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.

66 lines (65 loc) 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventPipeline = void 0; const DynatraceBridge_1 = require("../../core/DynatraceBridge"); const ConsoleLogger_1 = require("../../core/logging/ConsoleLogger"); const BaseDataEventModifier_1 = require("./modifier/BaseDataEventModifier"); const ValueRestrictionModifier_1 = require("./modifier/ValueRestrictionModifier"); const ModifyEventValidation_1 = require("./modifier/ModifyEventValidation"); const EventSpecContstants_1 = require("./spec/EventSpecContstants"); const StringLengthEventModifier_1 = require("./modifier/StringLengthEventModifier"); class EventPipelineImpl { constructor() { this.customEventModifierChain = new ModifyEventValidation_1.ModifyEventValidation(); this.logger = new ConsoleLogger_1.ConsoleLogger('EventPipeline'); } getEventModifierChain() { const stringLengthEventModifier = new StringLengthEventModifier_1.StringLengthEventModifier(); return [ new BaseDataEventModifier_1.BaseDataEventModifier(), stringLengthEventModifier, this.customEventModifierChain, ValueRestrictionModifier_1.ValueRestrictionModifier, stringLengthEventModifier, ]; } insertEvent(event) { this.logger.debug(`insertEvent(${JSON.stringify(event)})`); let isDiscarded = false; for (const modifier of this.getEventModifierChain()) { try { const eventRv = modifier.modifyEvent(event); if (eventRv == null) { isDiscarded = true; break; } else { event = eventRv; } } catch (_a) { if (event != null) { event["dt.support.api.has_enrich_exception"] = true; } } } if (event != null && !isDiscarded) { this.logger.debug(`forwardEvent(${JSON.stringify(event)})`); if (event["characteristics.has_app_start"] === true) { DynatraceBridge_1.DynatraceNative.forwardAppStartEvent(event, EventSpecContstants_1.ALL_APP_START_KEYS); } else { DynatraceBridge_1.DynatraceNative.forwardEvent(event); } } } addEventModifier(eventModifier) { this.logger.debug('addEventModifier()'); return this.customEventModifierChain.addEventModifier(eventModifier); } removeEventModifier(eventModifier) { this.logger.debug('removeEventModifier()'); return this.customEventModifierChain.removeEventModifier(eventModifier); } } exports.EventPipeline = new EventPipelineImpl();