UNPKG

@typed-firestore/server

Version:

Elegant, typed abstractions for Firestore in server environments

34 lines (28 loc) 855 B
/** * Copied from: * https://kentcdodds.com/blog/get-a-catch-block-error-message-with-typescript */ export function getErrorMessage(error: unknown): string { return toErrorWithMessage(error).message; } type ErrorWithMessage = { message: string; }; function isErrorWithMessage(error: unknown): error is ErrorWithMessage { return ( typeof error === "object" && error !== null && "message" in error && typeof (error as ErrorWithMessage).message === "string" ); } 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)); } }