siyuan-jsdraw-plugin/src/errors.ts
MassiveBox 163a1513e8
All checks were successful
Build on Push and create Release on Tag / build (push) Successful in 56s
Improve editor localization, localization reporting, i18n separation
2025-08-06 17:29:42 +02:00

80 lines
No EOL
1.7 KiB
TypeScript

import {showMessage} from "siyuan";
export class InternationalizedError extends Error {
readonly key: string;
constructor(key: string) {
super(key);
this.key = key;
}
}
export class ErrorReporter {
static i18n: any;
constructor(i18n: any) {
ErrorReporter.i18n = i18n;
}
static error(err: Error, timeout?: number) {
console.error(err);
let errorTxt = err.message;
if(err instanceof InternationalizedError) {
errorTxt = ErrorReporter.i18n.errors[err.key];
}
if(!timeout) {
timeout = 0;
}
showMessage(errorTxt, timeout, 'error');
}
}
export class SyncIDNotFoundError extends InternationalizedError {
constructor() {
super('syncIDNotFound');
}
}
export class UnchangedProtyleError extends InternationalizedError {
constructor() {
super('unchangedProtyle');
}
}
export class MultipleSyncIDsError extends InternationalizedError {
constructor() {
super('multipleSyncIDs');
}
}
export class GenericSaveError extends InternationalizedError {
constructor() {
super('saveGeneric');
}
}
export class NotAWhiteboardError extends InternationalizedError {
constructor() {
super('notAWhiteboard');
}
}
export class InvalidBackgroundColorError extends InternationalizedError {
constructor() {
super('invalidBackgroundColor');
}
}
export class NoFileIDError extends InternationalizedError {
constructor() {
super('noFileID');
}
}
export class MustSelectError extends InternationalizedError {
constructor() {
super('mustSelect');
}
}