import { inject } from "vue"; import type { ErrorReportItem, ErrorReportRef } from "./ErrorReporter.vue"; import { RequestApiError } from "@imengyu/imengyu-utils"; export function useErrorReporter() { const r = inject("ErrorReporter"); if (!r) throw new Error("ErrorReporter is not provided"); return r; } export function formatError(err: any) { if (err instanceof RequestApiError) return err.toStringDetail(); if (err instanceof Error) return err.message + '\n' + err.stack; return '' + err; } export function logError(info: ErrorReportItem) { (window as any).$error?.(info); } export function logErrorSimple(err: any, message: string) { logError({ type: 'error', detail: formatError(err), message, }); }