@qso-soft/shared
Version:
Shared library for QSO-soft
41 lines • 1.8 kB
JavaScript
import crypto from 'crypto';
import { EMAIL_DOMAINS, RANDOM_WORDS } from '../../constants';
export const getRandomNumber = ([min, max], isInteger = false) => {
const radomNumber = Math.random() * (max - min) + min;
return isInteger ? +radomNumber.toFixed(0) : radomNumber;
};
export const getRandomNumberRange = ([min, max]) => {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
export const getRandomBigInt = (amount) => {
const randomPercentage = 2 + Math.random() * 4;
const increment = (amount * BigInt(Math.floor(randomPercentage))) / BigInt(100);
const newValue = amount + increment;
return BigInt(newValue);
};
export const generateRandomEmail = () => {
const username = Math.random().toString(36).substring(2, 10);
const randomDomainIndex = Math.floor(Math.random() * EMAIL_DOMAINS.length);
const emailDomain = EMAIL_DOMAINS[randomDomainIndex];
return `${username}@${emailDomain}`;
};
export const generateRandomSentence = (wordsRange, words = RANDOM_WORDS) => {
const randomSentenceLength = getRandomNumber(wordsRange);
const randomWords = [];
for (let i = 0; i < randomSentenceLength; i++) {
const randomIndex = Math.floor(Math.random() * words.length);
randomWords.push(words[randomIndex]);
}
return randomWords.join(' ') + '.';
};
export const generateRandomNumber = () => {
const maxNumber = BigInt(10) ** BigInt(12);
const randomBytes = crypto.randomBytes(6);
const randomNumber = BigInt('0x' + randomBytes.toString('hex')) % maxNumber;
return randomNumber.toString().padStart(12, '0');
};
export const getRandomItemFromArray = (array) => {
const randomIndex = Math.floor(Math.random() * array.length);
return array[randomIndex];
};
//# sourceMappingURL=randomizers.js.map