1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | 'use strict';
|
9 |
|
10 | const fbtJenkinsHash = require('./fbtJenkinsHash');
|
11 |
|
12 | const BaseNSymbols =
|
13 | '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
14 |
|
15 |
|
16 | function uintToBaseN(number, base) {
|
17 | if (base < 2 || base > 62 || number < 0) {
|
18 | return '';
|
19 | }
|
20 | var output = '';
|
21 | do {
|
22 | output = BaseNSymbols.charAt(number % base).concat(output);
|
23 | number = Math.floor(number / base);
|
24 | } while (number > 0);
|
25 | return output;
|
26 | }
|
27 |
|
28 | function fbtHashKey(jsfbt, desc, nostringify) {
|
29 | return uintToBaseN(fbtJenkinsHash(jsfbt, desc, nostringify), 62);
|
30 | }
|
31 |
|
32 | module.exports = fbtHashKey;
|