source dump of claude code
1/**
2 * Polyfill for Promise.withResolvers() (ES2024, Node 22+).
3 * package.json declares "engines": { "node": ">=18.0.0" } so we can't use the native one.
4 */
5export function withResolvers<T>(): PromiseWithResolvers<T> {
6 let resolve!: (value: T | PromiseLike<T>) => void
7 let reject!: (reason?: unknown) => void
8 const promise = new Promise<T>((res, rej) => {
9 resolve = res
10 reject = rej
11 })
12 return { promise, resolve, reject }
13}