UNPKG

550 BJavaScriptView Raw
1import rng from './rng.js';
2import bytesToUuid from './bytesToUuid.js';
3
4function v4(options, buf, offset) {
5 options = options || {};
6 var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
7
8 rnds[6] = rnds[6] & 0x0f | 0x40;
9 rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
10
11 if (buf) {
12 offset = offset || 0;
13
14 for (var i = 0; i < 16; ++i) {
15 buf[offset + i] = rnds[i];
16 }
17
18 return buf;
19 }
20
21 return bytesToUuid(rnds);
22}
23
24export default v4;
\No newline at end of file