1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /**
- * UUID operations.
- *
- * @author n1474335 [n1474335@gmail.com]
- * @copyright Crown Copyright 2016
- * @license Apache-2.0
- *
- * @namespace
- */
- const UUID = {
- /**
- * Generate UUID operation.
- *
- * @param {string} input
- * @param {Object[]} args
- * @returns {string}
- */
- runGenerateV4: function(input, args) {
- if (window && typeof(window.crypto) !== "undefined" && typeof(window.crypto.getRandomValues) !== "undefined") {
- var buf = new Uint32Array(4),
- i = 0;
- window.crypto.getRandomValues(buf);
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
- var r = (buf[i >> 3] >> ((i % 8) * 4)) & 0xf,
- v = c === "x" ? r : (r & 0x3 | 0x8);
- i++;
- return v.toString(16);
- });
- } else {
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
- var r = Math.random() * 16 | 0,
- v = c === "x" ? r : (r & 0x3 | 0x8);
- return v.toString(16);
- });
- }
- },
- };
- export default UUID;
|