From 05414ce0b9fac8b5ef58e37ca3ee71ad86a15e3b Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Tue, 11 Nov 2025 20:15:40 -0500 Subject: [PATCH] return promises for chaining in promise-tracker.ts --- packages/backend/src/misc/promise-tracker.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/backend/src/misc/promise-tracker.ts b/packages/backend/src/misc/promise-tracker.ts index 1194f641b5..d4411df17c 100644 --- a/packages/backend/src/misc/promise-tracker.ts +++ b/packages/backend/src/misc/promise-tracker.ts @@ -8,20 +8,23 @@ import { coreLogger } from '@/boot/coreLogger.js'; const backgroundLogger = coreLogger.createSubLogger('background'); const promiseRefs: Set>> = new Set(); -export function trackTask(task: () => Promise): void { - trackPromise(task()); +export function trackTask(task: () => Promise): Promise { + const promise = task(); + return trackPromise(promise); } /** * This tracks promises that other modules decided not to wait for, * and makes sure they are all settled before fully closing down the server. + * Returns the promise for chaining. */ -export function trackPromise(promise: Promise) { +export function trackPromise(promise: Promise): Promise { const ref = new WeakRef(promise); promiseRefs.add(ref); promise .catch(err => backgroundLogger.error('Unhandled error in tracked background task:', { err })) .finally(() => promiseRefs.delete(ref)); + return promise; } export async function allSettled(): Promise {