use json-ot from bower
This commit is contained in:
parent
dccf5e8dcf
commit
ff0f7d15dc
@ -32,6 +32,7 @@
|
|||||||
"hyperjson": "~1.2.2",
|
"hyperjson": "~1.2.2",
|
||||||
"textpatcher": "^1.2.0",
|
"textpatcher": "^1.2.0",
|
||||||
"proxy-polyfill": "^0.1.5",
|
"proxy-polyfill": "^0.1.5",
|
||||||
"chainpad": "^0.2.2"
|
"chainpad": "^0.2.2",
|
||||||
|
"chainpad-json-validator": "^0.1.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@ define([
|
|||||||
'/common/crypto.js',
|
'/common/crypto.js',
|
||||||
'/bower_components/textpatcher/TextPatcher.amd.js',
|
'/bower_components/textpatcher/TextPatcher.amd.js',
|
||||||
'json.sortify',
|
'json.sortify',
|
||||||
'/common/json-ot.js',
|
'/bower_components/chainpad-json-validator/json-ot.js',
|
||||||
'/bower_components/fabric.js/dist/fabric.min.js',
|
'/bower_components/fabric.js/dist/fabric.min.js',
|
||||||
'/bower_components/jquery/dist/jquery.min.js',
|
'/bower_components/jquery/dist/jquery.min.js',
|
||||||
'/customize/pad.js'
|
'/customize/pad.js'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ define([
|
|||||||
'/api/config?cb=' + Math.random().toString(16).substring(2),
|
'/api/config?cb=' + Math.random().toString(16).substring(2),
|
||||||
'/common/crypto.js',
|
'/common/crypto.js',
|
||||||
'/common/realtime-input.js',
|
'/common/realtime-input.js',
|
||||||
'/common/json-ot.js',
|
'/bower_components/chainpad-json-validator/json-ot.js',
|
||||||
'json.sortify',
|
'json.sortify',
|
||||||
'/bower_components/textpatcher/TextPatcher.amd.js',
|
'/bower_components/textpatcher/TextPatcher.amd.js',
|
||||||
'/bower_components/jquery/dist/jquery.min.js',
|
'/bower_components/jquery/dist/jquery.min.js',
|
||||||
|
|||||||
@ -1,68 +0,0 @@
|
|||||||
define([
|
|
||||||
'/common/realtime-input.js'
|
|
||||||
], function () {
|
|
||||||
var ChainPad = window.ChainPad;
|
|
||||||
var JsonOT = {};
|
|
||||||
|
|
||||||
var validate = JsonOT.validate = function (text, toTransform, transformBy) {
|
|
||||||
var DEBUG = window.REALTIME_DEBUG = window.REALTIME_DEBUG || {};
|
|
||||||
|
|
||||||
var resultOp, text2, text3;
|
|
||||||
try {
|
|
||||||
// text = O (mutual common ancestor)
|
|
||||||
// toTransform = A (the first incoming operation)
|
|
||||||
// transformBy = B (the second incoming operation)
|
|
||||||
// threeway merge (0, A, B)
|
|
||||||
|
|
||||||
resultOp = ChainPad.Operation.transform0(text, toTransform, transformBy);
|
|
||||||
|
|
||||||
/* if after operational transform we find that no op is necessary
|
|
||||||
return null to ignore this patch */
|
|
||||||
if (!resultOp) { return null; }
|
|
||||||
|
|
||||||
text2 = ChainPad.Operation.apply(transformBy, text);
|
|
||||||
text3 = ChainPad.Operation.apply(resultOp, text2);
|
|
||||||
try {
|
|
||||||
JSON.parse(text3);
|
|
||||||
return resultOp;
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
var info = DEBUG.ot_parseError = {
|
|
||||||
type: 'resultParseError',
|
|
||||||
resultOp: resultOp,
|
|
||||||
|
|
||||||
toTransform: toTransform,
|
|
||||||
transformBy: transformBy,
|
|
||||||
|
|
||||||
text1: text,
|
|
||||||
text2: text2,
|
|
||||||
text3: text3,
|
|
||||||
error: e
|
|
||||||
};
|
|
||||||
console.log('Debugging info available at `window.REALTIME_DEBUG.ot_parseError`');
|
|
||||||
}
|
|
||||||
} catch (x) {
|
|
||||||
console.error(x);
|
|
||||||
window.DEBUG.ot_applyError = {
|
|
||||||
type: 'resultParseError',
|
|
||||||
resultOp: resultOp,
|
|
||||||
|
|
||||||
toTransform: toTransform,
|
|
||||||
transformBy: transformBy,
|
|
||||||
|
|
||||||
text1: text,
|
|
||||||
text2: text2,
|
|
||||||
text3: text3,
|
|
||||||
error: x
|
|
||||||
};
|
|
||||||
console.log('Debugging info available at `window.REALTIME_DEBUG.ot_applyError`');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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;
|
|
||||||
});
|
|
||||||
@ -8,7 +8,7 @@ define([
|
|||||||
'/common/hyperscript.js',
|
'/common/hyperscript.js',
|
||||||
'/common/toolbar.js',
|
'/common/toolbar.js',
|
||||||
'/common/cursor.js',
|
'/common/cursor.js',
|
||||||
'/common/json-ot.js',
|
'/bower_components/chainpad-json-validator/json-ot.js',
|
||||||
'/common/TypingTests.js',
|
'/common/TypingTests.js',
|
||||||
'json.sortify',
|
'json.sortify',
|
||||||
'/bower_components/textpatcher/TextPatcher.amd.js',
|
'/bower_components/textpatcher/TextPatcher.amd.js',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user