root / HServer / 00.Server / 00.Program / node_modules / uuid / v4.js
이력 | 보기 | 이력해설 | 다운로드 (680 Bytes)
1 |
var rng = require('./lib/rng'); |
---|---|
2 |
var bytesToUuid = require('./lib/bytesToUuid'); |
3 |
|
4 |
function v4(options, buf, offset) { |
5 |
var i = buf && offset || 0; |
6 |
|
7 |
if (typeof(options) == 'string') { |
8 |
buf = options === 'binary' ? new Array(16) : null; |
9 |
options = null;
|
10 |
} |
11 |
options = options || {}; |
12 |
|
13 |
var rnds = options.random || (options.rng || rng)();
|
14 |
|
15 |
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
16 |
rnds[6] = (rnds[6] & 0x0f) | 0x40; |
17 |
rnds[8] = (rnds[8] & 0x3f) | 0x80; |
18 |
|
19 |
// Copy bytes to buffer, if provided
|
20 |
if (buf) {
|
21 |
for (var ii = 0; ii < 16; ++ii) { |
22 |
buf[i + ii] = rnds[ii]; |
23 |
} |
24 |
} |
25 |
|
26 |
return buf || bytesToUuid(rnds);
|
27 |
} |
28 |
|
29 |
module.exports = v4; |