From 715c961fff8ec72226a1abe2945a95132ee04fb2 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 27 Dec 2024 12:14:24 -0600 Subject: [PATCH] Polyfill Promise.withResolvers Fixes: https://gitlab.com/soapbox-pub/soapbox/-/issues/1802 --- src/main.tsx | 2 ++ src/polyfill/Promise.withResolvers.ts | 14 ++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 src/polyfill/Promise.withResolvers.ts diff --git a/src/main.tsx b/src/main.tsx index 9204d45bd..61ef3b99a 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,3 +1,5 @@ +import 'soapbox/polyfill/Promise.withResolvers.ts'; + import { enableMapSet } from 'immer'; import { createRoot } from 'react-dom/client'; diff --git a/src/polyfill/Promise.withResolvers.ts b/src/polyfill/Promise.withResolvers.ts new file mode 100644 index 000000000..918bf4504 --- /dev/null +++ b/src/polyfill/Promise.withResolvers.ts @@ -0,0 +1,14 @@ +if (!Promise.withResolvers) { + Promise.withResolvers = function withResolvers(): PromiseWithResolvers { + + let resolve: (value: T | PromiseLike) => void; + let reject: (reason?: any) => void; + + const promise = new this((_resolve, _reject) => { + resolve = _resolve; + reject = _reject; + }); + + return { resolve: resolve!, reject: reject!, promise }; + }; +} \ No newline at end of file