jiti-meet/modules/util/RandomUtil.js

83 lines
2.1 KiB
JavaScript

/**
* Alphanumeric characters.
* @const
*/
const ALPHANUM
= '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
/**
* Hexadecimal digit characters.
* @const
*/
const HEX_DIGITS = '0123456789abcdef';
/**
* Generate a string with random alphanumeric characters with a specific length.
*
* @param {number} length - The length of the string to return.
* @returns {string} A string of random alphanumeric characters with the
* specified length.
*/
export function randomAlphanumString(length) {
return _randomString(length, ALPHANUM);
}
/**
* Get random element of array or string.
*
* @param {Array|string} arr - Source.
* @returns {Array|string} Array element or string character.
*/
export function randomElement(arr) {
return arr[randomInt(0, arr.length - 1)];
}
/**
* Returns a random hex digit.
*
* @returns {Array|string}
*/
export function randomHexDigit() {
return randomElement(HEX_DIGITS);
}
/**
* Generates a string of random hexadecimal digits with a specific length.
*
* @param {number} length - The length of the string to return.
* @returns {string} A string of random hexadecimal digits with the specified
* length.
*/
export function randomHexString(length) {
return _randomString(length, HEX_DIGITS);
}
/**
* Generates random int within the range [min, max].
*
* @param {number} min - The minimum value for the generated number.
* @param {number} max - The maximum value for the generated number.
* @returns {number} Random int number.
*/
export function randomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
/**
* Generates a string of random characters with a specific length.
*
* @param {number} length - The length of the string to return.
* @param {string} characters - The characters from which the returned string is
* to be constructed.
* @returns {string} A string of random characters with the specified length.
*/
function _randomString(length, characters) {
let result = '';
for (let i = 0; i < length; ++i) {
result += randomElement(characters);
}
return result;
}