aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJason Papakostas <[email protected]>2022-03-28 09:52:27 -0700
committerGitHub <[email protected]>2022-03-28 16:52:27 +0000
commit5ed963f1e4928eb2df36f230faf7f9d63b51bef1 (patch)
tree00f5a2ba8cf2e3219454f3859041f3c76ea3339a /src
parent9fad09a71c1579009cb94b79e003c437a22f43a5 (diff)
downloadfaker-5ed963f1e4928eb2df36f230faf7f9d63b51bef1.tar.xz
faker-5ed963f1e4928eb2df36f230faf7f9d63b51bef1.zip
fix: force passed locales into faker constructor (#580)
Co-authored-by: Shinigami92 <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/faker.ts18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/faker.ts b/src/faker.ts
index d7ba3f80..142009e1 100644
--- a/src/faker.ts
+++ b/src/faker.ts
@@ -36,7 +36,7 @@ export type UsableLocale = LiteralUnion<KnownLocale>;
export type UsedLocales = Partial<Record<UsableLocale, LocaleDefinition>>;
export interface FakerOptions {
- locales?: UsedLocales;
+ locales: UsedLocales;
locale?: UsableLocale;
localeFallback?: UsableLocale;
}
@@ -81,8 +81,20 @@ export class Faker {
readonly vehicle: Vehicle = new Vehicle(this);
readonly word: Word = new Word(this);
- constructor(opts: FakerOptions = {}) {
- this.locales = this.locales || opts.locales || {};
+ constructor(opts: FakerOptions) {
+ if (!opts) {
+ throw new Error(
+ 'Options with at least one entry in locales must be provided'
+ );
+ }
+
+ if (Object.keys(opts.locales ?? {}).length === 0) {
+ throw new Error(
+ 'At least one entry in locales must be provided in the locales parameter'
+ );
+ }
+
+ this.locales = opts.locales;
this.locale = this.locale || opts.locale || 'en';
this.localeFallback = this.localeFallback || opts.localeFallback || 'en';