MCPcopy Index your code
hub / github.com/Effect-TS/effect / makePrettyError

Function makePrettyError

packages/effect/src/internal/cause.ts:899–934  ·  view source on GitHub ↗
(originalError: unknown)

Source from the content-addressed store, hash-verified

897
898/** @internal */
899export const makePrettyError = (originalError: unknown): Cause.PrettyError => {
900 const originalErrorIsObject = typeof originalError === "object" && originalError !== null
901 const prevLimit = Error.stackTraceLimit
902 Error.stackTraceLimit = 1
903 const error = new Error(
904 prettyErrorMessage(originalError),
905 originalErrorIsObject && "cause" in originalError && typeof originalError.cause !== "undefined"
906 ? { cause: makePrettyError(originalError.cause) }
907 : undefined
908 ) as Types.Mutable<Cause.PrettyError>
909 Error.stackTraceLimit = prevLimit
910 if (error.message === "") {
911 error.message = "An error has occurred"
912 }
913 Error.stackTraceLimit = prevLimit
914 error.name = originalError instanceof Error ? originalError.name : "Error"
915 if (originalErrorIsObject) {
916 if (spanSymbol in originalError) {
917 error.span = originalError[spanSymbol] as Span
918 }
919 Object.keys(originalError).forEach((key) => {
920 if (!(key in error)) {
921 // @ts-expect-error
922 error[key] = originalError[key]
923 }
924 })
925 }
926 error.stack = prettyErrorStack(
927 `${error.name}: ${error.message}`,
928 originalError instanceof Error && originalError.stack
929 ? originalError.stack
930 : "",
931 error.span
932 )
933 return error
934}
935
936/**
937 * A utility function for generating human-readable error messages from a generic error of type `unknown`.

Callers 1

cause.tsFile · 0.85

Calls 3

prettyErrorMessageFunction · 0.85
prettyErrorStackFunction · 0.85
keysMethod · 0.80

Tested by

no test coverage detected