UNPKG

react-native-code-sync

Version:

React-native plugin for the code-sync functionality on live via OTA (Over-the-air)

92 lines (82 loc) 2.51 kB
import { Platform } from 'react-native' import AsyncStorage from '@react-native-async-storage/async-storage'; import DeviceInfo from 'react-native-device-info'; import RNFS from 'react-native-fs'; import RNRestart from 'react-native-restart'; import { CONSOLE_ENABLED } from './Constants' import { getCodeSyncConfig } from '../config'; export function log() { if (CONSOLE_ENABLED) console.log(...arguments); } export function showAPIError(error, showDefaultError) { if (error) { if (error?.message) { return (error?.message) } else if (error?.error) { return (JSON.stringify(error?.error)) } else if (error?.errors) { return (JSON.stringify(error?.errors)) } else if (error?.msg) { return (error?.msg) } else if (showDefaultError) { return ('Something went wrong') } else return (error) } } export const isIOS = Platform.OS == 'ios' export const isAndroid = Platform.OS == 'android' export const checkForDevMode = () => { const config = getCodeSyncConfig(); if(__DEV__ && !config.enableInDevMode) return true return false } export const getAsyncStorage = ({ key = '' }) => { return new Promise((resolve) => { try { if (key.trim()) { const result = AsyncStorage.getItem(key) if (result != null || result != undefined) resolve(result) else resolve(null) } else resolve(null) } catch (error) { log(error) } }) } export const setAsyncStorage = async ({ key, value }) => { try { if (key && value) { await AsyncStorage.setItem(key, value); } else log('EERROOOORR', value, key) } catch (error) { log(error); } } export const getAppVersion = () => DeviceInfo.getVersion() export const checkFileExists = async (filePath) => { return new Promise(async (resolve, reject) => { try { if (filePath) { const exists = await RNFS.exists(filePath); log(`File exists: ${exists}`); resolve(exists) } else { resolve(false) } } catch (error) { resolve(false) log('Error checking file existence:', error); } }) }; export const reloadApp = () => { setTimeout(() => { RNRestart.restart(); }, 300); }