mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2025-12-24 20:26:24 +00:00
Rename files
This commit is contained in:
27
ts/util/explodePromise.std.ts
Normal file
27
ts/util/explodePromise.std.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
// Copyright 2021 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
export type ExplodePromiseResultType<T> = Readonly<{
|
||||
promise: Promise<T>;
|
||||
resolve: (value: T) => void;
|
||||
reject: (error: unknown) => void;
|
||||
}>;
|
||||
|
||||
export function explodePromise<T>(): ExplodePromiseResultType<T> {
|
||||
let resolve: (value: T) => void;
|
||||
let reject: (error: unknown) => void;
|
||||
|
||||
const promise = new Promise<T>((innerResolve, innerReject) => {
|
||||
resolve = innerResolve;
|
||||
reject = innerReject;
|
||||
});
|
||||
|
||||
return {
|
||||
promise,
|
||||
// Typescript thinks that resolve and reject can be undefined here.
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
resolve: resolve!,
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
reject: reject!,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user