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;
							 |