@trpc/server
Version:
13 lines (11 loc) • 416 B
text/typescript
/* oxlint-disable typescript/no-non-null-assertion */
export function createDeferred<TValue = void>() {
let resolve: (value: TValue) => void;
let reject: (error: unknown) => void;
const promise = new Promise<TValue>((res, rej) => {
resolve = res;
reject = rej;
});
return { promise, resolve: resolve!, reject: reject! };
}
export type Deferred<TValue> = ReturnType<typeof createDeferred<TValue>>;