github.com/nektos/act@v0.2.63/pkg/runner/testdata/actions/node12/node_modules/uuid/dist/esm-node/stringify.js (about) 1 import validate from './validate.js'; 2 /** 3 * Convert array of 16 byte values to UUID string format of the form: 4 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 5 */ 6 7 const byteToHex = []; 8 9 for (let i = 0; i < 256; ++i) { 10 byteToHex.push((i + 0x100).toString(16).substr(1)); 11 } 12 13 function stringify(arr, offset = 0) { 14 // Note: Be careful editing this code! It's been tuned for performance 15 // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 16 const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one 17 // of the following: 18 // - One or more input array values don't map to a hex octet (leading to 19 // "undefined" in the uuid) 20 // - Invalid input values for the RFC `version` or `variant` fields 21 22 if (!validate(uuid)) { 23 throw TypeError('Stringified UUID is invalid'); 24 } 25 26 return uuid; 27 } 28 29 export default stringify;