{"version":3,"file":"addVueError.mjs","names":[],"sources":["../../../src/domain/error/addVueError.ts"],"sourcesContent":["import type { ComponentInternalInstance, ComponentPublicInstance } from 'vue'\nimport { clocksNow } from '@datadog/js-core/time'\nimport { callMonitored } from '@datadog/js-core/monitor'\nimport { createHandlingStack } from '@datadog/browser-core'\nimport { onRumStart } from '../vuePlugin'\n\n/**\n * Add a Vue error to the RUM session.\n *\n * @category Error\n * @example\n * ```ts\n * import { createApp } from 'vue'\n * import { addVueError } from '@datadog/browser-rum-vue'\n *\n * const app = createApp(App)\n * // Report all Vue errors to Datadog automatically\n * app.config.errorHandler = addVueError\n * ```\n */\nexport function addVueError(error: unknown, instance: ComponentPublicInstance | null, info: string) {\n  const handlingStack = createHandlingStack('vue error')\n  const startClocks = clocksNow()\n  onRumStart((addError) => {\n    callMonitored(() => {\n      addError({\n        error,\n        handlingStack,\n        componentStack: buildComponentStack(instance, info),\n        startClocks,\n        context: {\n          ...(typeof error === 'object' && error !== null ? (error as { dd_context?: object }).dd_context : undefined),\n          framework: 'vue',\n        },\n      })\n    })\n  })\n}\n\nfunction buildComponentStack(instance: ComponentPublicInstance | null, info: string): string | undefined {\n  const parts: string[] = []\n\n  if (info) {\n    parts.push(info)\n  }\n\n  let current: ComponentInternalInstance | null = instance?.$ ?? null\n  while (current) {\n    const name =\n      current.type &&\n      ('name' in current.type\n        ? current.type.name\n        : '__name' in current.type\n          ? (current.type as { __name?: string }).__name\n          : undefined)\n    if (name) {\n      parts.push(`at <${name}>`)\n    }\n    current = current.parent\n  }\n\n  return parts.length > 0 ? parts.join('\\n') : undefined\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,SAAgB,YAAY,OAAgB,UAA0C,MAAc;CAClG,MAAM,gBAAgB,oBAAoB,WAAW;CACrD,MAAM,cAAc,UAAU;CAC9B,YAAY,aAAa;EACvB,oBAAoB;GAClB,SAAS;IACP;IACA;IACA,gBAAgB,oBAAoB,UAAU,IAAI;IAClD;IACA,SAAS;KACP,GAAI,OAAO,UAAU,YAAY,UAAU,OAAQ,MAAkC,aAAa,KAAA;KAClG,WAAW;IACb;GACF,CAAC;EACH,CAAC;CACH,CAAC;AACH;AAEA,SAAS,oBAAoB,UAA0C,MAAkC;CACvG,MAAM,QAAkB,CAAC;CAEzB,IAAI,MACF,MAAM,KAAK,IAAI;CAGjB,IAAI,UAA4C,UAAU,KAAK;CAC/D,OAAO,SAAS;EACd,MAAM,OACJ,QAAQ,SACP,UAAU,QAAQ,OACf,QAAQ,KAAK,OACb,YAAY,QAAQ,OACjB,QAAQ,KAA6B,SACtC,KAAA;EACR,IAAI,MACF,MAAM,KAAK,OAAO,KAAK,EAAE;EAE3B,UAAU,QAAQ;CACpB;CAEA,OAAO,MAAM,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,KAAA;AAC/C"}