amos-tool
Version:
amos ui tool
25 lines (24 loc) • 1 kB
JavaScript
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)
})
}
};