@cubehosting/sdk chama a API pública sem você montar o pedido à mão: um método para cada rota, com os tipos do TypeScript, os logs ao vivo, o envio de arquivos grandes ao Blob e os erros com o code da API. Não tem dependências: usa o fetch do Node.js 20 ou mais novo.
O pacote ainda não está no npm. Esta página mostra como ele funciona; até ele sair, use a API direto, com os exemplos em JavaScript de cada página da referência.
Instalar Em breve
Começar
Crie uma chave em Chaves de API e guarde na variávelCUBE_API_KEY. Leitura basta para ver projetos, logs e métricas; para enviar, iniciar, parar, reiniciar e mexer nas variáveis, use uma de leitura e escrita. A chave Só Blob alcança só os métodos do Blob.
Enviar código
O.zip vai como Buffer, Uint8Array ou Blob, com o mesmo limite do plano (5 MB no Free e 10 MB nos pagos). Os outros campos são os de Criar um projeto; variables é um objeto { NOME: "valor" }.
.zip, respeitando o .gitignore, use a CLI (cube deploy).
Logs ao vivo
lines linhas, depois as novas, e cada mudança de estado como status. follow: false manda só as últimas e termina; source: 'build' mostra a instalação. Feche com break ou com um signal. O texto é do seu projeto: mostre como texto, nunca como HTML.
Blob
OuploadBlob faz os três passos do envio: pede o envio, manda os bytes direto ao armazenamento (em partes de 16 MB acima disso) e confirma. Para um arquivo grande, passe um Blob do disco, que não carrega tudo na memória:
CubeUploadError com o objectId: chame uploadBlob(path, data, { objectId }) com o mesmo arquivo para mandar só o que falta. As partes que chegaram ficam guardadas por 24 horas.
Erros
Toda resposta de erro vira umCubeApiError, com o code fixo em inglês da página Códigos de erro e a mensagem em português para mostrar a uma pessoa.
Sem conexão ou com o tempo esgotado, o erro é um
CubeConnectionError. Todos herdam de CubeError.
Segurança
- A chave fica num campo privado do cliente: não aparece no
console.log, noJSON.stringifynem em erro nenhum. - O SDK não segue redirecionamento: a chave só vai ao endereço da API.
- Os bytes do Blob vão direto ao armazenamento pela URL assinada, sem a chave.
- O
User-Agentleva só o nome e a versão do SDK.

