Ugrás a tartalomra
i18n-error-base
Magyar
Esc
↑↓navigálás↵megnyitás⌘Jelőnézet
Ezen az oldalon

i18n-error-base

Hibaüzeneteket váltó Error alaposztály, amely a Valibot nyelvi beállításával működik együtt.

Error alaposztály, amely a Valibot lang beállításával váltja a message értékét.

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 minden olvasáskor a lang értékre hivatkozik. Váltson a példány újraalkotása nélkül. Nem regisztrált nyelv esetén a konstruktor alapértelmezett üzenete használatos.

Jellemzők

  • A message értékét dinamikusan oldja fel a setGlobalConfig({ lang }) segítségével
  • A nyelvenkénti üzeneteket utólag regisztrálja a setErrorMessage segítségével. A meta értéket fogadó függvények is megadhatók
  • Nem regisztrált nyelv esetén a konstruktor alapértelmezett üzenete használatos
  • Osztályszintű static prefix segítségével előtag fűzhető az üzenet elejére
  • A meta értéket tárolja, és átadja az üzenetgeneráló függvényeknek
  • Az instanceof Error, a cause és a stack változatlanul használható

Felépítés

Működés

A message minden olvasáskor az alábbi sorrendben oldódik fel.

  1. Lekéri a lang értéket a getGlobalConfig() segítségével. Ha nincs beállítva, "en"
  2. Ha van regisztrált (osztály × lang) függvény, végrehajtja a meta átadásával
  3. Ha nincs, a konstruktor alapértelmezett üzenetét adja vissza
  4. Ha a static prefix be van állítva, az üzenet elejére fűzi

Következő lépések

Kezdje a telepítéssel, majd tekintse át a folyamatot a használat oldalon. A részleteket az API-referenciában találja.

Hasznos volt ez az oldal?