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