@tylerbu/sorted-btree-es6
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 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.branchingFactorErrorMsg=exports.comparatorErrorMsg=void 0,exports.makeLeavesFrom=makeLeavesFrom,exports.checkCanDoSetOperation=checkCanDoSetOperation;let 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;t=Math.ceil(o*t);let s=n,i=0,c=n<=o?1:Math.ceil(n/t);for(;0<c;c--){var p=Math.ceil(s/c),m=i+p,h=e.slice(i,m),f=r.slice(i,m),m=(i=m,s-=p,new b_tree_1.BNode(h,f));a(m)}}function checkCanDoSetOperation(e,r,o){if(e._compare!==r._compare)throw new Error(exports.comparatorErrorMsg);e=e._maxNodeSize;if(o||e===r._maxNodeSize)return e;throw new Error(exports.branchingFactorErrorMsg)}exports.comparatorErrorMsg="Cannot perform set operations on BTrees with different comparators.",exports.branchingFactorErrorMsg="Cannot perform set operations on BTrees with different max node sizes.";