i18n-error-base
Clase base de Error que cambia los mensajes de error según la configuración de idioma de Valibot.
Clase base Error que cambia message con el lang de 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
message consulta lang en cada lectura. Cambio sin recrear instancias. Los idiomas no registrados usan el mensaje predeterminado del constructor.
Características
- Resuelve
messagedinámicamente consetGlobalConfig({ lang })de Valibot. - Los mensajes por idioma se registran después con
setErrorMessage. También se admiten funciones que recibenmeta. - Los idiomas no registrados usan el mensaje predeterminado del constructor.
- Añade un prefijo con
static prefixpor clase. - Conserva
metay lo pasa a las funciones generadoras de mensajes. instanceof Error,causeystackfuncionan como siempre.
Estructura
Instalación
Instalación del paquete y su dependencia peer.
Uso
De la definición al cambio, prefijo y reserva.
Referencia de la API
Especificación de I18nErrorBase y setErrorMessage.
Cómo funciona
message se resuelve en cada lectura en el siguiente orden.
- Obtiene
langdegetGlobalConfig(). Si no está configurado,"en". - Si existe un registro
(clase × lang), lo ejecuta conmeta. - Si no, devuelve el mensaje predeterminado del constructor.
- Si
static prefixestá configurado, lo antepone.
Siguientes pasos
Comience con la instalación y vea el flujo en uso. Los detalles están en la referencia de la API.