All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.build.cjs.aggregate-errors.js.map Maven / Gradle / Ivy

There is a newer version: 8.38.0
Show newest version
{"version":3,"file":"aggregate-errors.js","sources":["../../src/aggregate-errors.ts"],"sourcesContent":["import type { Event, EventHint, Exception, ExtendedError, StackParser } from '@sentry/types';\n\nimport { isInstanceOf } from './is';\nimport { truncate } from './string';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nexport function applyAggregateErrorsToEvent(\n  exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n  parser: StackParser,\n  maxValueLimit: number = 250,\n  key: string,\n  limit: number,\n  event: Event,\n  hint?: EventHint,\n): void {\n  if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n    return;\n  }\n\n  // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n  const originalException: Exception | undefined =\n    event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n  // We only create exception grouping if there is an exception in the event.\n  if (originalException) {\n    event.exception.values = truncateAggregateExceptions(\n      aggregateExceptionsFromError(\n        exceptionFromErrorImplementation,\n        parser,\n        limit,\n        hint.originalException as ExtendedError,\n        key,\n        event.exception.values,\n        originalException,\n        0,\n      ),\n      maxValueLimit,\n    );\n  }\n}\n\nfunction aggregateExceptionsFromError(\n  exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n  parser: StackParser,\n  limit: number,\n  error: ExtendedError,\n  key: string,\n  prevExceptions: Exception[],\n  exception: Exception,\n  exceptionId: number,\n): Exception[] {\n  if (prevExceptions.length >= limit + 1) {\n    return prevExceptions;\n  }\n\n  let newExceptions = [...prevExceptions];\n\n  // Recursively call this function in order to walk down a chain of errors\n  if (isInstanceOf(error[key], Error)) {\n    applyExceptionGroupFieldsForParentException(exception, exceptionId);\n    const newException = exceptionFromErrorImplementation(parser, error[key]);\n    const newExceptionId = newExceptions.length;\n    applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n    newExceptions = aggregateExceptionsFromError(\n      exceptionFromErrorImplementation,\n      parser,\n      limit,\n      error[key],\n      key,\n      [newException, ...newExceptions],\n      newException,\n      newExceptionId,\n    );\n  }\n\n  // This will create exception grouping for AggregateErrors\n  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n  if (Array.isArray(error.errors)) {\n    error.errors.forEach((childError, i) => {\n      if (isInstanceOf(childError, Error)) {\n        applyExceptionGroupFieldsForParentException(exception, exceptionId);\n        const newException = exceptionFromErrorImplementation(parser, childError);\n        const newExceptionId = newExceptions.length;\n        applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n        newExceptions = aggregateExceptionsFromError(\n          exceptionFromErrorImplementation,\n          parser,\n          limit,\n          childError,\n          key,\n          [newException, ...newExceptions],\n          newException,\n          newExceptionId,\n        );\n      }\n    });\n  }\n\n  return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception: Exception, exceptionId: number): void {\n  // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n  exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n  exception.mechanism = {\n    ...exception.mechanism,\n    ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n    exception_id: exceptionId,\n  };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n  exception: Exception,\n  source: string,\n  exceptionId: number,\n  parentId: number | undefined,\n): void {\n  // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n  exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n  exception.mechanism = {\n    ...exception.mechanism,\n    type: 'chained',\n    source,\n    exception_id: exceptionId,\n    parent_id: parentId,\n  };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions: Exception[], maxValueLength: number): Exception[] {\n  return exceptions.map(exception => {\n    if (exception.value) {\n      exception.value = truncate(exception.value, maxValueLength);\n    }\n    return exception;\n  });\n}\n"],"names":["isInstanceOf","truncate"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy