export type UnwrappedPromise = { resolve: (value: T | PromiseLike) => void; reject: (reason?: unknown) => void; promise: Promise; }; export const createUnwrappedPromise = (): UnwrappedPromise => { let resolve: (value: T | PromiseLike) => void = () => {}; let reject: (reason?: unknown) => void = () => {}; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); return { resolve, reject, promise }; };