aboutsummaryrefslogtreecommitdiff
path: root/src/utils/defaults.ts
blob: c988af58ccee2615dc64ba2fc8882a1f44521ebb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
export { withDefaultOnError, withDefaultOnErrorAsync };

function withDefaultOnError<A, B>(cb: () => A, defaultValue: B): A | B {
  try {
    return cb();
  }
  catch (_) {
    return defaultValue;
  }
}

async function withDefaultOnErrorAsync<A, B>(cb: () => A, defaultValue: B): Promise<Awaited<A> | B> {
  try {
    return await cb();
  }
  catch (_) {
    return defaultValue;
  }
}