37 lines
764 B
JavaScript
37 lines
764 B
JavaScript
|
|
/*
|
||
|
|
Description: Generate unique ids
|
||
|
|
Date: 2025/3/7
|
||
|
|
Creator: Clemens Schwaighofer
|
||
|
|
*/
|
||
|
|
|
||
|
|
export { generateId, randomIdF };
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* generateId :: Integer -> String
|
||
|
|
* only works on mondern browsers
|
||
|
|
* @param {Number} len length of unique id string
|
||
|
|
* @return {String} random string in length of len
|
||
|
|
*/
|
||
|
|
function generateId(len)
|
||
|
|
{
|
||
|
|
var arr = new Uint8Array((len || 40) / 2);
|
||
|
|
(
|
||
|
|
window.crypto ||
|
||
|
|
// @ts-ignore
|
||
|
|
window.msCrypto
|
||
|
|
).getRandomValues(arr);
|
||
|
|
return Array.from(arr, self.dec2hex).join('');
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* creates a pseudo random string of 10 characters
|
||
|
|
* works on all browsers
|
||
|
|
* after many runs it will create duplicates
|
||
|
|
* @return {String} not true random string
|
||
|
|
*/
|
||
|
|
function randomIdF()
|
||
|
|
{
|
||
|
|
return Math.random().toString(36).substring(2);
|
||
|
|
}
|