UNPKG

jsoniq

Version:

JSONiq implementation for JavaScript

54 lines (52 loc) 8.21 kB
"use strict"; /// <reference path="../../../../typings/tsd.d.ts" /> var _ = require("lodash"); var PULComposition_1 = require("../../../../lib/updates/composition/PULComposition"); var MemoryStore_1 = require("../../../../lib/stores/memory/MemoryStore"); class Common { static debug(pul, snapshot, show) { if (show) { if (pul) { console.log("PUL =========="); console.log(JSON.stringify(pul.udps, null, 2)); } console.log("Snapshot =========="); console.log(JSON.stringify(snapshot, null, 2)); } } static loadSnapshot(store, snapshot) { Object.keys(snapshot).forEach(key => { store.put(snapshot[key], key); }); } static isEqual(obj1, obj2) { var result = _.isEqual(obj1, obj2); if (!result) { console.log("Objects are not equal"); console.log("Obj1 =========="); console.log(JSON.stringify(obj1, null, 2)); console.log("Obj2 =========="); console.log(JSON.stringify(obj2, null, 2)); } return result; } static checkCompositionIntegrity(d0, d1, snapshot) { d0.normalize(); d1.normalize(); var delta = PULComposition_1.default.compose(d0, d1, true); var store1 = new MemoryStore_1.default(); Common.loadSnapshot(store1, snapshot); Common.debug(d0, store1.snapshot, false); return store1.commitWith(d0).then(() => { return store1.commitWith(d1); }).then(() => { var store2 = new MemoryStore_1.default(); Common.loadSnapshot(store2, snapshot); return store2.commitWith(delta).then(() => { return Common.isEqual(store1.snapshot, store2.snapshot); }); }); } } exports.default = Common; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3RzL25vZGUvdXBkYXRlcy9jb21wb3NpdGlvbi9Db21tb24udHMiXSwibmFtZXMiOlsiQ29tbW9uIiwiQ29tbW9uLmRlYnVnIiwiQ29tbW9uLmxvYWRTbmFwc2hvdCIsIkNvbW1vbi5pc0VxdWFsIiwiQ29tbW9uLmNoZWNrQ29tcG9zaXRpb25JbnRlZ3JpdHkiXSwibWFwcGluZ3MiOiI7QUFBQSxxREFBcUQ7QUFDckQsSUFBWSxDQUFDLFdBQU0sUUFBUSxDQUFDLENBQUE7QUFFNUIsK0JBQTJCLG9EQUFvRCxDQUFDLENBQUE7QUFDaEYsNEJBQXdCLDJDQUEyQyxDQUFDLENBQUE7QUFFcEU7SUFDSUEsT0FBZUEsS0FBS0EsQ0FBQ0EsR0FBUUEsRUFBRUEsUUFBWUEsRUFBRUEsSUFBYUE7UUFDdERDLEVBQUVBLENBQUFBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQ05BLEVBQUVBLENBQUFBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO2dCQUNMQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxnQkFBZ0JBLENBQUNBLENBQUNBO2dCQUM5QkEsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsRUFBRUEsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkRBLENBQUNBO1lBQ0RBLE9BQU9BLENBQUNBLEdBQUdBLENBQUNBLHFCQUFxQkEsQ0FBQ0EsQ0FBQ0E7WUFDbkNBLE9BQU9BLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLFFBQVFBLEVBQUVBLElBQUlBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ25EQSxDQUFDQTtJQUNMQSxDQUFDQTtJQUVERCxPQUFlQSxZQUFZQSxDQUFDQSxLQUFrQkEsRUFBRUEsUUFBWUE7UUFDeERFLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLEdBQUdBO1lBQzdCQSxLQUFLQSxDQUFDQSxHQUFHQSxDQUFDQSxRQUFRQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTtRQUNsQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDUEEsQ0FBQ0E7SUFFREYsT0FBT0EsT0FBT0EsQ0FBQ0EsSUFBUUEsRUFBRUEsSUFBUUE7UUFDN0JHLElBQUlBLE1BQU1BLEdBQUdBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO1FBQ25DQSxFQUFFQSxDQUFBQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNUQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSx1QkFBdUJBLENBQUNBLENBQUNBO1lBQ3JDQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxpQkFBaUJBLENBQUNBLENBQUNBO1lBQy9CQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxJQUFJQSxFQUFFQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMzQ0EsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxDQUFDQTtZQUMvQkEsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsSUFBSUEsRUFBRUEsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDL0NBLENBQUNBO1FBQ0RBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO0lBQ2xCQSxDQUFDQTtJQUVESCxPQUFPQSx5QkFBeUJBLENBQUNBLEVBQU9BLEVBQUVBLEVBQU9BLEVBQUVBLFFBQVlBO1FBQzNESSxFQUFFQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQTtRQUNmQSxFQUFFQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQTtRQUVmQSxJQUFJQSxLQUFLQSxHQUFHQSx3QkFBY0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsRUFBRUEsRUFBRUEsRUFBRUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFFakRBLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLHFCQUFXQSxFQUFFQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsTUFBTUEsRUFBRUEsUUFBUUEsQ0FBQ0EsQ0FBQ0E7UUFDdENBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLEVBQUVBLEVBQUVBLE1BQU1BLENBQUNBLFFBQVFBLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBO1FBQ3pDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQTtZQUM5QkEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7UUFDakNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBO1lBQ0pBLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLHFCQUFXQSxFQUFFQSxDQUFDQTtZQUMvQkEsTUFBTUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsTUFBTUEsRUFBRUEsUUFBUUEsQ0FBQ0EsQ0FBQ0E7WUFDdENBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLElBQUlBLENBQUNBO2dCQUNqQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsRUFBRUEsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7WUFDNURBLENBQUNBLENBQUNBLENBQUNBO1FBQ1BBLENBQUNBLENBQUNBLENBQUNBO0lBQ1BBLENBQUNBO0FBQ0xKLENBQUNBO3lCQUFBIiwiZmlsZSI6InRlc3RzL25vZGUvdXBkYXRlcy9jb21wb3NpdGlvbi9Db21tb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vLi4vLi4vdHlwaW5ncy90c2QuZC50c1wiIC8+XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCBQVUwgZnJvbSBcIi4uLy4uLy4uLy4uL2xpYi91cGRhdGVzL1BVTFwiO1xuaW1wb3J0IFBVTENvbXBvc2l0aW9uIGZyb20gXCIuLi8uLi8uLi8uLi9saWIvdXBkYXRlcy9jb21wb3NpdGlvbi9QVUxDb21wb3NpdGlvblwiO1xuaW1wb3J0IE1lbW9yeVN0b3JlIGZyb20gXCIuLi8uLi8uLi8uLi9saWIvc3RvcmVzL21lbW9yeS9NZW1vcnlTdG9yZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21tb24ge1xuICAgIHByaXZhdGUgc3RhdGljIGRlYnVnKHB1bDogUFVMLCBzbmFwc2hvdDoge30sIHNob3c6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYoc2hvdykge1xuICAgICAgICAgICAgaWYocHVsKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJQVUwgPT09PT09PT09PVwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShwdWwudWRwcywgbnVsbCwgMikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJTbmFwc2hvdCA9PT09PT09PT09XCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoc25hcHNob3QsIG51bGwsIDIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGxvYWRTbmFwc2hvdChzdG9yZTogTWVtb3J5U3RvcmUsIHNuYXBzaG90OiB7fSkge1xuICAgICAgICBPYmplY3Qua2V5cyhzbmFwc2hvdCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgc3RvcmUucHV0KHNuYXBzaG90W2tleV0sIGtleSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBpc0VxdWFsKG9iajE6IHt9LCBvYmoyOiB7fSk6IGJvb2xlYW4ge1xuICAgICAgICB2YXIgcmVzdWx0ID0gXy5pc0VxdWFsKG9iajEsIG9iajIpO1xuICAgICAgICBpZighcmVzdWx0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIk9iamVjdHMgYXJlIG5vdCBlcXVhbFwiKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiT2JqMSA9PT09PT09PT09XCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkob2JqMSwgbnVsbCwgMikpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJPYmoyID09PT09PT09PT1cIik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShvYmoyLCBudWxsLCAyKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBzdGF0aWMgY2hlY2tDb21wb3NpdGlvbkludGVncml0eShkMDogUFVMLCBkMTogUFVMLCBzbmFwc2hvdDoge30pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgZDAubm9ybWFsaXplKCk7XG4gICAgICAgIGQxLm5vcm1hbGl6ZSgpO1xuXG4gICAgICAgIHZhciBkZWx0YSA9IFBVTENvbXBvc2l0aW9uLmNvbXBvc2UoZDAsIGQxLCB0cnVlKTtcblxuICAgICAgICB2YXIgc3RvcmUxID0gbmV3IE1lbW9yeVN0b3JlKCk7XG4gICAgICAgIENvbW1vbi5sb2FkU25hcHNob3Qoc3RvcmUxLCBzbmFwc2hvdCk7XG4gICAgICAgIENvbW1vbi5kZWJ1ZyhkMCwgc3RvcmUxLnNuYXBzaG90LCBmYWxzZSk7XG4gICAgICAgIHJldHVybiBzdG9yZTEuY29tbWl0V2l0aChkMCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUxLmNvbW1pdFdpdGgoZDEpO1xuICAgICAgICB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHZhciBzdG9yZTIgPSBuZXcgTWVtb3J5U3RvcmUoKTtcbiAgICAgICAgICAgIENvbW1vbi5sb2FkU25hcHNob3Qoc3RvcmUyLCBzbmFwc2hvdCk7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUyLmNvbW1pdFdpdGgoZGVsdGEpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBDb21tb24uaXNFcXVhbChzdG9yZTEuc25hcHNob3QsIHN0b3JlMi5zbmFwc2hvdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=