| 12345678910111213141516171819202122232425262728 |
- import { inject } from "vue";
- import type { ErrorReportItem, ErrorReportRef } from "./ErrorReporter.vue";
- import { RequestApiError } from "@imengyu/imengyu-utils";
- export function useErrorReporter() {
- const r = inject<ErrorReportRef>("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,
- });
- }
|