From 5e27d38e0ae5f59f98a0c2fae748c93f949b9388 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 3 Sep 2020 02:16:32 +0100 Subject: [PATCH] better error handling in js --- templates/script.ts | 28 ++++++++++++++++++++++------ templates/session.tera | 2 +- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/templates/script.ts b/templates/script.ts index fde8099f..d32ef390 100644 --- a/templates/script.ts +++ b/templates/script.ts @@ -64,6 +64,7 @@ interface DispatchTable { [key: string]: H }; var general_timeout : number = 10000; var messages : DispatchTable = Object(); var pieceops : DispatchTable = Object(); +var update_error_handlers : DispatchTable = Object(); var our_dnd_type = "text/puvnex-game-server-dummy"; var api_queue : [string, Object][] = []; var api_posting = false; @@ -544,6 +545,13 @@ messages.Recorded = function gen = j.gen; } +messages.Error = function +(m: any) { + console.log('ERROR UPDATE ', m); + var k = Object.keys(m)[0]; + update_error_handlers[k](m[k]); +} + function piece_checkconflict_nrda(piece: PieceId, p: PieceInfo): boolean { if (p.cseq != null) { p.cseq = null; @@ -597,13 +605,21 @@ function startup() { var es = new EventSource("/_/updates/"+ctoken+'/'+gen); es.onmessage = function(event) { // xxx want to trap errors and ask user to reload - console.log('GOTEVE', event) - var [tgen, ms] = JSON.parse(event.data); - for (var m of ms) { - var k = Object.keys(m)[0]; - messages[k](m[k]); + console.log('GOTEVE', event); + var k; + var m; + try { + var [tgen, ms] = JSON.parse(event.data); + for (m of ms) { + k = Object.keys(m)[0]; + messages[k](m[k]); + } + gen = tgen; + } catch (exc) { + string_report_error('exception handling update ' + + k + ': ' + JSON.stringify(m) + ': ' + + + exc.toString()); } - gen = tgen; } es.addEventListener('commsworking', function(event) { console.log('GOTDATA', event); diff --git a/templates/session.tera b/templates/session.tera index 19e5e5e7..ad3d5bcc 100644 --- a/templates/session.tera +++ b/templates/session.tera @@ -5,7 +5,7 @@ data-load="{{ load | escape }}" >

Hi {{nick}}!

-
+

 

nothing
-- 2.30.2