1 | import rng from './rng.js';
|
2 | import bytesToUuid from './bytesToUuid.js';
|
3 |
|
4 | function 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 |
|
24 | export default v4; |
\ | No newline at end of file |