Pular para o conteúdo principal

Erros

ClasseQuando
LibreTranslateApiErrorUma resposta fora de 2xx
LibreTranslateConfigErrorConfiguração inválida: URL ausente ou malformada
LibreTranslateTimeoutErrorNenhuma resposta dentro de timeoutMs

LibreTranslateApiError traz status, method, path (sem a query string) e o body da resposta. O LibreTranslate responde erros como { "error": "<mensagem>" }, e essa mensagem é a do erro.

StatusNormalmente
400Um parâmetro ausente ou inválido, um arquivo não suportado, ou chave exigida
403A API key é inválida, ou o cliente foi bloqueado
429Requisições demais: espere e tente de novo
500A tradução falhou na instância
import { LibreTranslateApiError } from "@hoyasumii/libretranslate";

try {
await lt.translate({ q: "Olá", target: "en" });
} catch (error) {
if (error instanceof LibreTranslateApiError && error.status === 429) {
// espere e tente de novo
} else throw error;
}

A API key nunca aparece​

A mensagem e o body de todo erro passam por redact: os valores de chaves como api_key viram ***, assim como qualquer ocorrência literal da chave do próprio cliente, inclusive dentro de strings. redact é exportado para os seus logs:

import { redact } from "@hoyasumii/libretranslate";

console.log(redact(payload, [process.env.LIBRETRANSLATE_API_KEY!]));