@itishermann/appwrite-exceptions-translator
Version:
65 lines (58 loc) • 1.95 kB
TypeScript
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 };