bytesToUuid.js (775B)
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;