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
- Pobiera
langzgetGlobalConfig()("en", gdy nie ustawiono) - Wykonuje zarejestrowaną funkcję dla tej klasy i języka z
meta - Gdy brak rejestracji, używa komunikatu domyślnego
- 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
langto"en". Przełącz przezsetGlobalConfig({ lang }) - Brak normalizacji kodów języków i łańcucha fallback (np.
en-US→en). Niezarejestrowane języki używają komunikatu domyślnego