{"version":3,"file":"errorhandler.js","sources":["../../src/errorhandler.ts"],"sourcesContent":["import { captureException } from '@sentry/core';\nimport type { ViewModel, Vue, VueOptions } from './types';\nimport { formatComponentName, generateComponentTrace } from './vendor/components';\n\ntype UnknownFunc = (...args: unknown[]) => void;\n\nexport const attachErrorHandler = (app: Vue, options?: Partial): void => {\n const { errorHandler: originalErrorHandler } = app.config;\n\n app.config.errorHandler = (error: Error, vm: ViewModel, lifecycleHook: string): void => {\n const componentName = formatComponentName(vm, false);\n const trace = vm ? generateComponentTrace(vm) : '';\n const metadata: Record = {\n componentName,\n lifecycleHook,\n trace,\n };\n\n // TODO(v11): guard via sendDefaultPii?\n if (options?.attachProps !== false && vm) {\n // Vue2 - $options.propsData\n // Vue3 - $props\n if (vm.$options?.propsData) {\n metadata.propsData = vm.$options.propsData;\n } else if (vm.$props) {\n metadata.propsData = vm.$props;\n }\n }\n\n // Capture exception in the next event loop, to make sure that all breadcrumbs are recorded in time.\n setTimeout(() => {\n captureException(error, {\n captureContext: { contexts: { vue: metadata } },\n mechanism: { handled: !!originalErrorHandler, type: 'auto.function.vue.error_handler' },\n });\n });\n\n // Check if the current `app.config.errorHandler` is explicitly set by the user before calling it.\n if (typeof originalErrorHandler === 'function' && app.config.errorHandler) {\n (originalErrorHandler as UnknownFunc).call(app, error, vm, lifecycleHook);\n } else {\n throw error;\n }\n };\n};\n"],"names":["formatComponentName","generateComponentTrace","captureException"],"mappings":";;;;;AAMO,MAAM,kBAAA,GAAqB,CAAC,GAAA,EAAU,OAAA,KAAwC;AACnF,EAAA,MAAM,EAAE,YAAA,EAAc,oBAAA,EAAqB,GAAI,GAAA,CAAI,MAAA;AAEnD,EAAA,GAAA,CAAI,MAAA,CAAO,YAAA,GAAe,CAAC,KAAA,EAAc,IAAe,aAAA,KAAgC;AACtF,IAAA,MAAM,aAAA,GAAgBA,8BAAA,CAAoB,EAAA,EAAI,KAAK,CAAA;AACnD,IAAA,MAAM,KAAA,GAAQ,EAAA,GAAKC,iCAAA,CAAuB,EAAE,CAAA,GAAI,EAAA;AAChD,IAAA,MAAM,QAAA,GAAoC;AAAA,MACxC,aAAA;AAAA,MACA,aAAA;AAAA,MACA;AAAA,KACF;AAGA,IAAA,IAAI,OAAA,EAAS,WAAA,KAAgB,KAAA,IAAS,EAAA,EAAI;AAGxC,MAAA,IAAI,EAAA,CAAG,UAAU,SAAA,EAAW;AAC1B,QAAA,QAAA,CAAS,SAAA,GAAY,GAAG,QAAA,CAAS,SAAA;AAAA,MACnC,CAAA,MAAA,IAAW,GAAG,MAAA,EAAQ;AACpB,QAAA,QAAA,CAAS,YAAY,EAAA,CAAG,MAAA;AAAA,MAC1B;AAAA,IACF;AAGA,IAAA,UAAA,CAAW,MAAM;AACf,MAAAC,qBAAA,CAAiB,KAAA,EAAO;AAAA,QACtB,gBAAgB,EAAE,QAAA,EAAU,EAAE,GAAA,EAAK,UAAS,EAAE;AAAA,QAC9C,WAAW,EAAE,OAAA,EAAS,CAAC,CAAC,oBAAA,EAAsB,MAAM,iCAAA;AAAkC,OACvF,CAAA;AAAA,IACH,CAAC,CAAA;AAGD,IAAA,IAAI,OAAO,oBAAA,KAAyB,UAAA,IAAc,GAAA,CAAI,OAAO,YAAA,EAAc;AACzE,MAAC,oBAAA,CAAqC,IAAA,CAAK,GAAA,EAAK,KAAA,EAAO,IAAI,aAAa,CAAA;AAAA,IAC1E,CAAA,MAAO;AACL,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF,CAAA;AACF;;;;"}