UNPKG

gen-uid

Version:

Fast and simple uid generator

39 lines (31 loc) 1.21 kB
var lut = []; for (var i = 0; i < 256; i++) { lut[i] = (i < 16 ? '0' : '' ) + (i).toString(16); } /** * Fast UUID generator, RFC4122 version 4 compliant. * @author Jeff Ward (jcward.com). * @license MIT license * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136 **/ function guidV4() { var d0 = Math.random()*0xffffffff|0; var d1 = Math.random()*0xffffffff|0; var d2 = Math.random()*0xffffffff|0; var d3 = Math.random()*0xffffffff|0; return lut[d0&0xff] + lut[d0>>8&0xff] + lut[d0>>16&0xff] + lut[d0>>24&0xff] + '-' +lut[d1&0xff] + lut[d1>>8&0xff] + '-' + lut[d1>>16&0x0f|0x40] + lut[d1>>24&0xff] + '-' + lut[d2&0x3f|0x80] + lut[d2>>8&0xff] + '-' + lut[d2>>16&0xff] + lut[d2>>24&0xff] + lut[d3&0xff] + lut[d3>>8&0xff] + lut[d3>>16&0xff] + lut[d3>>24&0xff]; } function genToken(isShort) { var d0 = Math.random()*0xffffffff|0; var d1 = Math.random()*0xffffffff|0; var short = lut[d0>>16&0xff] + lut[d0>>24&0xff] + lut[d1&0xff] + lut[d1>>8&0xff]; return isShort ? short : short + lut[d1>>16&0xff] + lut[d1>>24&0xff]; } module.exports = { v4: guidV4, token: genToken };