UNPKG

amos-tool

Version:

amos ui tool

25 lines (24 loc) 1 kB
var CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""); module.exports = { uuid: function(x, r) { var n, t = CHARS, a = []; if (r = r || t.length, x) for (n = 0; n < x; n++) a[n] = t[0 | Math.random() * r]; else { var o; for (a[8] = a[13] = a[18] = a[23] = "-", a[14] = "4", n = 0; n < 36; n++) a[n] || (o = 0 | 16 * Math.random(), a[n] = t[19 == n ? 3 & o | 8 : o]) } return a.join("") }, uuidFast: function() { for (var x, r = CHARS, n = new Array(36), t = 0, a = 0; a < 36; a++) 8 == a || 13 == a || 18 == a || 23 == a ? n[a] = "-" : 14 == a ? n[a] = "4" : (t <= 2 && (t = 33554432 + 16777216 * Math.random() | 0), x = 15 & t, t >>= 4, n[a] = r[19 == a ? 3 & x | 8 : x]); return n.join("") }, uuidCompact: function() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(x) { var r = 16 * Math.random() | 0; return ("x" == x ? r : 3 & r | 8).toString(16) }) } };