@@ -52,6 +52,7 @@ import { keydownState } from "handlers/keyboard";
5252import { initFileList } from "lib/fileList" ;
5353import { addedFolder } from "lib/openFolder" ;
5454import { getEncoding , initEncodings } from "utils/encodings" ;
55+ import constants from "./constants" ;
5556
5657const previousVersionCode = Number . parseInt ( localStorage . versionCode , 10 ) ;
5758
@@ -107,6 +108,19 @@ async function onDeviceReady() {
107108 window . IS_FREE_VERSION = isFreePackage ;
108109 window . log = logger . log . bind ( logger ) ;
109110
111+ // Capture synchronous errors
112+ window . addEventListener ( "error" , function ( event ) {
113+ const errorMsg = `Error: ${ event . message } , Source: ${ event . filename } , Line: ${ event . lineno } , Column: ${ event . colno } , Stack: ${ event . error ?. stack || "N/A" } ` ;
114+ window . log ( "error" , errorMsg ) ;
115+ } ) ;
116+ // Capture unhandled promise rejections
117+ window . addEventListener ( "unhandledrejection" , function ( event ) {
118+ window . log (
119+ "error" ,
120+ `Unhandled rejection: ${ event . reason ? event . reason . message : "Unknown reason" } \nStack: ${ event . reason ? event . reason . stack : "No stack available" } ` ,
121+ ) ;
122+ } ) ;
123+
110124 startAd ( ) ;
111125
112126 try {
@@ -185,22 +199,31 @@ async function onDeviceReady() {
185199 oldResolveURL . call ( this , Url . safe ( url ) , ...args ) ;
186200 } ;
187201
188- setTimeout ( ( ) => {
189- if ( document . body . classList . contains ( "loading" ) )
202+ setTimeout ( async ( ) => {
203+ if ( document . body . classList . contains ( "loading" ) ) {
190204 window . log ( "warn" , "App is taking unexpectedly long time!" ) ;
191- document . body . setAttribute (
192- "data-small-msg" ,
193- "This is taking unexpectedly long time!" ,
194- ) ;
205+ document . body . setAttribute (
206+ "data-small-msg" ,
207+ "This is taking unexpectedly long time!" ,
208+ ) ;
209+ // share the log file (but currently doesn't work)
210+ // system.fileAction(
211+ // Url.join(DATA_STORAGE, constants.LOG_FILE_NAME),
212+ // constants.LOG_FILE_NAME,
213+ // "SEND",
214+ // "text/plain",
215+ // () => {
216+ // toast(strings["no app found to handle this file"]);
217+ // },
218+ // );
219+ }
195220 } , 1000 * 10 ) ;
196221
197222 acode . setLoadingMessage ( "Loading settings..." ) ;
198- window . log ( "info" , "Loading Settings..." ) ;
199223 await settings . init ( ) ;
200224 themes . init ( ) ;
201225
202226 acode . setLoadingMessage ( "Loading language..." ) ;
203- window . log ( "info" , "Loading language..." ) ;
204227 await lang . set ( settings . value . lang ) ;
205228
206229 try {
@@ -346,7 +369,7 @@ async function loadApp() {
346369 } ) ;
347370 //#endregion
348371
349- window . log ( "info" , "App started! " ) ;
372+ window . log ( "info" , "Started app and services... " ) ;
350373
351374 new EditorFile ( ) ;
352375
0 commit comments