sorted-btree
Version:
A sorted list of key-value pairs in a fast, typed in-memory B+ tree with a powerful API.
2 lines (1 loc) • 1.06 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.checkCanDoSetOperation=exports.branchingFactorErrorMsg=exports.comparatorErrorMsg=exports.makeLeavesFrom=void 0;var b_tree_1=require("../b+tree");function makeLeavesFrom(e,r,o,t,a){if(e.length!==r.length)throw new Error("makeLeavesFrom: keys and values arrays must be the same length");var n=e.length;if(0===n)return 0;for(var t=Math.ceil(o*t),s=n,i=0,c=n<=o?1:Math.ceil(n/t);0<c;c--){var p=Math.ceil(s/c),m=i+p,h=e.slice(i,m),f=r.slice(i,m),i=m;s-=p,a(new b_tree_1.BNode(h,f))}}function checkCanDoSetOperation(e,r,o){if(e._compare!==r._compare)throw new Error(exports.comparatorErrorMsg);e=e._maxNodeSize;if(!o&&e!==r._maxNodeSize)throw new Error(exports.branchingFactorErrorMsg);return e}exports.makeLeavesFrom=makeLeavesFrom,exports.comparatorErrorMsg="Cannot perform set operations on BTrees with different comparators.",exports.branchingFactorErrorMsg="Cannot perform set operations on BTrees with different max node sizes.",exports.checkCanDoSetOperation=checkCanDoSetOperation;