You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.unsafeStringify = void 0; |
|
const validate_js_1 = require("./validate.js"); |
|
const byteToHex = []; |
|
for (let i = 0; i < 256; ++i) { |
|
byteToHex.push((i + 0x100).toString(16).slice(1)); |
|
} |
|
function unsafeStringify(arr, offset = 0) { |
|
return (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(); |
|
} |
|
exports.unsafeStringify = unsafeStringify; |
|
function stringify(arr, offset = 0) { |
|
const uuid = unsafeStringify(arr, offset); |
|
if (!(0, validate_js_1.default)(uuid)) { |
|
throw TypeError('Stringified UUID is invalid'); |
|
} |
|
return uuid; |
|
} |
|
exports.default = stringify;
|
|
|