// Returns Promise.withResolvers or polyfill if unavailable export function createPromiseWithResolvers(): { promise: Promise resolve: (value: T | PromiseLike) => void reject: (reason?: any) => void } { if (typeof Promise.withResolvers === 'function') { return Promise.withResolvers() } let resolve!: (value: T | PromiseLike) => void let reject!: (reason?: any) => void const promise = new Promise((res, rej) => { resolve = res reject = rej }) return {promise, resolve, reject} }