diff options
| author | Jason Papakostas <[email protected]> | 2022-03-28 09:52:27 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-03-28 16:52:27 +0000 |
| commit | 5ed963f1e4928eb2df36f230faf7f9d63b51bef1 (patch) | |
| tree | 00f5a2ba8cf2e3219454f3859041f3c76ea3339a /src | |
| parent | 9fad09a71c1579009cb94b79e003c437a22f43a5 (diff) | |
| download | faker-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.ts | 18 |
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'; |
