import { getAndroidId, getDevice, getModel, isCameraPresent, getSystemVersion, getSystemName, getBuildNumber, } from 'react-native-device-info'; export const formatErrorForLog = error => { if (typeof error === 'string') { return error; } else { return JSON.stringify(error, null, 0).replace(/,/g, ',\n'); } }; export const generateAdditionalInformation = async () => { interface additionalInfo { androidId?: string; device?: string; deviceModel?: string; systemName?: string; systemVersion?: string; buildNumber?: string; isCameraPresent?: boolean; cameraAccessException?: string | undefined; } const additionalInfo: additionalInfo = {}; additionalInfo.androidId = await getAndroidId(); additionalInfo.device = await getDevice(); additionalInfo.deviceModel = getModel(); additionalInfo.systemName = getSystemName(); additionalInfo.systemVersion = getSystemVersion(); additionalInfo.buildNumber = getBuildNumber(); await isCameraPresent() .then(isPresent => { additionalInfo.isCameraPresent = isPresent; }) .catch(cameraAccessException => { additionalInfo.cameraAccessException = cameraAccessException; }); return formatErrorForLog(additionalInfo); };