aboutsummaryrefslogtreecommitdiff
path: root/src/utils/error.ts
blob: 297edd98ff8b0eb3c22103eb93cbc38e1d31bc3c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import _ from 'lodash';

export { getErrorMessageIfThrows };

function getErrorMessageIfThrows(cb: () => unknown) {
  try {
    cb();
    return undefined;
  }
  catch (err) {
    if (_.isString(err)) {
      return err;
    }

    if (_.isError(err)) {
      return err.message;
    }

    if (_.isObject(err) && _.has(err, 'message')) {
      return (err as { message: string }).message;
    }

    return 'An error as occurred.';
  }
}