@embrace-io/react-native
Version:
A React Native wrapper for the Embrace SDK
42 lines (41 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logMessage = exports.logHandledError = exports.logError = exports.logWarning = exports.logInfo = void 0;
const log_1 = require("../utils/log");
const EmbraceManagerModule_1 = require("../EmbraceManagerModule");
const logMessage = (message, severity = "error",
// Android Native method is handling the null case
// iOS Native method is waiting for a non-nullable object
properties = {}, includeStacktrace = true) => {
const stackTrace =
// `"info"` are not supposed to send stack traces
// this is also restricted in the Native layers
includeStacktrace && severity !== "info" ? (0, log_1.generateStackTrace)() : "";
if (properties === null) {
console.warn("[Embrace] `properties` is null. It should be an object of type `Properties`. Native layer will ignore this value.");
}
return EmbraceManagerModule_1.EmbraceManagerModule.logMessageWithSeverityAndProperties(message, severity, properties, stackTrace, includeStacktrace);
};
exports.logMessage = logMessage;
const logInfo = (message) => {
// `"info"` logs are not supposed to send stack traces as per Product decision
// this is also restricted in the Native layers
return logMessage(message, "info", undefined, false);
};
exports.logInfo = logInfo;
const logWarning = (message, includeStacktrace = true) => {
return logMessage(message, "warning", undefined, includeStacktrace);
};
exports.logWarning = logWarning;
const logError = (message, includeStacktrace = true) => {
return logMessage(message, "error", undefined, includeStacktrace);
};
exports.logError = logError;
const logHandledError = (error, properties = {}) => {
if (error instanceof Error) {
const { stack, message } = error;
return EmbraceManagerModule_1.EmbraceManagerModule.logHandledError(message, stack, properties);
}
return Promise.resolve(false);
};
exports.logHandledError = logHandledError;