UNPKG

@dynatrace/react-native-plugin

Version:

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

90 lines (89 loc) 2.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.containEventPropertiesInArray = exports.containEventProperties = exports.containSessionProperties = exports.trimStringValuesInObject = exports.trimString = exports.isObject = exports.flattenAdditionalData = void 0; const MAX_STRING_LENGTH_FOR_VALUES = 5000; const flattenAdditionalData = (obj, parent, res = {}) => { for (const key in obj) { const propName = parent != null ? parent + '.' + key : key; const valueOfObject = obj[key]; if ((0, exports.isObject)(valueOfObject)) { (0, exports.flattenAdditionalData)(valueOfObject, propName, res); } else { res[propName] = obj[key]; } } return res; }; exports.flattenAdditionalData = flattenAdditionalData; const isObject = (obj) => { if (obj === null || typeof obj !== 'object') { return false; } return Object.prototype.toString.call(obj) === '[object Object]'; }; exports.isObject = isObject; const trimString = (str, maxLength = MAX_STRING_LENGTH_FOR_VALUES) => { const stringToTrim = str.toString(); if (stringToTrim.length <= maxLength) { return stringToTrim; } else { return stringToTrim.substring(0, maxLength); } }; exports.trimString = trimString; const trimStringValuesInObject = (jsonData) => { for (const key in jsonData) { if (Object.prototype.hasOwnProperty.call(jsonData, key)) { jsonData[key] = trimStringValue(jsonData[key]); } } return jsonData; }; exports.trimStringValuesInObject = trimStringValuesInObject; const containSessionProperties = (jsonData) => { for (const key in jsonData) { if (key.startsWith(`${"session_properties"}.`)) { return true; } } return false; }; exports.containSessionProperties = containSessionProperties; const containEventProperties = (jsonData) => { for (const key in jsonData) { if (key.startsWith(`${"event_properties"}.`)) { return true; } } return false; }; exports.containEventProperties = containEventProperties; const containEventPropertiesInArray = (eventEntries) => { for (const [key, value] of eventEntries) { if (key.startsWith(`${"event_properties"}.`)) { return true; } } return false; }; exports.containEventPropertiesInArray = containEventPropertiesInArray; const trimStringValuesInArray = (arrayData) => { arrayData.forEach((value, index, array) => { array[index] = trimStringValue(value); }); return arrayData; }; const trimStringValue = (data) => { if (typeof data === 'string') { return (0, exports.trimString)(data); } else if (Array.isArray(data)) { return trimStringValuesInArray(data); } else if ((0, exports.isObject)(data)) { return (0, exports.trimStringValuesInObject)(data); } return data; };