UNPKG

react-native-code-sync

Version:

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

67 lines (64 loc) 2.56 kB
const fs = require('fs'); const axios = require('axios') const FormData = require('form-data'); const uploadBundleFile = () => { try { const args = process.argv.slice(2); let fileName = '', platform = '', completeApiUrl = '' const formData = new FormData() args.forEach(arg => { const [key, value] = arg.split("="); if (key && value) { if (key == 'platform' && (value == 'android' || value == 'ios')) { platform = value } else if (key == 'apiurl') { completeApiUrl = value } else formData.append(key, value); } }); const projectDirectory = process.cwd() if (!platform) { console.error('Please specify value of platform in script, it can be either "android" or "ios"') return } if (platform == 'android') { fileName = 'index.android.bundle.zip' } if (platform == 'ios') { fileName = 'main.jsbundle.zip' } const bundlePath = `${projectDirectory}/${platform}/${fileName}` console.log("bundlePath==>", bundlePath) if (!projectDirectory) return if (!fs.existsSync(bundlePath)) { console.error('Bundle file does not exist at', bundlePath); return } if (!completeApiUrl?.trim()) { console.error('BaseURL/endpoint is not provided, please provide api baseURL/endpoint to upload bundle') return } formData.append('upload_type', 'app_apk') formData.append('images', fs.createReadStream(bundlePath), { filename: fileName, contentType: 'application/zip' }) console.log("formData===>", formData) axios.post( completeApiUrl, formData, ) .then(response => { console.log("response==>", response) if (response.data && response.data.status && response.data.status === 200) { console.log("Bundle file uploaded", JSON.stringify(response.data)) } else { console.log("Bundle file upload failed", JSON.stringify(response.data)) } }) .catch(err => { console.log("Bundle file uploaded failed in catch", err) }) } catch (error) { console.log('api error=> Error in upload bundle file', JSON.stringify(error)) } }; uploadBundleFile()