setListener()

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));
    }