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