Skip to content

Commit 68a3cbe

Browse files
committed
Fix isErrorLike & asErrorLike for null arguments
Annoyingly, typeof null === 'object', even though you can't dereference any properties.
1 parent 90332de commit 68a3cbe

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/errors.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export type ErrorLike = Partial<Error> & {
1717
* actually an error-like
1818
*/
1919
export function isErrorLike(error: any): error is ErrorLike {
20-
return typeof error === 'object' && (
20+
return error && typeof error === 'object' && (
2121
error instanceof Error ||
2222
error.message ||
2323
error.code ||
@@ -29,9 +29,12 @@ export function isErrorLike(error: any): error is ErrorLike {
2929
* A convenience method to make something error-ish into an actual Error instance.
3030
*/
3131
export function asErrorLike(error: any): ErrorLike {
32-
if (isErrorLike(error)) return error as ErrorLike;
33-
else {
34-
return new Error(error.message || error?.toString() || '[unknown error]');
32+
if (isErrorLike(error)) {
33+
return error as ErrorLike;
34+
} else if (error) {
35+
return new Error(error.message || error.toString() || '[Unknown error]');
36+
} else {
37+
return new Error('[Undefined error]');
3538
}
3639
}
3740

0 commit comments

Comments
 (0)