index.js 1022 B

123456789101112131415161718192021222324252627282930313233
  1. var nb = require("buffa");
  2. var uuid_maker = (function(nb, bigint) {
  3. return function uuid_maker(pre, len_, base_) {
  4. var base = base_ || 16;
  5. var llen = len_ ? len_ * 8 : 0;
  6. return function make_uuid(bbase) {
  7. var dt = new Date().getTime();
  8. var bb = bigint.str2bigInt(dt + "", 10);
  9. var g = bigint.bigInt2str(bb, 16);
  10. var nn = nb(0);
  11. var vv = nb(g.length % 2 === 0 ? g : "0" + g, 'hex');
  12. nn = nn.append(vv, 8);
  13. if (llen > 0) {
  14. var hh = bigint.randBigInt(llen, 1);
  15. hh = bigint.bigInt2str(hh, 16);
  16. hh = nb(hh.length % 2 === 0 ? hh : "0" + hh, 'hex');
  17. nn = nn.append(hh);
  18. }
  19. return pre + nn.toBase(bbase && bbase > 1 && bbase < 180 ? bbase : base);
  20. }
  21. }
  22. })(nb, nb.bigint);
  23. var uuid = uuid_maker("E", 6, 36);
  24. var newbucketid = uuid_maker("B", 6, 32);
  25. module.exports = {
  26. uuid: uuid,
  27. newbucketid: newbucketid
  28. }