MCPcopy Create free account
hub / github.com/Effect-TS/effect / causePrettyError

Function causePrettyError

packages/effect/src/internal/effect.ts:350–386  ·  view source on GitHub ↗
(
  original: Record<string, unknown> | Error,
  annotations?: ReadonlyMap<string, unknown>,
  options?: {
    readonly includeCauseInStack?: boolean | undefined
  }
)

Source from the content-addressed store, hash-verified

348
349/** @internal */
350export const causePrettyError = (
351 original: Record<string, unknown> | Error,
352 annotations?: ReadonlyMap<string, unknown>,
353 options?: {
354 readonly includeCauseInStack?: boolean | undefined
355 }
356): Error => {
357 const kind = typeof original
358 let error: Error
359 if (original && kind === "object") {
360 error = new globalThis.Error(causePrettyMessage(original), {
361 cause: original.cause ? causePrettyError(original.cause as any) : undefined
362 })
363 if (typeof original.name === "string") {
364 error.name = original.name
365 }
366 if (typeof original.stack === "string") {
367 error.stack = cleanErrorStack(original.stack, error, annotations)
368 } else {
369 const stack = `${error.name}: ${error.message}`
370 error.stack = annotations ? addStackAnnotations(stack, annotations) : stack
371 }
372 if (options?.includeCauseInStack) {
373 error.stack = renderPrettyError(error)!
374 }
375 for (const key of Object.keys(original)) {
376 if (!(key in error)) {
377 ;(error as any)[key] = (original as any)[key]
378 }
379 }
380 } else {
381 error = new globalThis.Error(
382 !original ? `Unknown error: ${original}` : kind === "string" ? original as any : formatJson(original)
383 )
384 }
385 return error
386}
387
388const causePrettyMessage = (u: Record<string, unknown> | Error): string => {
389 if (typeof u.message === "string") {

Callers 1

causePrettyErrorsFunction · 0.85

Calls 5

formatJsonFunction · 0.90
causePrettyMessageFunction · 0.85
cleanErrorStackFunction · 0.85
addStackAnnotationsFunction · 0.85
renderPrettyErrorFunction · 0.85

Tested by

no test coverage detected