Перейти до вмісту
i18n-error-base
Українська
Esc
↑↓навігація↵відкрити⌘Jперегляд
На цій сторінці

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 працюють як зазвичай

Структура

Як це працює

message розв’язується при кожному читанні в такому порядку.

  1. Отримує lang із getGlobalConfig(). "en", якщо не налаштовано
  2. Якщо є реєстрація (клас × lang), виконує її з meta
  3. Інакше повертає повідомлення за замовчуванням із конструктора
  4. Якщо налаштовано static prefix, додає його на початок

Наступні кроки

Почніть із встановлення і перегляньте процес у використанні. Деталі — у довіднику API.

Чи була ця сторінка корисною?