aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShinigami <[email protected]>2022-10-15 07:49:26 +0800
committerGitHub <[email protected]>2022-10-14 23:49:26 +0000
commit5aa747f7c0e6f4f67044d71139d2f2cf20256a32 (patch)
treeb27fe464550cf5786875bfcb86496b4648ebcd0e /src
parenta7cd422c6cbfe10f110e1fc53c88559198a97f08 (diff)
downloadfaker-5aa747f7c0e6f4f67044d71139d2f2cf20256a32.tar.xz
faker-5aa747f7c0e6f4f67044d71139d2f2cf20256a32.zip
refactor!: make mersenne internal (#1444)
Diffstat (limited to 'src')
-rw-r--r--src/faker.ts13
-rw-r--r--src/internal/mersenne/mersenne.ts (renamed from src/modules/mersenne/index.ts)0
-rw-r--r--src/internal/mersenne/twister.ts (renamed from src/modules/mersenne/twister.ts)3
-rw-r--r--src/modules/datatype/index.ts7
4 files changed, 14 insertions, 9 deletions
diff --git a/src/faker.ts b/src/faker.ts
index c42c313e..62a3bf6f 100644
--- a/src/faker.ts
+++ b/src/faker.ts
@@ -1,5 +1,6 @@
import type { LocaleDefinition } from './definitions';
import { FakerError } from './errors/faker-error';
+import { MersenneModule } from './internal/mersenne/mersenne';
import type { KnownLocale } from './locales';
import { AddressModule } from './modules/address';
import { AnimalModule } from './modules/animal';
@@ -16,7 +17,6 @@ import { HelpersModule } from './modules/helpers';
import { ImageModule } from './modules/image';
import { InternetModule } from './modules/internet';
import { LoremModule } from './modules/lorem';
-import { MersenneModule } from './modules/mersenne';
import { MusicModule } from './modules/music';
import { NameModule } from './modules/name';
import { PhoneModule } from './modules/phone';
@@ -74,10 +74,9 @@ export class Faker {
readonly definitions: LocaleDefinition = this.initDefinitions();
- /**
- * @internal
- */
- readonly mersenne: MersenneModule = new MersenneModule();
+ /** @internal */
+ private readonly _mersenne: MersenneModule = new MersenneModule();
+
readonly random: RandomModule = new RandomModule(this);
readonly helpers: HelpersModule = new HelpersModule(this);
@@ -241,9 +240,9 @@ export class Faker {
seed: number | number[] = Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER)
): number | number[] {
if (Array.isArray(seed) && seed.length) {
- this.mersenne.seed_array(seed);
+ this._mersenne.seed_array(seed);
} else if (!Array.isArray(seed) && !isNaN(seed)) {
- this.mersenne.seed(seed);
+ this._mersenne.seed(seed);
}
return seed;
diff --git a/src/modules/mersenne/index.ts b/src/internal/mersenne/mersenne.ts
index 16019e29..16019e29 100644
--- a/src/modules/mersenne/index.ts
+++ b/src/internal/mersenne/mersenne.ts
diff --git a/src/modules/mersenne/twister.ts b/src/internal/mersenne/twister.ts
index 5859f3ae..f7757842 100644
--- a/src/modules/mersenne/twister.ts
+++ b/src/internal/mersenne/twister.ts
@@ -68,8 +68,9 @@
* Any feedback is very welcome.
* http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
* email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)
+ *
+ * @internal
*/
-
export default class MersenneTwister19937 {
private readonly N = 624;
private readonly M = 397;
diff --git a/src/modules/datatype/index.ts b/src/modules/datatype/index.ts
index 336f8f9f..4c522d53 100644
--- a/src/modules/datatype/index.ts
+++ b/src/modules/datatype/index.ts
@@ -1,5 +1,6 @@
import type { Faker } from '../..';
import { FakerError } from '../../errors/faker-error';
+import type { MersenneModule } from '../../internal/mersenne/mersenne';
/**
* Module to generate various primitive values and data types.
@@ -54,8 +55,12 @@ export class DatatypeModule {
throw new FakerError(`Max ${max} should be greater than min ${min}.`);
}
+ const mersenne: MersenneModule =
+ // @ts-expect-error: access private member field
+ this.faker._mersenne;
+
const randomNumber = Math.floor(
- this.faker.mersenne.rand(max / precision + 1, min / precision)
+ mersenne.rand(max / precision + 1, min / precision)
);
// Workaround problem in float point arithmetics for e.g. 6681493 / 0.01