blob: 24b60412a2d44f6ae39631cbedd9f0ee14e98f13 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001/**
2 * Convert array of 16 byte values to UUID string format of the form:
3 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
4 */
5var byteToHex = [];
6for (var i = 0; i < 256; ++i) {
7 byteToHex[i] = (i + 0x100).toString(16).substr(1);
8}
9
10function 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
26module.exports = bytesToUuid;