i18n-error-base
Classe base de Error que alterna as mensagens de erro em sincronia com a configuração de idioma do Valibot.
Classe base Error que alterna message com o lang do Valibot.
import { setGlobalConfig } from "valibot";
import { I18nErrorBase, setErrorMessage } from "i18n-error-base";
class NotFoundError extends I18nErrorBase<{ resource: string }> {}
setErrorMessage(NotFoundError, ({ resource }) => `リソースが見つかりません: ${resource}`, "ja");
setErrorMessage(NotFoundError, ({ resource }) => `Resource not found: ${resource}`, "en");
const error = new NotFoundError({ resource: "user" }, "fallback message");
setGlobalConfig({ lang: "ja" });
console.log(error.message); // リソースが見つかりません: user
setGlobalConfig({ lang: "en" });
console.log(error.message); // Resource not found: user
A message consulta o lang a cada leitura. Troca sem recriar instâncias. Idiomas sem registro usam a mensagem padrão do construtor.
Recursos
- Resolve
messagedinamicamente comsetGlobalConfig({ lang })do Valibot. - Você registra as mensagens de cada idioma depois com
setErrorMessage. Funções que recebemmetatambém valem. - Idiomas sem registro usam a mensagem padrão do construtor.
- Adiciona um prefixo com
static prefixpor classe. - Salva o
metae passa para as funções que geram a mensagem. instanceof Error,causeestackfuncionam normalmente.
Estrutura
Instalação
Como adicionar o pacote e a dependência peer.
Uso
Da definição à troca, prefixo e fallback.
Referência da API
Especificação de I18nErrorBase e setErrorMessage.
Como funciona
A message resolve a cada leitura nesta ordem.
- Pega o
langdegetGlobalConfig(). Se não configurado,"en". - Se houver registro
(classe × lang), executa passando ometa. - Se não houver, retorna a mensagem padrão do construtor.
- Se
static prefixestiver configurado, coloca no início.
Próximos passos
Comece pela instalação e confira o fluxo em uso. Os detalhes estão na referência da API.