From 7689151fc0944c6d6041dbc4cc34d8b0320b18d9 Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 22 Feb 2016 17:54:59 +0100 Subject: [PATCH] pull json validation for OT into its own module for reuse --- www/common/json-ot.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 www/common/json-ot.js diff --git a/www/common/json-ot.js b/www/common/json-ot.js new file mode 100644 index 000000000..167e3d11a --- /dev/null +++ b/www/common/json-ot.js @@ -0,0 +1,25 @@ +define([ + '/common/realtime-input.js' +], function () { + var ChainPad = window.ChainPad; + var JsonOT = {}; + + var validate = JsonOT.validate = function (text, toTransform, transformBy) { + var resultOp = ChainPad.Operation.transform0(text, toTransform, transformBy); + var text2 = ChainPad.Operation.apply(transformBy, text); + var text3 = ChainPad.Operation.apply(resultOp, text2); + try { + JSON.parse(text3); + return resultOp; + } catch (e) { + console.log(e); + } + + // returning **null** breaks out of the loop + // which transforms conflicting operations + // in theory this should prevent us from producing bad JSON + return null; + }; + + return JsonOT; +});