i18n-error-base
מחלקת בסיס ל-Error המחליפה הודעות שגיאה בהתאם להגדרת השפה של Valibot.
מחלקת בסיס ל-Error המחליפה את message עם lang של Valibot.
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 מתייחס ל-lang בכל קריאה. מחליפים ללא יצירה מחדש. שפות לא רשומות משתמשות בברירת המחדל של הקונסטרקטור.
תכונות
- פותר את
messageבאופן דינמי עםsetGlobalConfig({ lang })של Valibot - רושמים הודעות לכל שפה לאחר מכן עם
setErrorMessage. גם פונקציה המקבלתmetaמותרת - שפות לא רשומות משתמשות בברירת המחדל של הקונסטרקטור
- מוסיף תחילית דרך
static prefixלכל מחלקה - שומר את
metaומעביר אותו לפונקציות יצירת ההודעה instanceof Error,causeו-stackעובדים כרגיל
מבנה
התקנה
הוספת החבילה ותלות ה-peer.
שימוש
מהגדרת מחלקה עד החלפת שפה, prefix ו-fallback.
ייחוס API
המפרט של I18nErrorBase ושל setErrorMessage.
איך זה עובד
message נפתר בסדר הבא בכל קריאה.
- מקבל את
langמתוךgetGlobalConfig(). אם לא הוגדר,"en" - אם קיים רישום (מחלקה ×
lang), מפעיל אותו עםmeta - אחרת, מחזיר את ברירת המחדל של הקונסטרקטור
- אם הוגדר
static prefix, מוסיף אותו בהתחלה