• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/**
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 ([bth[buf[i++]], bth[buf[i++]],
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++]]]).join('');
22}
23
24module.exports = bytesToUuid;
25