From c10eab506a97738c93d5f96cb2e0ab9ad3da2c97 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Thu, 25 Apr 2024 00:57:09 +0900 Subject: [PATCH] Update error handling in main.ts and globalApi.ts --- src/main.ts | 17 +++++++++++++++++ src/ts/storage/globalApi.ts | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/main.ts b/src/main.ts index fddde13d..f8f0c128 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,6 +5,23 @@ import { loadData } from "./ts/storage/globalApi"; import { initHotkey } from "./ts/hotkey"; import { polyfill } from "./ts/polyfill"; +const errorHandler = (event: ErrorEvent) => { + console.error(event.error) + alert(event.error) +} +const rejectHandler = (event: PromiseRejectionEvent) => { + console.error(event.reason) + alert(event.reason) +} + +window.addEventListener('error', errorHandler) +window.addEventListener('unhandledrejection', rejectHandler) + +export const removeDefaultHandler = () => { + window.removeEventListener('error', errorHandler) + window.removeEventListener('unhandledrejection', rejectHandler) +} + let app: App; try { polyfill() diff --git a/src/ts/storage/globalApi.ts b/src/ts/storage/globalApi.ts index 3fcc155e..83eecdf5 100644 --- a/src/ts/storage/globalApi.ts +++ b/src/ts/storage/globalApi.ts @@ -31,6 +31,7 @@ import { listen } from '@tauri-apps/api/event' import { registerPlugin } from '@capacitor/core'; import { language } from "src/lang"; import { startObserveDom } from "../observer"; +import { removeDefaultHandler } from "src/main"; //@ts-ignore export const isTauri = !!window.__TAURI__ @@ -504,6 +505,7 @@ export async function loadData() { updateTextTheme() updateAnimationSpeed() updateHeightMode() + updateErrorHandling() if(db.botSettingAtStart){ botMakerMode.set(true) } @@ -526,6 +528,20 @@ export async function getFetchData(id:string) { return null } +function updateErrorHandling(){ + removeDefaultHandler() + const errorHandler = (event: ErrorEvent) => { + console.error(event.error) + alertError(event.error) + } + const rejectHandler = (event: PromiseRejectionEvent) => { + console.error(event.reason) + alertError(event.reason) + } + window.addEventListener('error', errorHandler) + window.addEventListener('unhandledrejection', rejectHandler) +} + const knownHostes = ["localhost","127.0.0.1","0.0.0.0"] interface GlobalFetchArgs {