본문으로 건너뛰기
i18n-error-base
한국어
Esc
↑↓이동↵열기⌘J미리보기
이 페이지에서

i18n-error-base

Valibot의 언어 설정과 연동하여 오류 메시지를 전환하는 Error의 베이스 클래스입니다.

Valibot의 lang과 연동하여 message를 전환하는 Error 베이스 클래스입니다.

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을 참조합니다. 다시 만들지 않고 전환할 수 있습니다. 미등록 언어는 생성자의 기본 메시지를 사용합니다.

특징

  • Valibot의 setGlobalConfig({ lang })과 연동하여 message를 동적으로 해결합니다
  • setErrorMessage로 언어별 메시지를 나중에 등록합니다. meta를 받는 함수도 사용할 수 있습니다
  • 미등록 언어는 생성자의 기본 메시지를 사용합니다
  • 클래스별 static prefix로 앞에 접두사를 추가합니다
  • meta를 보관하고 메시지 생성 함수에 전달합니다
  • instanceof Error, cause, stack을 그대로 사용할 수 있습니다

구성

동작 방식

message는 읽을 때마다 다음 순서로 해결됩니다.

  1. getGlobalConfig()에서 lang을 가져옵니다. 설정되지 않은 경우는 "en"입니다
  2. (클래스 × lang) 등록이 있으면 meta를 전달하여 실행합니다
  3. 없으면 생성자의 기본 메시지를 반환합니다
  4. static prefix가 설정되어 있으면 앞에 연결합니다

다음 단계

설치부터 시작하여, 사용법에서 흐름을 확인하십시오. 자세한 내용은 API 레퍼런스에 정리되어 있습니다.

이 페이지가 도움이 되었나요?