aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorST-DDT <[email protected]>2024-11-12 09:19:28 +0100
committerGitHub <[email protected]>2024-11-12 08:19:28 +0000
commit1633c8deb8f6f41151b39b62689ae3e02ab295bc (patch)
tree2561a719b9154d67c51747a2263f68baf4ff8efa /src/utils
parentcb4b77c04f4d4a706819a6f34ff8378afec6523e (diff)
downloadfaker-1633c8deb8f6f41151b39b62689ae3e02ab295bc.tar.xz
faker-1633c8deb8f6f41151b39b62689ae3e02ab295bc.zip
feat: add initial seed parameter to constructors (#3220)
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/mersenne.ts17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/utils/mersenne.ts b/src/utils/mersenne.ts
index 315335ab..585f84b5 100644
--- a/src/utils/mersenne.ts
+++ b/src/utils/mersenne.ts
@@ -1,10 +1,13 @@
import { MersenneTwister19937 } from '../internal/mersenne';
+import { randomSeed } from '../internal/seed';
import type { Randomizer } from '../randomizer';
/**
* Generates a MersenneTwister19937 randomizer with 32 bits of precision.
* This is the default randomizer used by faker prior to v9.0.
*
+ * @param seed The initial seed to use. Defaults to a random number.
+ *
* @example
* import { de, en, generateMersenne32Randomizer, Faker } from '@faker-js/faker';
*
@@ -16,10 +19,12 @@ import type { Randomizer } from '../randomizer';
*
* @since 8.2.0
*/
-export function generateMersenne32Randomizer(): Randomizer {
+export function generateMersenne32Randomizer(
+ seed: number = randomSeed()
+): Randomizer {
const twister = new MersenneTwister19937();
- twister.initGenrand(Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER));
+ twister.initGenrand(seed);
return {
next(): number {
@@ -39,6 +44,8 @@ export function generateMersenne32Randomizer(): Randomizer {
* Generates a MersenneTwister19937 randomizer with 53 bits of precision.
* This is the default randomizer used by faker starting with v9.0.
*
+ * @param seed The initial seed to use. Defaults to a random number.
+ *
* @example
* import { de, en, generateMersenne53Randomizer, Faker } from '@faker-js/faker';
*
@@ -50,10 +57,12 @@ export function generateMersenne32Randomizer(): Randomizer {
*
* @since 9.0.0
*/
-export function generateMersenne53Randomizer(): Randomizer {
+export function generateMersenne53Randomizer(
+ seed: number = randomSeed()
+): Randomizer {
const twister = new MersenneTwister19937();
- twister.initGenrand(Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER));
+ twister.initGenrand(seed);
return {
next(): number {