From 5f37eef244f5f5026f4d0244fcfeb9c6cae2930b Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Tue, 11 Nov 2025 20:15:11 -0500 Subject: [PATCH] add throwIfAborted and rejectIfAborted utilities to simplify AbortSignal handling --- packages/backend/src/misc/throw-if-aborted.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 packages/backend/src/misc/throw-if-aborted.ts diff --git a/packages/backend/src/misc/throw-if-aborted.ts b/packages/backend/src/misc/throw-if-aborted.ts new file mode 100644 index 0000000000..f4d971bf1b --- /dev/null +++ b/packages/backend/src/misc/throw-if-aborted.ts @@ -0,0 +1,20 @@ +/* + * SPDX-FileCopyrightText: hazelnoot and other Sharkey contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { AbortedError } from '@/misc/errors/AbortedError.js'; + +export function throwIfAborted(signal: AbortSignal): void { + if (signal.aborted) { + throw new AbortedError(signal); + } +} + +export function rejectIfAborted(signal: AbortSignal): Promise { + if (signal.aborted) { + return Promise.reject(new AbortedError(signal)); + } else { + return Promise.resolve(); + } +}