amos-tool
Version:
amos ui tool
54 lines (52 loc) • 2.3 kB
JavaScript
;
var CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""), index = 0, longtimeIndex = 0, formatDate = function() {
var x = "yyyyMMddhhmm", t = new Date, e = {
"M+": t.getMonth() + 1,
"d+": t.getDate(),
"h+": t.getHours(),
"m+": t.getMinutes(),
"s+": t.getSeconds(),
S: t.getMilliseconds()
};
for (var n in /(y+)/.test(x) && (x = x.replace(RegExp.$1, (t.getFullYear() + "").substr(4 - RegExp.$1.length))),
e) new RegExp("(" + n + ")").test(x) && (x = x.replace(RegExp.$1, 1 == RegExp.$1.length ? e[n] : ("00" + e[n]).substr(("" + e[n]).length)));
return x;
};
module.exports = {
uuid: function(x, t) {
var e, n, r = CHARS, o = [];
if (t = t || r.length, x) for (e = 0; e < x; e++) o[e] = r[0 | Math.random() * t]; else for (o[8] = o[13] = o[18] = o[23] = "-",
o[14] = "4", e = 0; e < 36; e++) o[e] || (n = 0 | 16 * Math.random(), o[e] = r[19 == e ? 3 & n | 8 : n]);
return o.join("");
},
uuidFast: function() {
for (var x, t = CHARS, e = new Array(36), n = 0, r = 0; r < 36; r++) 8 == r || 13 == r || 18 == r || 23 == r ? e[r] = "-" : 14 == r ? e[r] = "4" : (n <= 2 && (n = 33554432 + 16777216 * Math.random() | 0),
x = 15 & n, n >>= 4, e[r] = t[19 == r ? 3 & x | 8 : x]);
return e.join("");
},
uuidCompact: function() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(x) {
var t = 16 * Math.random() | 0;
return ("x" == x ? t : 3 & t | 8).toString(16);
});
},
uuidTime: function(x) {
var t = Date.now(), e = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(x) {
var e = (t + 16 * Math.random()) % 16 | 0;
return t = Math.floor(t / 16), ("x" === x ? e : 3 & e | 8).toString(16);
});
return x ? e.replace(/-/g, "") : e;
},
timeUUID: function(x) {
return x || (x = "amos-timeuuid"), x + "-" + Date.now() + "-" + ++index;
},
longTimeUUID: function(x) {
return x || (x = "longtime"), x + "-" + formatDate() + "-" + ++longtimeIndex;
},
otherUUID: function(x) {
return (x = x || "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx").replace(/[xy]/g, function(x) {
var t = 16 * Math.random() | 0;
return ("x" == x ? t : 3 & t | 8).toString(16);
}).replace(/\-/g, "");
}
};