25 lines
		
	
	
		
			747 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			747 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /** | ||
|  |  * 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; |