diff options
Diffstat (limited to 'packages/excalidraw/errors.ts')
| -rw-r--r-- | packages/excalidraw/errors.ts | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/packages/excalidraw/errors.ts b/packages/excalidraw/errors.ts new file mode 100644 index 0000000..d6091b0 --- /dev/null +++ b/packages/excalidraw/errors.ts @@ -0,0 +1,75 @@ +type CANVAS_ERROR_NAMES = "CANVAS_ERROR" | "CANVAS_POSSIBLY_TOO_BIG"; + +export class CanvasError extends Error { + constructor( + message: string = "Couldn't export canvas.", + name: CANVAS_ERROR_NAMES = "CANVAS_ERROR", + ) { + super(); + this.name = name; + this.message = message; + } +} + +export class AbortError extends DOMException { + constructor(message: string = "Request Aborted") { + super(message, "AbortError"); + } +} + +type ImageSceneDataErrorCode = + | "IMAGE_NOT_CONTAINS_SCENE_DATA" + | "IMAGE_SCENE_DATA_ERROR"; + +export class ImageSceneDataError extends Error { + public code; + constructor( + message = "Image Scene Data Error", + code: ImageSceneDataErrorCode = "IMAGE_SCENE_DATA_ERROR", + ) { + super(message); + this.name = "EncodingError"; + this.code = code; + } +} + +export class InvalidFractionalIndexError extends Error { + public code = "ELEMENT_HAS_INVALID_INDEX" as const; +} + +type WorkerErrorCodes = "WORKER_URL_NOT_DEFINED" | "WORKER_IN_THE_MAIN_CHUNK"; + +export class WorkerUrlNotDefinedError extends Error { + public code; + constructor( + message = "Worker URL is not defined!", + code: WorkerErrorCodes = "WORKER_URL_NOT_DEFINED", + ) { + super(message); + this.name = "WorkerUrlNotDefinedError"; + this.code = code; + } +} + +export class WorkerInTheMainChunkError extends Error { + public code; + constructor( + message = "Worker has to be in a separate chunk!", + code: WorkerErrorCodes = "WORKER_IN_THE_MAIN_CHUNK", + ) { + super(message); + this.name = "WorkerInTheMainChunkError"; + this.code = code; + } +} + +/** + * Use this for generic, handled errors, so you can check against them + * and rethrow if needed + */ +export class ExcalidrawError extends Error { + constructor(message: string) { + super(message); + this.name = "ExcalidrawError"; + } +} |
