/** * Polyfill for Promise.withResolvers (ES2024) * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers */ type PromiseWithResolvers = { promise: Promise; resolve: (value: T | PromiseLike) => void; reject: (reason?: unknown) => void; }; // We're patching here // eslint-disable-next-line @typescript-eslint/no-explicit-any const GlobalPromise = globalThis.Promise as any; if (typeof GlobalPromise.withResolvers !== 'function') { GlobalPromise.withResolvers = (): PromiseWithResolvers => { let resolve!: (value: T | PromiseLike) => void; let reject!: (reason?: unknown) => void; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); return { promise, resolve, reject }; }; } export {};