aboutsummaryrefslogtreecommitdiffstats
path: root/packages/excalidraw/errors.ts
diff options
context:
space:
mode:
authorkj_sh6042026-03-15 16:19:35 -0400
committerkj_sh6042026-03-15 16:19:35 -0400
commit6ec259a0e71174651bae95d4628138bf6fd68742 (patch)
tree5e33c6a5ec091ecabfcb257fdc7b6a88ed8754ac /packages/excalidraw/errors.ts
parent16c8578b15c727f22921f8a80a56ee4d4e7f2272 (diff)
refactor: packages/
Diffstat (limited to 'packages/excalidraw/errors.ts')
-rw-r--r--packages/excalidraw/errors.ts75
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";
+ }
+}