diff --git a/frontend/sync-client/src/utils/create-promise.ts b/frontend/sync-client/src/utils/create-promise.ts index 959183f1..f644dfbd 100644 --- a/frontend/sync-client/src/utils/create-promise.ts +++ b/frontend/sync-client/src/utils/create-promise.ts @@ -1,17 +1,23 @@ +type ResolveFunction = undefined extends T + ? (value?: T) => unknown + : (value: T) => unknown; + /** * A type-safe utility function to create a Promise with resolve and reject functions. * @returns A tuple containing a Promise, a resolve function, and a reject function. */ -export function createPromise(): [ +export function createPromise(): [ Promise, - (value: T) => unknown, + ResolveFunction, (error: unknown) => unknown ] { - let resolve: undefined | ((resolved: T) => unknown) = undefined; + let resolve: undefined | ResolveFunction = undefined; let reject: undefined | ((error: unknown) => unknown) = undefined; const creationPromise = new Promise( - (resolve_, reject_) => ((resolve = resolve_), (reject = reject_)) + (resolve_, reject_) => ( + (resolve = resolve_ as ResolveFunction), (reject = reject_) + ) ); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion