UUID.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. "use strict";
  2. /**
  3. * Class to implement UUID generation methods.
  4. *
  5. * @class
  6. */
  7. function UUID(){}
  8. /**
  9. * Generate new random UUID v4 as string.
  10. *
  11. * http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
  12. *
  13. * @static
  14. */
  15. UUID.generate = (function ()
  16. {
  17. var lut = [];
  18. for(var i = 0; i < 256; i++)
  19. {
  20. lut[i] = (i < 16 ? "0" : "") + (i).toString(16);
  21. }
  22. return function generateUUID()
  23. {
  24. var d0 = Math.random() * 0XFFFFFFFF | 0;
  25. var d1 = Math.random() * 0XFFFFFFFF | 0;
  26. var d2 = Math.random() * 0XFFFFFFFF | 0;
  27. var d3 = Math.random() * 0XFFFFFFFF | 0;
  28. var uuid = lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff] + "-" +
  29. lut[d1 & 0xff] + lut[d1 >> 8 & 0xff] + "-" + lut[d1 >> 16 & 0x0f | 0x40] + lut[d1 >> 24 & 0xff] + "-" +
  30. lut[d2 & 0x3f | 0x80] + lut[d2 >> 8 & 0xff] + "-" + lut[d2 >> 16 & 0xff] + lut[d2 >> 24 & 0xff] +
  31. lut[d3 & 0xff] + lut[d3 >> 8 & 0xff] + lut[d3 >> 16 & 0xff] + lut[d3 >> 24 & 0xff];
  32. return uuid.toUpperCase();
  33. };
  34. })();
  35. export {UUID};