UNPKG

logootsropes-crdt

Version:

Provides several data structures to represent a text in a ropes-like structure and manipulating it

33 lines (26 loc) 830 B
var Identifier = require('./identifier'); var InfiniteString = require('./infiniteString'); var Iterator = require('./iterator'); var createBetweenPosition = function (id1, id2, replicaNumber, clock) { var s1 = new InfiniteString(Number.MIN_VALUE, id1 != null ? id1.iterator() : null); var s2 = new InfiniteString(Number.MAX_VALUE, id2 != null ? id2.iterator() : null); var sb = []; do { var b1 = s1.next(); var b2 = s2.next(); if (b2 - b1 > 2) { //if (replicaNumber <= b1 || replicaNumber >= b2) { var r = (Math.random() * (b2 - b1 - 2)) + b1 + 1; sb.push(r); //} break; } else { sb.push(b1); } } while(true); sb.push(replicaNumber); sb.push(clock); return sb; }; module.exports = createBetweenPosition;