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 |
|
7 | for (var i = 0; i < 256; ++i) {
|
8 | byteToHex[i] = (i + 0x100).toString(16).substr(1);
|
9 | }
|
10 |
|
11 | function bytesToUuid(buf, offset) {
|
12 | var i = offset || 0;
|
13 | var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
|
14 |
|
15 | 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('');
|
16 | }
|
17 |
|
18 | export default bytesToUuid; |
\ | No newline at end of file |