Przejdź do treści
i18n-error-base
Polski
Esc
↑↓nawigacja↵otwórz⌘Jpodgląd
Na tej stronie

Dokumentacja API

Specyfikacja I18nErrorBase, setErrorMessage i powiązanych typów.

I18nErrorBase

Klasa bazowa do rozszerzania Error. message jest rozwiązywany zgodnie z lang.

import { I18nErrorBase } from "i18n-error-base";

class MyError extends I18nErrorBase<{ code: string }> {}

Parametry typu

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Typ meta. Gdy nieużywany, podaj undefined.

Właściwości statyczne

Prop Type Default Description
prefix? string undefined Dodawane na początku rozwiązanego komunikatu.

Właściwości instancji

Prop Type Description
meta TMeta Pomocnicze dane konstruktora. Odczytywalne i zapisywalne.
message string Rozwiązywany zgodnie z lang. Wyliczalny.
cause unknown Przyczyna z ErrorOptions. Standardowa właściwość Error.

Konstruktor

Gdy TMeta nie zawiera undefined, meta jest wymagane.

new MyError(meta, message, options?)

Gdy TMeta wynosi undefined, meta można pominąć.

new MyError(message, options?)
new MyError(meta, message, options?)
Parametr Typ Opis
meta TMeta Dane pomocnicze do generowania komunikatu.
message string | MessageFactory<TMeta> Domyślny komunikat dla języków bez rejestracji. Funkcje przyjmują meta.
options ErrorOptions Opcje zgodne z drugim argumentem Error (np. { cause }).

Kolejność rozwiązywania

  1. Pobiera lang z getGlobalConfig() ("en", gdy nie ustawiono)
  2. Wykonuje zarejestrowaną funkcję dla tej klasy i języka z meta
  3. Gdy brak rejestracji, używa komunikatu domyślnego
  4. Jeśli ustawiono static prefix, dodaje go na początku

setErrorMessage

Rejestruje funkcje tworzące komunikat dla języka.

import { setErrorMessage } from "i18n-error-base";

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parametr Typ Opis
reference I18nErrorBaseConstructor Klasa rozszerzająca I18nErrorBase. Inne klasy to błąd typu.
message string | (meta) => string Rejestrowany komunikat. meta jest wnioskowane z klasy docelowej.
lang string | Iterable<string> Język docelowy. Pojedynczy kod lub iterowalny obiekt (np. tablica).

Ponowna rejestracja tej samej klasy i języka nadpisuje wpis.

Typy

ErrorMeta

type ErrorMeta = {
  readonly [prop: string]: unknown;
};

Domyślne ograniczenie dla TMeta. Obiekt tylko do odczytu o dowolnych właściwościach.

ErrorOptions

type ErrorOptions =
  ConstructorParameters<typeof Error> extends [
    message?: unknown,
    options?: (infer TOptions) | undefined,
  ]
    ? TOptions
    : { readonly cause?: unknown };

Typ wyprowadzony z drugiego argumentu Error. Można przekazać cause.

MessageFactory<TMeta>

interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
  (meta: TMeta): string;
}

Funkcja tworząca komunikat z meta. Używana dla komunikatów domyślnych i zarejestrowanych.

I18nErrorBaseParams<TMeta>

Przeciążenia argumentów konstruktora.

type I18nErrorBaseParams<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> =
  [TMeta] extends [undefined]
    ?
        | [message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined]
        | [meta: undefined, message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined]
    : [meta: TMeta, message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined];

Pomiń meta tylko wtedy, gdy TMeta to undefined.

I18nErrorBaseConstructor

interface I18nErrorBaseConstructor {
  new (...args: any): I18nErrorBase;
}

Typ pierwszego argumentu setErrorMessage.

Uwagi

  • Domyślny lang to "en". Przełącz przez setGlobalConfig({ lang })
  • Brak normalizacji kodów języków i łańcucha fallback (np. en-US → en). Niezarejestrowane języki używają komunikatu domyślnego

Czy ta strona była pomocna?