UNPKG

1.53 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.doKeysMatch = exports.matchingNibbleLength = exports.nibblesToBuffer = exports.bufferToNibbles = void 0;
4/**
5 * Converts a buffer to a nibble array.
6 * @private
7 * @param key
8 */
9function bufferToNibbles(key) {
10 var bkey = Buffer.from(key);
11 var nibbles = [];
12 for (var i = 0; i < bkey.length; i++) {
13 var q = i * 2;
14 nibbles[q] = bkey[i] >> 4;
15 ++q;
16 nibbles[q] = bkey[i] % 16;
17 }
18 return nibbles;
19}
20exports.bufferToNibbles = bufferToNibbles;
21/**
22 * Converts a nibble array into a buffer.
23 * @private
24 * @param arr - Nibble array
25 */
26function nibblesToBuffer(arr) {
27 var buf = Buffer.alloc(arr.length / 2);
28 for (var i = 0; i < buf.length; i++) {
29 var q = i * 2;
30 buf[i] = (arr[q] << 4) + arr[++q];
31 }
32 return buf;
33}
34exports.nibblesToBuffer = nibblesToBuffer;
35/**
36 * Returns the number of in order matching nibbles of two give nibble arrays.
37 * @private
38 * @param nib1
39 * @param nib2
40 */
41function matchingNibbleLength(nib1, nib2) {
42 var i = 0;
43 while (nib1[i] === nib2[i] && nib1.length > i) {
44 i++;
45 }
46 return i;
47}
48exports.matchingNibbleLength = matchingNibbleLength;
49/**
50 * Compare two nibble array keys.
51 * @param keyA
52 * @param keyB
53 */
54function doKeysMatch(keyA, keyB) {
55 var length = matchingNibbleLength(keyA, keyB);
56 return length === keyA.length && length === keyB.length;
57}
58exports.doKeysMatch = doKeysMatch;
59//# sourceMappingURL=nibbles.js.map
\No newline at end of file