1 |
3a515b92
|
cagy
|
/**
|
2 |
|
|
* Convert array of 16 byte values to UUID string format of the form:
|
3 |
|
|
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
4 |
|
|
*/
|
5 |
|
|
var byteToHex = [];
|
6 |
|
|
for (var i = 0; i < 256; ++i) {
|
7 |
|
|
byteToHex[i] = (i + 0x100).toString(16).substr(1);
|
8 |
|
|
}
|
9 |
|
|
|
10 |
|
|
function bytesToUuid(buf, offset) {
|
11 |
|
|
var i = offset || 0;
|
12 |
|
|
var bth = byteToHex;
|
13 |
|
|
// join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
|
14 |
|
|
return ([
|
15 |
|
|
bth[buf[i++]], bth[buf[i++]],
|
16 |
|
|
bth[buf[i++]], bth[buf[i++]], '-',
|
17 |
|
|
bth[buf[i++]], bth[buf[i++]], '-',
|
18 |
|
|
bth[buf[i++]], bth[buf[i++]], '-',
|
19 |
|
|
bth[buf[i++]], bth[buf[i++]], '-',
|
20 |
|
|
bth[buf[i++]], bth[buf[i++]],
|
21 |
|
|
bth[buf[i++]], bth[buf[i++]],
|
22 |
|
|
bth[buf[i++]], bth[buf[i++]]
|
23 |
|
|
]).join('');
|
24 |
|
|
}
|
25 |
|
|
|
26 |
|
|
module.exports = bytesToUuid;
|