/** * Expected error that shouldn't print a stack trace */ export class YargsError extends Error {} export type Result = {err: null; result: T} | {err: Error}; export async function wrapError(promise: Promise): Promise> { try { return {err: null, result: await promise}; } catch (err) { return {err: err as Error}; } } export function wrapFnError(fn: () => T): Result { try { return {err: null, result: fn()}; } catch (err) { return {err: err as Error}; } }