UNPKG

@qso-soft/shared

Version:

Shared library for QSO-soft

41 lines 1.8 kB
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