1import NativeErrorManager from './NativeErrorManager';
2import { EventEmitter } from '../EventEmitter';
3import Platform from '../Platform';
4import { CodedError } from '../errors/CodedError';
5
6if (__DEV__ && Platform.OS === 'android' && NativeErrorManager) {
7  const onNewException = 'ExpoModulesCoreErrorManager.onNewException';
8  const onNewWarning = 'ExpoModulesCoreErrorManager.onNewWarning';
9  const eventEmitter = new EventEmitter(NativeErrorManager);
10
11  eventEmitter.addListener(onNewException, ({ message }: { message: string }) => {
12    console.error(message);
13  });
14
15  eventEmitter.addListener(onNewWarning, ({ message }: { message: string }) => {
16    console.warn(message);
17  });
18}
19
20// We have to export `CodedError` via global object to use in later in the C++ code.
21globalThis.ExpoModulesCore_CodedError = CodedError;
22