fix: get rid of math.random in utils.generateUUID

This commit is contained in:
Barış Soner Uşaklı
2022-05-26 12:12:19 -04:00
parent 9d9b3f4e2f
commit e802fab87f
3 changed files with 23 additions and 9 deletions

View File

@@ -274,15 +274,6 @@ const HTMLEntities = Object.freeze({
/* eslint-disable no-redeclare */
const utils = {
generateUUID: function () {
/* eslint-disable no-bitwise */
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
const r = Math.random() * 16 | 0;
const v = c === 'x' ? r : ((r & 0x3) | 0x8);
return v.toString(16);
});
/* eslint-enable no-bitwise */
},
// https://github.com/substack/node-ent/blob/master/index.js
decodeHTMLEntities: function (html) {
return String(html)

View File

@@ -73,4 +73,12 @@ utils.assertPasswordValidity = (password) => {
}
};
utils.generateUUID = function () {
// from https://github.com/tracker1/node-uuid4/blob/master/browser.js
const temp_url = URL.createObjectURL(new Blob());
const uuid = temp_url.toString();
URL.revokeObjectURL(temp_url);
return uuid.split(/[:\/]/g).pop().toLowerCase(); // remove prefixes
};
module.exports = utils;