Перейти к содержимому
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.

Эта страница была полезной?