Hopp til innhold
i18n-error-base
Norsk
Esc
↑↓naviger↵åpne⌘Jforhåndsvis
På denne siden

i18n-error-base

En Error-baseklasse som bytter feilmeldinger i takt med Valibots språkinnstilling.

En Error-baseklasse som bytter message med Valibots lang.

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 slår opp lang ved hver lesing. Bytt uten å gjenskape instanser. Uregistrerte språk bruker konstruktørens standardmelding.

Funksjoner

  • Løser message dynamisk med Valibots setGlobalConfig({ lang })
  • Registrer språkspesifikke meldinger i etterkant med setErrorMessage. Funksjoner som mottar meta er også tillatt
  • Uregistrerte språk bruker konstruktørens standardmelding
  • Legger til et prefiks via static prefix per klasse
  • Beholder meta og sender den til meldingsfunksjoner
  • instanceof Error, cause og stack fungerer som vanlig

Struktur

Slik fungerer det

message løses i følgende rekkefølge ved hver aksess.

  1. Henter lang fra getGlobalConfig(). "en" når den ikke er satt
  2. Hvis en (klasse × lang)-registrering finnes, kjøres den med meta
  3. Ellers returneres konstruktørens standardmelding
  4. Hvis static prefix er satt, legges det til foran

Neste trinn

Start med Installasjon, og se deretter flyten i Bruk. Detaljer står i API-referansen.

Var denne siden nyttig?