i18n-error-base
Базовий клас для Error, що перемикає повідомлення про помилки разом із мовними налаштуваннями Valibot.
Базовий клас Error, що перемикає message з lang 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 при кожному читанні звертається до lang. Перемикайте без повторного створення екземплярів. Незареєстровані мови використовують повідомлення за замовчуванням із конструктора.
Особливості
- Динамічно розв’язує
messageчерезsetGlobalConfig({ lang })Valibot - Повідомлення за мовами реєструються пізніше через
setErrorMessage. Допустимі й функції, що приймаютьmeta - Незареєстровані мови використовують повідомлення за замовчуванням із конструктора
- Додає префікс через
static prefixна рівні класу - Зберігає
metaй передає його у фабричні функції повідомлень instanceof Error,causeіstackпрацюють як зазвичай
Структура
Встановлення
Як додати пакет і peer-залежність.
Використання
Від визначення до перемикання, префікса й резерву.
Довідник API
Специфікації I18nErrorBase і setErrorMessage.
Як це працює
message розв’язується при кожному читанні в такому порядку.
- Отримує
langізgetGlobalConfig()."en", якщо не налаштовано - Якщо є реєстрація
(клас × lang), виконує її зmeta - Інакше повертає повідомлення за замовчуванням із конструктора
- Якщо налаштовано
static prefix, додає його на початок
Наступні кроки
Почніть із встановлення і перегляньте процес у використанні. Деталі — у довіднику API.