From 5da510578ea9abb0c465cc571847f7b3aed35249 Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Wed, 7 Nov 2018 22:02:51 -0800 Subject: [PATCH] set history pointer to errant operation if there is an error while modification evaluation to give a way of fixing it --- web/app/cad/craft/craftPlugin.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/web/app/cad/craft/craftPlugin.js b/web/app/cad/craft/craftPlugin.js index 9ce677ce..d3b4eb5f 100644 --- a/web/app/cad/craft/craftPlugin.js +++ b/web/app/cad/craft/craftPlugin.js @@ -85,10 +85,19 @@ export function activate({streams, services}) { let {history, pointer} = curr; for (let i = beginIndex; i <= pointer; i++) { let request = history[i]; - let {consumed, created} = runOrGetPreRunResults(request); - consumed.forEach(m => models.delete(m)); - created.forEach(m => models.add(m)); - streams.craft.models.next(Array.from(models).sort(m => m.id)); + try { + let {consumed, created} = runOrGetPreRunResults(request); + consumed.forEach(m => models.delete(m)); + created.forEach(m => models.add(m)); + streams.craft.models.next(Array.from(models).sort(m => m.id)); + } catch(e) { + console.error(e); + setTimeout(() => streams.craft.modifications.next({ + ...curr, + pointer: i-1 + })); + break; + } } }) }