|
@@ -0,0 +1,33 @@
|
|
|
+var nb = require("buffa");
|
|
|
+
|
|
|
+var uuid_maker = (function(nb, bigint) {
|
|
|
+ return function uuid_maker(pre, len_, base_) {
|
|
|
+ var base = base_ || 16;
|
|
|
+ var llen = len_ ? len_ * 8 : 0;
|
|
|
+ return function make_uuid(bbase) {
|
|
|
+ var dt = new Date().getTime();
|
|
|
+ var bb = bigint.str2bigInt(dt + "", 10);
|
|
|
+ var g = bigint.bigInt2str(bb, 16);
|
|
|
+ var nn = nb(0);
|
|
|
+ var vv = nb(g.length % 2 === 0 ? g : "0" + g, 'hex');
|
|
|
+ nn = nn.append(vv, 8);
|
|
|
+ if (llen > 0) {
|
|
|
+ var hh = bigint.randBigInt(llen, 1);
|
|
|
+ hh = bigint.bigInt2str(hh, 16);
|
|
|
+ hh = nb(hh.length % 2 === 0 ? hh : "0" + hh, 'hex');
|
|
|
+ nn = nn.append(hh);
|
|
|
+ }
|
|
|
+ return pre + nn.toBase(bbase && bbase > 1 && bbase < 180 ? bbase : base);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+})(nb, nb.bigint);
|
|
|
+
|
|
|
+var uuid = uuid_maker("E", 6, 36);
|
|
|
+var newbucketid = uuid_maker("B", 6, 32);
|
|
|
+
|
|
|
+
|
|
|
+module.exports = {
|
|
|
+ uuid: uuid,
|
|
|
+ newbucketid: newbucketid
|
|
|
+}
|