|
@@ -79,7 +79,7 @@ export function formatString(str: string, vars: Record<string, string>): string
|
|
|
return Object.keys(vars).filter(s => Object.prototype.hasOwnProperty.call(vars, s)).reduce((s, cur) => s.replace(`{${cur}}`, vars[cur]), str);
|
|
|
}
|
|
|
|
|
|
-export async function tryDo<TResult>(promise: Promise<TResult>) : Promise<{ok: boolean, result?: TResult, error?: unknown}> {
|
|
|
+export async function tryDo<TResult>(promise: Promise<TResult>) : Promise<Option<{result: TResult}, {error: unknown}>> {
|
|
|
try {
|
|
|
return {ok: true, result: await promise};
|
|
|
} catch(err) {
|
|
@@ -173,4 +173,8 @@ export function parseDuration(s: string): number | undefined {
|
|
|
if (buffer.length != 0)
|
|
|
return undefined;
|
|
|
return result;
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+export type Ok<T> = T & { ok: true };
|
|
|
+export type Error<T> = T & { ok: false };
|
|
|
+export type Option<T, U = unknown> = Ok<T> | Error<U>;
|