UNPKG

1.01 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _rng = _interopRequireDefault(require("./rng.js"));
9
10var _bytesToUuid = _interopRequireDefault(require("./bytesToUuid.js"));
11
12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14function v4(options, buf, offset) {
15 var i = buf && offset || 0;
16
17 if (typeof options == 'string') {
18 buf = options === 'binary' ? new Array(16) : null;
19 options = null;
20 }
21
22 options = options || {};
23
24 var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
25
26
27 rnds[6] = rnds[6] & 0x0f | 0x40;
28 rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
29
30 if (buf) {
31 for (var ii = 0; ii < 16; ++ii) {
32 buf[i + ii] = rnds[ii];
33 }
34 }
35
36 return buf || (0, _bytesToUuid.default)(rnds);
37}
38
39var _default = v4;
40exports.default = _default;
41module.exports = exports.default;
\No newline at end of file