UNPKG

apphouse

Version:

Component library for React that uses observable state management and theme-able components.

29 lines (24 loc) 764 B
type ErrorWithMessage = { message: string; }; export function isErrorWithMessage(error: unknown): error is ErrorWithMessage { return ( typeof error === 'object' && error !== null && 'message' in error && typeof (error as Record<string, unknown>).message === 'string' ); } export 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)); } } export function getErrorMessage(error: unknown) { return toErrorWithMessage(error).message; }