Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | 9x 20x 9x 13x 6x 7x 4x 3x 1x 2x 9x 3x 3x 9x 3x 3x 3x | import { isError } from "./typeGuards";
/**
* Converts any error value to an Error object
*
* @param err - The error value to convert
* @returns An Error object
*/
export function toErrorObject(err: unknown): Error {
if (isError(err)) {
return err;
}
if (err instanceof Object) {
// If the error is an object with a message property, use that
if ("message" in err && typeof err.message === "string") {
return new Error(err.message);
}
}
// For strings, numbers, etc.
return new Error(String(err));
}
/**
* Formats an error for consistent logging
*
* @param err - The error to format
* @param prefix - Optional prefix for the error message
* @returns A formatted error message
*/
export function formatError(err: unknown, prefix?: string): string {
const error = toErrorObject(err);
return prefix ? `${prefix}: ${error.message}` : error.message;
}
/**
* Type guard to check if an error has a message property
*/
export const isErrorWithMessage = (
error: unknown
): error is { message: string } => {
return (
typeof error === "object" &&
error !== null &&
"message" in error &&
typeof (error as Record<string, unknown>).message === "string"
);
};
/**
* Format an error message from various error types
*/
export const formatErrorMessage = (error: unknown): string => {
if (isErrorWithMessage(error)) {
return error.message;
}
if (error === null || error === undefined) {
return "An unknown error occurred";
}
if (typeof error === "object" && !("message" in error)) {
return "An unknown error occurred";
}
return String(error);
};
/**
* Display an error message in the console
*/
export const displayErrorMessage = (error: unknown): void => {
const message = formatErrorMessage(error);
console.error("Error:", message);
};
/**
* Handle an API error with operation context
*/
export const handleApiError = (error: unknown, operation: string): string => {
const message = formatErrorMessage(error);
console.error(`API Error (${operation}):`, message);
return message;
};
|