@dynatrace/react-native-plugin
Version:
This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.
47 lines (46 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DynatraceInternal = void 0;
const react_native_1 = require("react-native");
const Dynatrace_1 = require("../next/Dynatrace");
const DynatraceBridge_1 = require("./DynatraceBridge");
const StringUtils_1 = require("./util/StringUtils");
const ConsoleLogger_1 = require("./logging/ConsoleLogger");
let counter = 0;
const logger = new ConsoleLogger_1.ConsoleLogger('DyntraceInt');
exports.DynatraceInternal = {
reportErrorFromHandler: (isFatal, errorName, reason, stacktrace, isReportFatalErrorAsCrash, platform) => {
if (isFatal && isReportFatalErrorAsCrash) {
if (react_native_1.Platform.OS === 'ios') {
logger.debug(`storeCrash(${errorName}, ${reason}, ${stacktrace})`);
DynatraceBridge_1.DynatraceNative.storeCrash(errorName, reason, stacktrace);
}
else {
logger.debug(`reportCrash(${errorName}, ${reason}, ${stacktrace})`);
DynatraceBridge_1.DynatraceNative.reportCrash(errorName, reason, stacktrace, true, platform === null || platform === void 0 ? void 0 : platform.toString());
}
Dynatrace_1.Dynatrace.reportCrash({
name: errorName,
message: reason,
stack: stacktrace,
}, false, isFatal);
}
else {
if (!StringUtils_1.StringUtils.isStringNullEmptyOrUndefined(stacktrace)) {
logger.debug(`reportError(${errorName}, ${reason}, ${stacktrace})`);
DynatraceBridge_1.DynatraceNative.reportError(errorName, '-', reason, stacktrace, platform === null || platform === void 0 ? void 0 : platform.toString());
Dynatrace_1.Dynatrace.reportError({
name: errorName,
message: reason,
stack: stacktrace,
}, false);
}
else {
logger.debug(`reportError(${errorName})`);
DynatraceBridge_1.DynatraceNative.reportErrorWithoutStacktrace(errorName, -1);
Dynatrace_1.Dynatrace.reportErrorCode(errorName, -1, false);
}
}
},
getCounter: () => counter++,
};