@bundle-cloud/sdk
v0.1.17
Published
SDK oficial para integração com o serviço de atualizações over-the-air do **BundleCloud**, compatível com apps React Native (0.68+).
Readme
@bundle-cloud/sdk
SDK oficial para integração com o serviço de atualizações over-the-air do BundleCloud, compatível com apps React Native (0.68+).
Permite verificar, baixar e aplicar novos bundles em produção ou staging, sem precisar passar pela loja.
⚙️ Instalação
npm install @bundle-cloud/sdk
# ou
yarn add @bundle-cloud/sdk🚀 Como usar
1. Importe e configure
import { createBundleCloudClient } from '@bundle-cloud/sdk'
const bundlecloud = createBundleCloudClient({
apiKey: 'sua-api-key'
appId: 'seu-app-id',
teamId: 'seu-tem-id',
env: 'PRD', // ou 'HML' ou 'STG'
platform: 'android', // ou 'ios'
buildNumber: 42, // número da build
version: '1.0.0', // versão interna do app
})2. Verifique se há atualizações
const update = await bundlecloud.checkForUpdate()
if (update.ok && update.value.hasNewBundle) {
// há um novo bundle disponível
}3. Baixe e aplique o novo bundle
await bundlecloud.downloadBundle()
await bundlecloud.applyBundle()
// após aplicar, você pode reiniciar o app se necessário📡 API do SDK
checkForUpdate(): Promise<TResult<TCheckForUpdateResponse>>
Verifica no servidor se há um novo bundle.
downloadBundle(): Promise<TResult<TDownloadBundleResponse>>
Faz o download do bundle mais recente para o diretório local.
applyBundle(): Promise<TResult<void>>
Aplica o bundle baixado (sem reiniciar o app automaticamente).
markBundleAsStable(): Promise<TResult<void>>
Marca um bundle instalado como estável.
maybeRollbackBundle(): Promise<TResult<boolean>>
Marca um bundle instalado como estável.
getBundlePath(): Promise<string>
Retorna o caminho do bundle atualmente salvo no dispositivo.
on(event, callback)
Permite escutar eventos do SDK.
Exemplo:
bundlecloud.on('bundle-downloaded', () => {
console.log('Download do bundle concluído')
})
bundlecloud.on('error', ({ error }) => {
console.error('Erro:', error)
})📌 Eventos disponíveis
| Evento | Quando ocorre |
|------------------------|----------------------------------------------------------|
| initialized | Após o SDK ser configurado |
| checked-for-update | Após checar se há novo bundle |
| update-available | Durante o download |
| bundle-downloaded | Quando o bundle termina de baixar |
| bundle-applied | Quando o novo bundle é aplicado |
| rollback-applied | Quando um erro é detectado e um rollback aplicado |
| error | Quando ocorre qualquer erro |
✅ Requisitos do projeto
Este SDK depende dos seguintes módulos, que devem estar instalados no seu app React Native:
Recomendado o uso do
@bundle-cloud/clipara a configuração automática do projeto via terminal e geração do zip conforme esperado pelo servidor.
📁 Estrutura esperada do bundle
O SDK espera que o bundle baixado seja um .zip contendo:
index.android.bundle (ou index.ios.bundle)
assets/
manifest.json🧪 Exemplo de uso completo
const initUpdateFlow = async () => {
const update = await bundlecloud.checkForUpdate()
if (update.ok && update.value.hasNewBundle) {
await bundlecloud.downloadBundle()
await bundlecloud.applyBundle()
// reinicie o app ou navegue para uma nova tela
}
}📝 Licença
MIT — criado por Felipe Emanuel
