דלג לתוכן
i18n-error-base
עברית
Esc
↑↓ניווט↵פתיחה⌘Jתצוגה מקדימה
בעמוד זה

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 עובדים כרגיל

מבנה

איך זה עובד

message נפתר בסדר הבא בכל קריאה.

  1. מקבל את lang מתוך getGlobalConfig(). אם לא הוגדר, "en"
  2. אם קיים רישום (מחלקה × lang), מפעיל אותו עם meta
  3. אחרת, מחזיר את ברירת המחדל של הקונסטרקטור
  4. אם הוגדר static prefix, מוסיף אותו בהתחלה

הצעדים הבאים

התחילו מהתקנה, ובדקו את התהליך בשימוש. פרטים בייחוס API.

האם העמוד הזה היה מועיל?