UNPKG

@dynatrace/react-native-plugin

Version:

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

64 lines (63 loc) 2.61 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 ViewInfoCreator_1 = require("./ViewInfoCreator"); const EventSpecContstants_1 = require("./spec/EventSpecContstants"); class EventPipelineImpl { constructor() { this.customEventModifierChain = new ModifyEventValidation_1.ModifyEventValidation(); this.logger = new ConsoleLogger_1.ConsoleLogger('EventPipeline'); } getEventModifierChain() { return [ new BaseDataEventModifier_1.BaseDataEventModifier(this.viewInfo), this.customEventModifierChain, ValueRestrictionModifier_1.ValueRestrictionModifier, ]; } insertEvent(event, context) { this.logger.debug(`insertEvent(${JSON.stringify(event)})`); this.getEventModifierChain().forEach((modifier) => { try { event = modifier.modifyEvent(event, context); } catch (error) { if (event != null) { event["dt.internal.api.has_enrich_exception"] = true; } } }); if (event != null) { 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); } generateViewData(name) { this.logger.debug(`generateViewData(${name})`); if (name != null) { this.viewInfo = (0, ViewInfoCreator_1.createViewInfo)(name); } } releaseViewData() { this.viewInfo = undefined; } } exports.EventPipeline = new EventPipelineImpl();