-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
38 lines (31 loc) · 1.18 KB
/
index.js
File metadata and controls
38 lines (31 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
};