| /** |
| * Convert array of 16 byte values to UUID string format of the form: |
| * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
| */ |
| var byteToHex = []; |
| for (var i = 0; i < 256; ++i) { |
| byteToHex[i] = (i + 0x100).toString(16).substr(1); |
| } |
| |
| function bytesToUuid(buf, offset) { |
| var i = offset || 0; |
| var bth = byteToHex; |
| // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 |
| return ([bth[buf[i++]], bth[buf[i++]], |
| bth[buf[i++]], bth[buf[i++]], '-', |
| bth[buf[i++]], bth[buf[i++]], '-', |
| bth[buf[i++]], bth[buf[i++]], '-', |
| bth[buf[i++]], bth[buf[i++]], '-', |
| bth[buf[i++]], bth[buf[i++]], |
| bth[buf[i++]], bth[buf[i++]], |
| bth[buf[i++]], bth[buf[i++]]]).join(''); |
| } |
| |
| module.exports = bytesToUuid; |