in appcenter-crashes/Crashes.js [92:138]
setListener(listenerMap) {
crashesEventEmitter.removeAllListeners(EVENT_BEFORE_SENDING);
crashesEventEmitter.removeAllListeners(EVENT_SENDING_SUCCEEDED);
crashesEventEmitter.removeAllListeners(EVENT_SENDING_FAILED);
if (!listenerMap) {
return;
}
if (listenerMap.onBeforeSending) {
crashesEventEmitter.addListener(EVENT_BEFORE_SENDING, listenerMap.onBeforeSending);
}
if (listenerMap.onSendingSucceeded) {
crashesEventEmitter.addListener(EVENT_SENDING_SUCCEEDED, listenerMap.onSendingSucceeded);
}
if (listenerMap.onSendingFailed) {
crashesEventEmitter.addListener(EVENT_SENDING_FAILED, listenerMap.onSendingFailed);
}
getErrorAttachmentsMethod = listenerMap.getErrorAttachments;
Crashes.isEnabled()
.then((isEnabled) => {
if (isEnabled) {
return AppCenterReactNativeCrashes.getUnprocessedCrashReports();
}
throw new Error('Crashes service is not enabled.');
})
.then((reports) => {
if (reports.length > 0) {
const filteredReportIds = [];
reports.forEach((report) => {
if (!listenerMap.shouldProcess
|| listenerMap.shouldProcess(report)) {
filteredReports.push(report);
filteredReportIds.push(report.id);
}
});
return AppCenterReactNativeCrashes.sendCrashReportsOrAwaitUserConfirmationForFilteredIds(filteredReportIds);
}
throw new Error('No unprocessed crash reports found.');
})
.then((alwaysSend) => {
if (alwaysSend) {
Helper.sendErrorAttachments();
} else if (!listenerMap.shouldAwaitUserConfirmation || !listenerMap.shouldAwaitUserConfirmation()) {
Crashes.notifyUserConfirmation(UserConfirmation.SEND);
}
})
.catch((error) => console.log(error.message));
}