Справочник 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не задан.