uuid_utils.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.bufferToUuidHexString = exports.uuidHexStringToBuffer = exports.uuidValidateString = void 0;
  4. var buffer_1 = require("buffer");
  5. // Validation regex for v4 uuid (validates with or without dashes)
  6. var VALIDATION_REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15})$/i;
  7. var uuidValidateString = function (str) {
  8. return typeof str === 'string' && VALIDATION_REGEX.test(str);
  9. };
  10. exports.uuidValidateString = uuidValidateString;
  11. var uuidHexStringToBuffer = function (hexString) {
  12. if (!exports.uuidValidateString(hexString)) {
  13. throw new TypeError('UUID string representations must be a 32 or 36 character hex string (dashes excluded/included). Format: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" or "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".');
  14. }
  15. var sanitizedHexString = hexString.replace(/-/g, '');
  16. return buffer_1.Buffer.from(sanitizedHexString, 'hex');
  17. };
  18. exports.uuidHexStringToBuffer = uuidHexStringToBuffer;
  19. var bufferToUuidHexString = function (buffer, includeDashes) {
  20. if (includeDashes === void 0) { includeDashes = true; }
  21. return includeDashes
  22. ? buffer.toString('hex', 0, 4) +
  23. '-' +
  24. buffer.toString('hex', 4, 6) +
  25. '-' +
  26. buffer.toString('hex', 6, 8) +
  27. '-' +
  28. buffer.toString('hex', 8, 10) +
  29. '-' +
  30. buffer.toString('hex', 10, 16)
  31. : buffer.toString('hex');
  32. };
  33. exports.bufferToUuidHexString = bufferToUuidHexString;
  34. //# sourceMappingURL=uuid_utils.js.map