Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into fix/AG-21901
- Loading branch information
Showing
11 changed files
with
840 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
type ErrorWithMessage = { | ||
message: string | ||
}; | ||
|
||
/** | ||
* Checks if error has message. | ||
* | ||
* @param error Error object. | ||
* @returns If param is error. | ||
*/ | ||
function isErrorWithMessage(error: unknown): error is ErrorWithMessage { | ||
return ( | ||
typeof error === 'object' | ||
&& error !== null | ||
&& 'message' in error | ||
&& typeof (error as Record<string, unknown>).message === 'string' | ||
); | ||
} | ||
|
||
/** | ||
* Converts error to the error with message. | ||
* | ||
* @param maybeError Possible error. | ||
* @returns Error with message. | ||
*/ | ||
function toErrorWithMessage(maybeError: unknown): ErrorWithMessage { | ||
if (isErrorWithMessage(maybeError)) { | ||
return maybeError; | ||
} | ||
|
||
try { | ||
return new Error(JSON.stringify(maybeError)); | ||
} catch { | ||
// fallback in case there's an error stringifying the maybeError | ||
// like with circular references for example. | ||
return new Error(String(maybeError)); | ||
} | ||
} | ||
|
||
/** | ||
* Converts error object to error with message. This method might be helpful to handle thrown errors. | ||
* | ||
* @param error Error object. | ||
* | ||
* @returns Message of the error. | ||
*/ | ||
export function getErrorMessage(error: unknown): string { | ||
return toErrorWithMessage(error).message; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.