// Copyright (c) Mysten Labs, Inc. // SPDX-License-Identifier: Apache-2.0 export interface PromiseWithResolvers { promise: Promise; resolve: (value: T) => void; reject: (error: unknown) => void; } export function promiseWithResolvers(): PromiseWithResolvers { let resolver!: (value: T) => void; let rejecter!: (error: unknown) => void; const promise = new Promise((resolve, reject) => { resolver = resolve; rejecter = reject; }); return { promise, resolve: resolver, reject: rejecter, }; }