Skip to content

Справочник API ​

Типы ​

ts
interface CapturedError {
  error: unknown
  message: string
  stack?: string
  componentName?: string
  lifecycleHook?: string
  source: 'render' | 'async' | 'event' | 'unhandledrejection' | 'manual'
  timestamp: number
}

interface ErrorReporter {
  report(error: CapturedError, context?: Record<string, unknown>): void | Promise<void>
  destroy?(): void
}

destroy?() — опциональная очистка для адаптера, который держит собственный постоянный слушатель/таймер — ничто в пакете не вызывает её автоматически, так что вызывайте её сами при уничтожении того, что владеет репортером. Реализует её только createHttpReporter (снимает слушатель pagehide и принудительно сбрасывает ожидающий батч); у остальных адаптеров нет постоянного состояния для очистки, поэтому они её опускают.

Заметки по source:

  • 'render' — синхронный сбой во время рендера компонента или (синхронного) setup().
  • 'async' — async setup(), отклонившийся после await. Vue сообщает об обоих случаях идентичной строкой "setup function", поэтому пакет дополнительно проверяет, является ли собственный setup компонента AsyncFunction, чтобы различить их.
  • 'event' — скомпилированный Vue обработчик v-on (нативное DOM-событие или emit компонента), который выбрасывает ошибку. Обратите внимание: Vue действительно пропускает их через onErrorCaptured — то, что он по-настоящему не видит, описано в разделе Обработка ошибок.
  • 'unhandledrejection' / и не-Vue 'event' — производятся только useGlobalErrorCapture().
  • 'manual' — значение по умолчанию для captureError(), если source не задан.