build(deps-dev): apply updates
[benchmarks-js.git] / benchmark-utils.mjs
index ac10249991b7bf1cc6b9345e3fc8e22c4ef189f3..d0d5a62291527bc12387e18188991e83e307670a 100644 (file)
@@ -1,36 +1,19 @@
-import crypto from 'crypto'
+import { getRandomValues, randomBytes, randomInt } from 'node:crypto'
 
 /**
  * Generate a cryptographically secure random number in the [0,1[ range
  * @returns
  */
 export function secureRandom () {
-  return crypto.randomBytes(4).readUInt32LE() / 0x100000000
+  return randomBytes(4).readUInt32LE() / 0x100000000
 }
 
 /**
- *  Generate a cryptographically secure random number in the [0,1[ range
+ * Generate a cryptographically secure random number in the [0,1[ range
  * @returns
  */
 export function secureRandomWithRandomValues () {
-  return crypto.getRandomValues(new Uint32Array(1))[0] / 0x100000000
-}
-
-/**
- * @param max
- * @param min
- * @returns
- */
-export function generateRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) {
-  if (max < min || max < 0 || min < 0) {
-    throw new RangeError('Invalid interval')
-  }
-  max = Math.floor(max)
-  if (min != null && min !== 0) {
-    min = Math.ceil(min)
-    return Math.floor(secureRandom() * (max - min + 1)) + min
-  }
-  return Math.floor(secureRandom() * (max + 1))
+  return getRandomValues(new Uint32Array(1))[0] / 0x100000000
 }
 
 /**
@@ -46,7 +29,7 @@ export function generateRandomFloat (max = Number.MAX_VALUE, min = 0) {
   if (max - min === Infinity) {
     throw new RangeError('Invalid interval')
   }
-  return (crypto.randomBytes(4).readUInt32LE() / 0xffffffff) * (max - min) + min
+  return (randomBytes(4).readUInt32LE() / 0xffffffff) * (max - min) + min
 }
 
 /**
@@ -80,7 +63,7 @@ export function generateRandomObject (
   numberMax = Number.MAX_VALUE,
   numberGenerator = generateRandomFloat
 ) {
-  const size = generateRandomInteger(sizeMax)
+  const size = randomInt(sizeMax)
   const object = {}
   for (let i = 0; i < size; i++) {
     object[i.toString()] = numberGenerator(numberMax)
@@ -93,5 +76,5 @@ export function generateRandomObject (
  * @returns
  */
 export async function sleep (ms) {
-  return new Promise(resolve => setTimeout(resolve, ms))
+  return await new Promise(resolve => setTimeout(resolve, ms))
 }