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;