API referenca
Specifikacija za I18nErrorBase, setErrorMessage i povezane tipove.
I18nErrorBase
Osnovna klasa za proširenje Error. message se razrješava prema lang.
import { I18nErrorBase } from "i18n-error-base";
class MyError extends I18nErrorBase<{ code: string }> {}
Parametri tipa
| Prop | Type | Default | Description |
|---|---|---|---|
TMeta |
ErrorMeta | undefined |
ErrorMeta | undefined |
Tip meta. Kad se ne koristi, navedite undefined. |
Statička svojstva
| Prop | Type | Default | Description |
|---|---|---|---|
prefix? |
string |
undefined |
Dodaje se na početak razriješene poruke. |
Svojstva instance
| Prop | Type | Description |
|---|---|---|
meta |
TMeta |
Pomoćne info iz konstruktora. Mogu se čitati i pisati. |
message |
string |
Poruka razriješena prema lang. Može se nabrojiti. |
cause |
unknown |
Uzrok iz ErrorOptions. Standardno svojstvo Error. |
Konstruktor
Ako TMeta isključuje undefined, meta je obavezan.
new MyError(meta, message, options?)
Ako je TMeta undefined, meta se može izostaviti.
new MyError(message, options?)
new MyError(meta, message, options?)
| Parametar | Tip | Opis |
|---|---|---|
meta |
TMeta |
Pomoćne info za generiranje poruke. |
message |
string | MessageFactory<TMeta> |
Zadana poruka za neregistrirane jezike. Funkcije primaju meta. |
options |
ErrorOptions |
Opcije kompatibilne s 2. argumentom Error (npr. { cause }). |
Redoslijed razrješavanja
- Dohvaća
langizgetGlobalConfig()("en"kad nije postavljeno) - Izvršava registriranu funkciju za tu klasu i jezik s
meta - Kad nije registrirano, koristi zadanu poruku
- Ako je postavljen
static prefix, dodaje ga na početak
setErrorMessage
Registrira tvorničke funkcije poruka po jeziku.
import { setErrorMessage } from "i18n-error-base";
setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
| Parametar | Tip | Opis |
|---|---|---|
reference |
I18nErrorBaseConstructor |
Klasa koja proširuje I18nErrorBase. Ostale su pogreška tipa. |
message |
string | (meta) => string |
Poruka za registraciju. meta se izvodi iz ciljane klase. |
lang |
string | Iterable<string> |
Ciljani jezik. Jedan kod ili iterabil (npr. polje). |
Ponovna registracija iste klase i jezika prepisuje.
Tipovi
ErrorMeta
type ErrorMeta = {
readonly [prop: string]: unknown;
};
Zadano ograničenje za TMeta. Objekt samo za čitanje s proizvoljnim svojstvima.
ErrorOptions
type ErrorOptions =
ConstructorParameters<typeof Error> extends [
message?: unknown,
options?: (infer TOptions) | undefined,
]
? TOptions
: { readonly cause?: unknown };
Tip izveden iz 2. argumenta Error. Može se proslijediti cause.
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
Funkcija koja stvara poruku iz meta. Koristi se i za zadane i za registrirane poruke.
I18nErrorBaseParams<TMeta>
Preopterećenja argumenata 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];
meta se izostavlja samo kad je TMeta undefined.
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
Tip 1. argumenta setErrorMessage.
Napomene
- Zadani
langje"en". Prebacite ssetGlobalConfig({ lang }) - Nema normalizacije kodova ni lanca zamjene (npr.
en-US→en). Neregistrirani jezici daju zadanu poruku