UNPKG

@itishermann/appwrite-exceptions-translator

Version:
65 lines (58 loc) 1.95 kB
interface IAppwriteException { /** * The HTTP status code of the error */ code?: number; /** * The error message */ message: string; /** * The Appwrite error type (e.g., 'argument_invalid') */ type?: string; } interface ITranslator { translate(exception: IAppwriteException, language?: string): string; setLanguage(language: string): void; getAvailableLanguages(): string[]; } interface ITranslationProvider { /** * Get a translation for a given error type or code * @param errorIdentifier Error type or error code * @param language Target language code */ getTranslation(errorIdentifier: string | number, language: string): string | null; /** * Get all available language codes */ getAvailableLanguages(): string[]; /** * Get the default language code */ getDefaultLanguage(): string; } declare class AppwriteExceptionTranslator implements ITranslator { private translationProvider; private currentLanguage; constructor(translationProvider: ITranslationProvider); /** * Translate an exception to a user-friendly message */ translate(exception: IAppwriteException, language?: string): string; /** * Check if an error is likely an Appwrite exception */ private isAppwriteException; setLanguage(language: string): void; getAvailableLanguages(): string[]; } declare class LocalTranslationProvider implements ITranslationProvider { private defaultLanguage; getTranslation(errorIdentifier: string | number, language: string): string | null; getAvailableLanguages(): string[]; getDefaultLanguage(): string; } declare const createDefaultTranslator: () => AppwriteExceptionTranslator; export { AppwriteExceptionTranslator, type IAppwriteException, type ITranslationProvider, type ITranslator, LocalTranslationProvider, createDefaultTranslator };