1
|
/**
|
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;
|