i18n-error-base
Classe base de Error que alterna as mensagens de erro em sincronia com a definiçã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 em cada leitura. Mudança sem voltar a criar instâncias. Idiomas sem registo usam a mensagem por omissão do construtor.
Funcionalidades
- Resolve a
messagedinamicamente comsetGlobalConfig({ lang })do Valibot. - As mensagens por idioma registam-se depois com
setErrorMessage. Funções que recebemmetatambém são aceites. - Idiomas sem registo usam a mensagem por omissão do construtor.
- Adiciona um prefixo com
static prefixpor classe. - Guarda o
metae passa-o às funções de geração de mensagens. instanceof Error,causeestackfuncionam como sempre.
Estrutura
Instalação
Adição do pacote e da dependência peer.
Utilização
Da definição à mudança, prefixo e recurso.
Referência da API
Especificações de I18nErrorBase e setErrorMessage.
Como funciona
A message é resolvida em cada leitura pela seguinte ordem.
- Obtém o
langdegetGlobalConfig(). Se não definido,"en". - Se existir um registo
(classe × lang), executa-o com ometa. - Caso contrário, devolve a mensagem por omissão do construtor.
- Se
static prefixestiver definido, antepõe-no.
Próximos passos
Comece pela instalação e veja o fluxo na utilização. Os detalhes estão na referência da API.