mono/packages/kbot/ref/utils/withResolvers.ts
2026-04-01 01:05:48 +02:00

14 lines
444 B
TypeScript

/**
* Polyfill for Promise.withResolvers() (ES2024, Node 22+).
* package.json declares "engines": { "node": ">=18.0.0" } so we can't use the native one.
*/
export function withResolvers<T>(): PromiseWithResolvers<T> {
let resolve!: (value: T | PromiseLike<T>) => void
let reject!: (reason?: unknown) => void
const promise = new Promise<T>((res, rej) => {
resolve = res
reject = rej
})
return { promise, resolve, reject }
}