Skip to main content
Quando o SDK não consegue conectar à API ou quando a API retorna um código de status não-sucedido (4xx ou 5xx), uma subclasse de APIError será lançada:
import Triglit from 'triglit';

const client = new Triglit({ apiKey: 'pk_...' });

try {
  const trigger = await client.triggers.create({
    config: {},
    name: 'x',
    type: 'event',
    workflowVersionId: 'x',
  });
} catch (err) {
  if (err instanceof Triglit.APIError) {
    console.log(err.status); // 400
    console.log(err.name); // BadRequestError
    console.log(err.headers); // {server: 'nginx', ...}
    console.log(err.message); // Mensagem de erro
  } else {
    throw err;
  }
}

Classes de Erro

O SDK fornece classes de erro específicas para cada código de status:
Status CodeClasse de Erro
400BadRequestError
401AuthenticationError
403PermissionDeniedError
404NotFoundError
422UnprocessableEntityError
429RateLimitError
>=500InternalServerError
N/AAPIConnectionError

Exemplo com Verificação de Tipo

import Triglit from 'triglit';

const client = new Triglit({ apiKey: 'pk_...' });

try {
  const workflow = await client.workflows.retrieve('invalid_id');
} catch (error) {
  if (error instanceof Triglit.NotFoundError) {
    console.error('Workflow não encontrado');
  } else if (error instanceof Triglit.AuthenticationError) {
    console.error('Chave de API inválida');
  } else if (error instanceof Triglit.RateLimitError) {
    console.error('Rate limit excedido');
  } else if (error instanceof Triglit.APIError) {
    console.error(`Erro da API: ${error.status} - ${error.message}`);
  } else {
    // Erro não relacionado à API
    throw error;
  }
}

Propriedades dos Erros

Todas as classes de erro herdam de APIError e incluem:
  • status: Código de status HTTP (se disponível)
  • name: Nome da classe de erro
  • headers: Headers da resposta HTTP
  • message: Mensagem de erro descritiva
Use instanceof para verificar o tipo específico de erro e tratar cada caso adequadamente.