From 160fd9712ed14d80b665d5a6c19bc4ee806ed5eb Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sun, 27 Jul 2025 22:50:52 +0100 Subject: refactor: Refactor crawlerWorker to use tryCatch --- packages/shared/tryCatch.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 packages/shared/tryCatch.ts (limited to 'packages/shared/tryCatch.ts') diff --git a/packages/shared/tryCatch.ts b/packages/shared/tryCatch.ts new file mode 100644 index 00000000..9b50a121 --- /dev/null +++ b/packages/shared/tryCatch.ts @@ -0,0 +1,24 @@ +// Types for the result object with discriminated union +interface Success { + data: T; + error: null; +} + +interface Failure { + data: null; + error: E; +} + +type Result = Success | Failure; + +// Main wrapper function +export async function tryCatch( + promise: Promise, +): Promise> { + try { + const data = await promise; + return { data, error: null }; + } catch (error) { + return { data: null, error: error as E }; + } +} -- cgit v1.2.3-70-g09d2