aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorST-DDT <[email protected]>2023-03-07 10:09:29 +0100
committerGitHub <[email protected]>2023-03-07 09:09:29 +0000
commit9a35dc92260585683132172f10bcdec701ed661a (patch)
tree35a5711ba5a5fbc18a8f62515d1ae8b25af77023 /src
parenta4d5203511e6ea7e26bc8c75baf91ee44387cac0 (diff)
downloadfaker-9a35dc92260585683132172f10bcdec701ed661a.tar.xz
faker-9a35dc92260585683132172f10bcdec701ed661a.zip
refactor!: remove dynamic locale switching support (#1735)
Diffstat (limited to 'src')
-rw-r--r--src/faker.ts279
-rw-r--r--src/index.ts16
-rw-r--r--src/locale/af_ZA.ts7
-rw-r--r--src/locale/ar.ts7
-rw-r--r--src/locale/az.ts7
-rw-r--r--src/locale/cz.ts7
-rw-r--r--src/locale/de.ts7
-rw-r--r--src/locale/de_AT.ts8
-rw-r--r--src/locale/de_CH.ts8
-rw-r--r--src/locale/dv.ts7
-rw-r--r--src/locale/el.ts7
-rw-r--r--src/locale/en.ts6
-rw-r--r--src/locale/en_AU.ts7
-rw-r--r--src/locale/en_AU_ocker.ts8
-rw-r--r--src/locale/en_BORK.ts7
-rw-r--r--src/locale/en_CA.ts7
-rw-r--r--src/locale/en_GB.ts7
-rw-r--r--src/locale/en_GH.ts7
-rw-r--r--src/locale/en_IE.ts7
-rw-r--r--src/locale/en_IN.ts7
-rw-r--r--src/locale/en_NG.ts7
-rw-r--r--src/locale/en_US.ts7
-rw-r--r--src/locale/en_ZA.ts7
-rw-r--r--src/locale/es.ts7
-rw-r--r--src/locale/es_MX.ts8
-rw-r--r--src/locale/fa.ts7
-rw-r--r--src/locale/fi.ts7
-rw-r--r--src/locale/fr.ts7
-rw-r--r--src/locale/fr_BE.ts8
-rw-r--r--src/locale/fr_CA.ts8
-rw-r--r--src/locale/fr_CH.ts8
-rw-r--r--src/locale/fr_LU.ts8
-rw-r--r--src/locale/ge.ts7
-rw-r--r--src/locale/he.ts7
-rw-r--r--src/locale/hr.ts7
-rw-r--r--src/locale/hu.ts7
-rw-r--r--src/locale/hy.ts7
-rw-r--r--src/locale/id_ID.ts7
-rw-r--r--src/locale/index.ts188
-rw-r--r--src/locale/it.ts7
-rw-r--r--src/locale/ja.ts7
-rw-r--r--src/locale/ko.ts7
-rw-r--r--src/locale/lv.ts7
-rw-r--r--src/locale/mk.ts7
-rw-r--r--src/locale/nb_NO.ts7
-rw-r--r--src/locale/ne.ts7
-rw-r--r--src/locale/nl.ts7
-rw-r--r--src/locale/nl_BE.ts8
-rw-r--r--src/locale/pl.ts7
-rw-r--r--src/locale/pt_BR.ts7
-rw-r--r--src/locale/pt_PT.ts7
-rw-r--r--src/locale/ro.ts7
-rw-r--r--src/locale/ru.ts7
-rw-r--r--src/locale/sk.ts7
-rw-r--r--src/locale/sv.ts7
-rw-r--r--src/locale/tr.ts7
-rw-r--r--src/locale/uk.ts7
-rw-r--r--src/locale/ur.ts7
-rw-r--r--src/locale/vi.ts7
-rw-r--r--src/locale/zh_CN.ts7
-rw-r--r--src/locale/zh_TW.ts7
-rw-r--r--src/locale/zu_ZA.ts7
-rw-r--r--src/locales/index.ts246
-rw-r--r--src/modules/location/index.ts8
-rw-r--r--src/modules/random/index.ts16
65 files changed, 488 insertions, 686 deletions
diff --git a/src/faker.ts b/src/faker.ts
index a6072895..6a23cffd 100644
--- a/src/faker.ts
+++ b/src/faker.ts
@@ -3,7 +3,6 @@ import { FakerError } from './errors/faker-error';
import { deprecated } from './internal/deprecated';
import type { Mersenne } from './internal/mersenne/mersenne';
import mersenne from './internal/mersenne/mersenne';
-import type { KnownLocale } from './locales';
import { AirlineModule } from './modules/airline';
import { AnimalModule } from './modules/animal';
import { ColorModule } from './modules/color';
@@ -32,53 +31,12 @@ import { StringModule } from './modules/string';
import { SystemModule } from './modules/system';
import { VehicleModule } from './modules/vehicle';
import { WordModule } from './modules/word';
-import type { LiteralUnion } from './utils/types';
-
-export type UsableLocale = LiteralUnion<KnownLocale>;
-export type UsedLocales = Partial<Record<UsableLocale, LocaleDefinition>>;
-
-export interface FakerOptions {
- locales: UsedLocales;
- locale?: UsableLocale;
- localeFallback?: UsableLocale;
-}
-
-const metadataKeys: ReadonlyArray<keyof LocaleDefinition> = ['title'];
+import { mergeLocales } from './utils/merge-locales';
export class Faker {
- locales: UsedLocales;
- private _locale: UsableLocale;
- private _localeFallback: UsableLocale;
+ readonly definitions: LocaleDefinition;
private _defaultRefDate: () => Date = () => new Date();
- get locale(): UsableLocale {
- return this._locale;
- }
-
- set locale(locale: UsableLocale) {
- if (!this.locales[locale]) {
- throw new FakerError(
- `Locale ${locale} is not supported. You might want to add the requested locale first to \`faker.locales\`.`
- );
- }
-
- this._locale = locale;
- }
-
- get localeFallback(): UsableLocale {
- return this._localeFallback;
- }
-
- set localeFallback(localeFallback: UsableLocale) {
- if (!this.locales[localeFallback]) {
- throw new FakerError(
- `Locale ${localeFallback} is not supported. You might want to add the requested locale first to \`faker.locales\`.`
- );
- }
-
- this._localeFallback = localeFallback;
- }
-
/**
* Gets a new reference date used to generate relative dates.
*/
@@ -103,8 +61,6 @@ export class Faker {
}
}
- readonly definitions: LocaleDefinition = this.initDefinitions();
-
/** @internal */
private readonly _mersenne: Mersenne = mersenne();
@@ -161,91 +117,88 @@ export class Faker {
return this.person;
}
- constructor(opts: FakerOptions) {
- if (!opts) {
- throw new FakerError(
- 'Options with at least one entry in locales must be provided'
- );
- }
-
- if (Object.keys(opts.locales ?? {}).length === 0) {
- throw new FakerError(
- 'At least one entry in locales must be provided in the locales parameter'
- );
- }
-
- this.locales = opts.locales;
- this.locale = opts.locale || 'en';
- this.localeFallback = opts.localeFallback || 'en';
- }
-
/**
- * Creates a Proxy based LocaleDefinition that virtually merges the locales.
+ * Creates a new instance of Faker.
+ *
+ * @param options The options to use.
+ * @param options.locale The locale data to use.
*/
- private initDefinitions(): LocaleDefinition {
- // Returns the first LocaleDefinition[key] in any locale
- const resolveBaseData = (key: keyof LocaleDefinition): unknown =>
- this.locales[this.locale][key] ?? this.locales[this.localeFallback][key];
+ constructor(options: {
+ /**
+ * The locale data to use for this instance.
+ * If an array is provided, the first locale that has a definition for a given property will be used.
+ *
+ * @see mergeLocales
+ */
+ locale: LocaleDefinition | LocaleDefinition[];
+ });
+ /**
+ * Creates a new instance of Faker.
+ *
+ * @param options The options to use.
+ * @param options.locales The locale data to use.
+ * @param options.locale The locale data to use.
+ *
+ * @deprecated Use `new Faker({ locale: [locale, localeFallback] })` instead.
+ */
+ constructor(options: {
+ locales: Record<string, LocaleDefinition>;
+ locale?: string;
+ localeFallback?: string;
+ });
+ // This is somehow required for `ConstructorParameters<typeof Faker>[0]` to work
+ constructor(
+ options:
+ | { locale: LocaleDefinition | LocaleDefinition[] }
+ | {
+ locales: Record<string, LocaleDefinition>;
+ locale?: string;
+ localeFallback?: string;
+ }
+ );
+ constructor(
+ options:
+ | { locale: LocaleDefinition | LocaleDefinition[] }
+ | {
+ locales: Record<string, LocaleDefinition>;
+ locale?: string;
+ localeFallback?: string;
+ }
+ ) {
+ const { locales } = options as {
+ locales: Record<string, LocaleDefinition>;
+ };
+ if (locales != null) {
+ deprecated({
+ deprecated:
+ "new Faker({ locales: {a, b}, locale: 'a', localeFallback: 'b' })",
+ proposed:
+ 'new Faker({ locale: [a, b, ...] }) or new Faker({ locale: a })',
+ since: '8.0',
+ until: '9.0',
+ });
+ const { locale = 'en', localeFallback = 'en' } = options as {
+ locale: string;
+ localeFallback: string;
+ };
+ options = {
+ locale: [locales[locale], locales[localeFallback]],
+ };
+ }
- // Returns the first LocaleDefinition[module][entry] in any locale
- const resolveModuleData = (
- module: keyof LocaleDefinition,
- entry: string
- ): unknown =>
- this.locales[this.locale][module]?.[entry] ??
- this.locales[this.localeFallback][module]?.[entry];
+ let { locale } = options;
- // Returns a proxy that can return the entries for a module (if it exists)
- const moduleLoader = (
- module: keyof LocaleDefinition
- ): Record<string, unknown> | undefined => {
- if (resolveBaseData(module)) {
- return new Proxy(
- {},
- {
- get(target, entry: string): unknown {
- return resolveModuleData(module, entry);
- },
- }
+ if (Array.isArray(locale)) {
+ if (locale.length === 0) {
+ throw new FakerError(
+ 'The locale option must contain at least one locale definition.'
);
- } else {
- return undefined;
}
- };
- return new Proxy({} as LocaleDefinition, {
- get(target: LocaleDefinition, module: string): unknown {
- // Support aliases
- if (module === 'address') {
- module = 'location';
- deprecated({
- deprecated: `faker.helpers.fake('{{address.*}}') or faker.definitions.address`,
- proposed: `faker.helpers.fake('{{location.*}}') or faker.definitions.location`,
- since: '8.0',
- until: '10.0',
- });
- } else if (module === 'name') {
- module = 'person';
- deprecated({
- deprecated: `faker.helpers.fake('{{name.*}}') or faker.definitions.name`,
- proposed: `faker.helpers.fake('{{person.*}}') or faker.definitions.person`,
- since: '8.0',
- until: '10.0',
- });
- }
+ locale = mergeLocales(locale);
+ }
- let result = target[module];
- if (result) {
- return result;
- } else if (metadataKeys.includes(module)) {
- return resolveBaseData(module);
- } else {
- result = moduleLoader(module);
- target[module] = result;
- return result;
- }
- },
- });
+ this.definitions = locale as LocaleDefinition;
}
/**
@@ -320,12 +273,84 @@ export class Faker {
return seed;
}
+ // Pure JS backwards compatibility
+
+ /**
+ * Do NOT use. This property has been removed.
+ *
+ * @deprecated Use the constructor instead.
+ */
+ private get locales(): never {
+ throw new FakerError(
+ 'The locales property has been removed. Please use the constructor instead.'
+ );
+ }
+
+ /**
+ * Do NOT use. This property has been removed.
+ *
+ * @deprecated Use the constructor instead.
+ */
+ private set locales(value: never) {
+ throw new FakerError(
+ 'The locales property has been removed. Please use the constructor instead.'
+ );
+ }
+
+ /**
+ * Do NOT use. This property has been removed.
+ *
+ * @deprecated Use the constructor instead.
+ */
+ private get locale(): never {
+ throw new FakerError(
+ 'The locale property has been removed. Please use the constructor instead.'
+ );
+ }
+
/**
- * Set Faker's locale
+ * Do NOT use. This property has been removed.
*
- * @param locale The locale to set (e.g. `en` or `en_AU`, `en_AU_ocker`).
+ * @deprecated Use the constructor instead.
*/
- setLocale(locale: UsableLocale): void {
- this.locale = locale;
+ private set locale(value: never) {
+ throw new FakerError(
+ 'The locale property has been removed. Please use the constructor instead.'
+ );
+ }
+
+ /**
+ * Do NOT use. This property has been removed.
+ *
+ * @deprecated Use the constructor instead.
+ */
+ private get localeFallback(): never {
+ throw new FakerError(
+ 'The localeFallback property has been removed. Please use the constructor instead.'
+ );
+ }
+
+ /**
+ * Do NOT use. This property has been removed.
+ *
+ * @deprecated Use the constructor instead.
+ */
+ private set localeFallback(value: never) {
+ throw new FakerError(
+ 'The localeFallback property has been removed. Please use the constructor instead.'
+ );
+ }
+
+ /**
+ * Do NOT use. This property has been removed.
+ *
+ * @deprecated Use the constructor instead.
+ */
+ private setLocale(): never {
+ throw new FakerError(
+ 'This method has been removed. Please use the constructor instead.'
+ );
}
}
+
+export type FakerOptions = ConstructorParameters<typeof Faker>[0];
diff --git a/src/index.ts b/src/index.ts
index 2007df1e..27923560 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,6 +1,3 @@
-import { Faker } from './faker';
-import allLocales from './locales';
-
export type {
AirlineDefinitions,
AnimalDefinitions,
@@ -34,7 +31,12 @@ export type {
WordDefinitions,
} from './definitions';
export { FakerError } from './errors/faker-error';
-export type { FakerOptions, UsableLocale, UsedLocales } from './faker';
+export { Faker } from './faker';
+export type { FakerOptions } from './faker';
+export * from './locale';
+export { fakerEN as faker } from './locale';
+export * from './locales';
+export * as allLocales from './locales';
export { Aircraft, AircraftType } from './modules/airline';
export type { AirlineModule } from './modules/airline';
export type { AnimalModule } from './modules/animal';
@@ -81,9 +83,3 @@ export type { SystemModule } from './modules/system';
export type { VehicleModule } from './modules/vehicle';
export type { WordModule } from './modules/word';
export { mergeLocales } from './utils/merge-locales';
-export { Faker };
-
-// since we are requiring the top level of faker, load all locales by default
-export const faker: Faker = new Faker({
- locales: allLocales,
-});
diff --git a/src/locale/af_ZA.ts b/src/locale/af_ZA.ts
index 93ac1bcf..17e0a692 100644
--- a/src/locale/af_ZA.ts
+++ b/src/locale/af_ZA.ts
@@ -8,10 +8,5 @@ import af_ZA from '../locales/af_ZA';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'af_ZA',
- localeFallback: 'en',
- locales: {
- af_ZA,
- en,
- },
+ locale: [af_ZA, en],
});
diff --git a/src/locale/ar.ts b/src/locale/ar.ts
index 83eb4168..2874a6fb 100644
--- a/src/locale/ar.ts
+++ b/src/locale/ar.ts
@@ -8,10 +8,5 @@ import ar from '../locales/ar';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'ar',
- localeFallback: 'en',
- locales: {
- ar,
- en,
- },
+ locale: [ar, en],
});
diff --git a/src/locale/az.ts b/src/locale/az.ts
index b7b1fd6f..7b11a6a9 100644
--- a/src/locale/az.ts
+++ b/src/locale/az.ts
@@ -8,10 +8,5 @@ import az from '../locales/az';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'az',
- localeFallback: 'en',
- locales: {
- az,
- en,
- },
+ locale: [az, en],
});
diff --git a/src/locale/cz.ts b/src/locale/cz.ts
index f6932b0b..c2f85800 100644
--- a/src/locale/cz.ts
+++ b/src/locale/cz.ts
@@ -8,10 +8,5 @@ import cz from '../locales/cz';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'cz',
- localeFallback: 'en',
- locales: {
- cz,
- en,
- },
+ locale: [cz, en],
});
diff --git a/src/locale/de.ts b/src/locale/de.ts
index 47bd5794..09ff3bfa 100644
--- a/src/locale/de.ts
+++ b/src/locale/de.ts
@@ -8,10 +8,5 @@ import de from '../locales/de';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'de',
- localeFallback: 'en',
- locales: {
- de,
- en,
- },
+ locale: [de, en],
});
diff --git a/src/locale/de_AT.ts b/src/locale/de_AT.ts
index 1060b041..b02b50cb 100644
--- a/src/locale/de_AT.ts
+++ b/src/locale/de_AT.ts
@@ -4,14 +4,10 @@
*/
import { Faker } from '../faker';
+import de from '../locales/de';
import de_AT from '../locales/de_AT';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'de_AT',
- localeFallback: 'en',
- locales: {
- de_AT,
- en,
- },
+ locale: [de_AT, de, en],
});
diff --git a/src/locale/de_CH.ts b/src/locale/de_CH.ts
index 2e6b8480..5b866437 100644
--- a/src/locale/de_CH.ts
+++ b/src/locale/de_CH.ts
@@ -4,14 +4,10 @@
*/
import { Faker } from '../faker';
+import de from '../locales/de';
import de_CH from '../locales/de_CH';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'de_CH',
- localeFallback: 'en',
- locales: {
- de_CH,
- en,
- },
+ locale: [de_CH, de, en],
});
diff --git a/src/locale/dv.ts b/src/locale/dv.ts
index 620cb2b9..3d996cc1 100644
--- a/src/locale/dv.ts
+++ b/src/locale/dv.ts
@@ -8,10 +8,5 @@ import dv from '../locales/dv';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'dv',
- localeFallback: 'en',
- locales: {
- dv,
- en,
- },
+ locale: [dv, en],
});
diff --git a/src/locale/el.ts b/src/locale/el.ts
index 0292c601..119403b6 100644
--- a/src/locale/el.ts
+++ b/src/locale/el.ts
@@ -8,10 +8,5 @@ import el from '../locales/el';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'el',
- localeFallback: 'en',
- locales: {
- el,
- en,
- },
+ locale: [el, en],
});
diff --git a/src/locale/en.ts b/src/locale/en.ts
index b857f0ae..1d7db9f5 100644
--- a/src/locale/en.ts
+++ b/src/locale/en.ts
@@ -7,9 +7,5 @@ import { Faker } from '../faker';
import en from '../locales/en';
export const faker = new Faker({
- locale: 'en',
- localeFallback: 'en',
- locales: {
- en,
- },
+ locale: en,
});
diff --git a/src/locale/en_AU.ts b/src/locale/en_AU.ts
index 33d41c4c..01ad19ad 100644
--- a/src/locale/en_AU.ts
+++ b/src/locale/en_AU.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_AU from '../locales/en_AU';
export const faker = new Faker({
- locale: 'en_AU',
- localeFallback: 'en',
- locales: {
- en_AU,
- en,
- },
+ locale: [en_AU, en],
});
diff --git a/src/locale/en_AU_ocker.ts b/src/locale/en_AU_ocker.ts
index 735c3e2c..22c9ae32 100644
--- a/src/locale/en_AU_ocker.ts
+++ b/src/locale/en_AU_ocker.ts
@@ -5,13 +5,9 @@
import { Faker } from '../faker';
import en from '../locales/en';
+import en_AU from '../locales/en_AU';
import en_AU_ocker from '../locales/en_AU_ocker';
export const faker = new Faker({
- locale: 'en_AU_ocker',
- localeFallback: 'en',
- locales: {
- en_AU_ocker,
- en,
- },
+ locale: [en_AU_ocker, en_AU, en],
});
diff --git a/src/locale/en_BORK.ts b/src/locale/en_BORK.ts
index 962f2619..d8776851 100644
--- a/src/locale/en_BORK.ts
+++ b/src/locale/en_BORK.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_BORK from '../locales/en_BORK';
export const faker = new Faker({
- locale: 'en_BORK',
- localeFallback: 'en',
- locales: {
- en_BORK,
- en,
- },
+ locale: [en_BORK, en],
});
diff --git a/src/locale/en_CA.ts b/src/locale/en_CA.ts
index 5b64a4ee..a1c2d158 100644
--- a/src/locale/en_CA.ts
+++ b/src/locale/en_CA.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_CA from '../locales/en_CA';
export const faker = new Faker({
- locale: 'en_CA',
- localeFallback: 'en',
- locales: {
- en_CA,
- en,
- },
+ locale: [en_CA, en],
});
diff --git a/src/locale/en_GB.ts b/src/locale/en_GB.ts
index 7cd2caba..411c0823 100644
--- a/src/locale/en_GB.ts
+++ b/src/locale/en_GB.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_GB from '../locales/en_GB';
export const faker = new Faker({
- locale: 'en_GB',
- localeFallback: 'en',
- locales: {
- en_GB,
- en,
- },
+ locale: [en_GB, en],
});
diff --git a/src/locale/en_GH.ts b/src/locale/en_GH.ts
index d6effe2a..a131a786 100644
--- a/src/locale/en_GH.ts
+++ b/src/locale/en_GH.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_GH from '../locales/en_GH';
export const faker = new Faker({
- locale: 'en_GH',
- localeFallback: 'en',
- locales: {
- en_GH,
- en,
- },
+ locale: [en_GH, en],
});
diff --git a/src/locale/en_IE.ts b/src/locale/en_IE.ts
index 85afdb64..b66c6a45 100644
--- a/src/locale/en_IE.ts
+++ b/src/locale/en_IE.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_IE from '../locales/en_IE';
export const faker = new Faker({
- locale: 'en_IE',
- localeFallback: 'en',
- locales: {
- en_IE,
- en,
- },
+ locale: [en_IE, en],
});
diff --git a/src/locale/en_IN.ts b/src/locale/en_IN.ts
index bb7c21d7..28eb2333 100644
--- a/src/locale/en_IN.ts
+++ b/src/locale/en_IN.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_IN from '../locales/en_IN';
export const faker = new Faker({
- locale: 'en_IN',
- localeFallback: 'en',
- locales: {
- en_IN,
- en,
- },
+ locale: [en_IN, en],
});
diff --git a/src/locale/en_NG.ts b/src/locale/en_NG.ts
index 32802c49..a5a9b5b1 100644
--- a/src/locale/en_NG.ts
+++ b/src/locale/en_NG.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_NG from '../locales/en_NG';
export const faker = new Faker({
- locale: 'en_NG',
- localeFallback: 'en',
- locales: {
- en_NG,
- en,
- },
+ locale: [en_NG, en],
});
diff --git a/src/locale/en_US.ts b/src/locale/en_US.ts
index 558bf4a3..8077c573 100644
--- a/src/locale/en_US.ts
+++ b/src/locale/en_US.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_US from '../locales/en_US';
export const faker = new Faker({
- locale: 'en_US',
- localeFallback: 'en',
- locales: {
- en_US,
- en,
- },
+ locale: [en_US, en],
});
diff --git a/src/locale/en_ZA.ts b/src/locale/en_ZA.ts
index 94f6d76e..3e5b3163 100644
--- a/src/locale/en_ZA.ts
+++ b/src/locale/en_ZA.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import en_ZA from '../locales/en_ZA';
export const faker = new Faker({
- locale: 'en_ZA',
- localeFallback: 'en',
- locales: {
- en_ZA,
- en,
- },
+ locale: [en_ZA, en],
});
diff --git a/src/locale/es.ts b/src/locale/es.ts
index cf4d26c2..0f5116f2 100644
--- a/src/locale/es.ts
+++ b/src/locale/es.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import es from '../locales/es';
export const faker = new Faker({
- locale: 'es',
- localeFallback: 'en',
- locales: {
- es,
- en,
- },
+ locale: [es, en],
});
diff --git a/src/locale/es_MX.ts b/src/locale/es_MX.ts
index 96492e56..5a80a0f0 100644
--- a/src/locale/es_MX.ts
+++ b/src/locale/es_MX.ts
@@ -5,13 +5,9 @@
import { Faker } from '../faker';
import en from '../locales/en';
+import es from '../locales/es';
import es_MX from '../locales/es_MX';
export const faker = new Faker({
- locale: 'es_MX',
- localeFallback: 'en',
- locales: {
- es_MX,
- en,
- },
+ locale: [es_MX, es, en],
});
diff --git a/src/locale/fa.ts b/src/locale/fa.ts
index 6d5a0944..9a8c12de 100644
--- a/src/locale/fa.ts
+++ b/src/locale/fa.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import fa from '../locales/fa';
export const faker = new Faker({
- locale: 'fa',
- localeFallback: 'en',
- locales: {
- fa,
- en,
- },
+ locale: [fa, en],
});
diff --git a/src/locale/fi.ts b/src/locale/fi.ts
index 860ab5ad..06844df4 100644
--- a/src/locale/fi.ts
+++ b/src/locale/fi.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import fi from '../locales/fi';
export const faker = new Faker({
- locale: 'fi',
- localeFallback: 'en',
- locales: {
- fi,
- en,
- },
+ locale: [fi, en],
});
diff --git a/src/locale/fr.ts b/src/locale/fr.ts
index d33c5d1c..f9360a7e 100644
--- a/src/locale/fr.ts
+++ b/src/locale/fr.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import fr from '../locales/fr';
export const faker = new Faker({
- locale: 'fr',
- localeFallback: 'en',
- locales: {
- fr,
- en,
- },
+ locale: [fr, en],
});
diff --git a/src/locale/fr_BE.ts b/src/locale/fr_BE.ts
index c9de78dc..41e2554d 100644
--- a/src/locale/fr_BE.ts
+++ b/src/locale/fr_BE.ts
@@ -5,13 +5,9 @@
import { Faker } from '../faker';
import en from '../locales/en';
+import fr from '../locales/fr';
import fr_BE from '../locales/fr_BE';
export const faker = new Faker({
- locale: 'fr_BE',
- localeFallback: 'en',
- locales: {
- fr_BE,
- en,
- },
+ locale: [fr_BE, fr, en],
});
diff --git a/src/locale/fr_CA.ts b/src/locale/fr_CA.ts
index 573181a3..77e9a227 100644
--- a/src/locale/fr_CA.ts
+++ b/src/locale/fr_CA.ts
@@ -5,13 +5,9 @@
import { Faker } from '../faker';
import en from '../locales/en';
+import fr from '../locales/fr';
import fr_CA from '../locales/fr_CA';
export const faker = new Faker({
- locale: 'fr_CA',
- localeFallback: 'en',
- locales: {
- fr_CA,
- en,
- },
+ locale: [fr_CA, fr, en],
});
diff --git a/src/locale/fr_CH.ts b/src/locale/fr_CH.ts
index 3a914e43..fc61a9f5 100644
--- a/src/locale/fr_CH.ts
+++ b/src/locale/fr_CH.ts
@@ -5,13 +5,9 @@
import { Faker } from '../faker';
import en from '../locales/en';
+import fr from '../locales/fr';
import fr_CH from '../locales/fr_CH';
export const faker = new Faker({
- locale: 'fr_CH',
- localeFallback: 'en',
- locales: {
- fr_CH,
- en,
- },
+ locale: [fr_CH, fr, en],
});
diff --git a/src/locale/fr_LU.ts b/src/locale/fr_LU.ts
index 8e63bfdb..c7bee237 100644
--- a/src/locale/fr_LU.ts
+++ b/src/locale/fr_LU.ts
@@ -5,13 +5,9 @@
import { Faker } from '../faker';
import en from '../locales/en';
+import fr from '../locales/fr';
import fr_LU from '../locales/fr_LU';
export const faker = new Faker({
- locale: 'fr_LU',
- localeFallback: 'en',
- locales: {
- fr_LU,
- en,
- },
+ locale: [fr_LU, fr, en],
});
diff --git a/src/locale/ge.ts b/src/locale/ge.ts
index e1f05865..f33a614a 100644
--- a/src/locale/ge.ts
+++ b/src/locale/ge.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import ge from '../locales/ge';
export const faker = new Faker({
- locale: 'ge',
- localeFallback: 'en',
- locales: {
- ge,
- en,
- },
+ locale: [ge, en],
});
diff --git a/src/locale/he.ts b/src/locale/he.ts
index b4c1b9c9..a7dca5f9 100644
--- a/src/locale/he.ts
+++ b/src/locale/he.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import he from '../locales/he';
export const faker = new Faker({
- locale: 'he',
- localeFallback: 'en',
- locales: {
- he,
- en,
- },
+ locale: [he, en],
});
diff --git a/src/locale/hr.ts b/src/locale/hr.ts
index d9aa1348..a210046c 100644
--- a/src/locale/hr.ts
+++ b/src/locale/hr.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import hr from '../locales/hr';
export const faker = new Faker({
- locale: 'hr',
- localeFallback: 'en',
- locales: {
- hr,
- en,
- },
+ locale: [hr, en],
});
diff --git a/src/locale/hu.ts b/src/locale/hu.ts
index f9d9f555..de5613dc 100644
--- a/src/locale/hu.ts
+++ b/src/locale/hu.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import hu from '../locales/hu';
export const faker = new Faker({
- locale: 'hu',
- localeFallback: 'en',
- locales: {
- hu,
- en,
- },
+ locale: [hu, en],
});
diff --git a/src/locale/hy.ts b/src/locale/hy.ts
index 724c1406..d7d72c3b 100644
--- a/src/locale/hy.ts
+++ b/src/locale/hy.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import hy from '../locales/hy';
export const faker = new Faker({
- locale: 'hy',
- localeFallback: 'en',
- locales: {
- hy,
- en,
- },
+ locale: [hy, en],
});
diff --git a/src/locale/id_ID.ts b/src/locale/id_ID.ts
index eafc0c52..6f481d83 100644
--- a/src/locale/id_ID.ts
+++ b/src/locale/id_ID.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import id_ID from '../locales/id_ID';
export const faker = new Faker({
- locale: 'id_ID',
- localeFallback: 'en',
- locales: {
- id_ID,
- en,
- },
+ locale: [id_ID, en],
});
diff --git a/src/locale/index.ts b/src/locale/index.ts
new file mode 100644
index 00000000..8131e355
--- /dev/null
+++ b/src/locale/index.ts
@@ -0,0 +1,188 @@
+/*
+ * This file is automatically generated.
+ * Run 'pnpm run generate:locales' to update.
+ */
+
+import { faker as fakerAF_ZA } from './af_ZA';
+import { faker as fakerAR } from './ar';
+import { faker as fakerAZ } from './az';
+import { faker as fakerCZ } from './cz';
+import { faker as fakerDE } from './de';
+import { faker as fakerDE_AT } from './de_AT';
+import { faker as fakerDE_CH } from './de_CH';
+import { faker as fakerDV } from './dv';
+import { faker as fakerEL } from './el';
+import { faker as fakerEN } from './en';
+import { faker as fakerEN_AU } from './en_AU';
+import { faker as fakerEN_AU_ocker } from './en_AU_ocker';
+import { faker as fakerEN_BORK } from './en_BORK';
+import { faker as fakerEN_CA } from './en_CA';
+import { faker as fakerEN_GB } from './en_GB';
+import { faker as fakerEN_GH } from './en_GH';
+import { faker as fakerEN_IE } from './en_IE';
+import { faker as fakerEN_IN } from './en_IN';
+import { faker as fakerEN_NG } from './en_NG';
+import { faker as fakerEN_US } from './en_US';
+import { faker as fakerEN_ZA } from './en_ZA';
+import { faker as fakerES } from './es';
+import { faker as fakerES_MX } from './es_MX';
+import { faker as fakerFA } from './fa';
+import { faker as fakerFI } from './fi';
+import { faker as fakerFR } from './fr';
+import { faker as fakerFR_BE } from './fr_BE';
+import { faker as fakerFR_CA } from './fr_CA';
+import { faker as fakerFR_CH } from './fr_CH';
+import { faker as fakerFR_LU } from './fr_LU';
+import { faker as fakerGE } from './ge';
+import { faker as fakerHE } from './he';
+import { faker as fakerHR } from './hr';
+import { faker as fakerHU } from './hu';
+import { faker as fakerHY } from './hy';
+import { faker as fakerID_ID } from './id_ID';
+import { faker as fakerIT } from './it';
+import { faker as fakerJA } from './ja';
+import { faker as fakerKO } from './ko';
+import { faker as fakerLV } from './lv';
+import { faker as fakerMK } from './mk';
+import { faker as fakerNB_NO } from './nb_NO';
+import { faker as fakerNE } from './ne';
+import { faker as fakerNL } from './nl';
+import { faker as fakerNL_BE } from './nl_BE';
+import { faker as fakerPL } from './pl';
+import { faker as fakerPT_BR } from './pt_BR';
+import { faker as fakerPT_PT } from './pt_PT';
+import { faker as fakerRO } from './ro';
+import { faker as fakerRU } from './ru';
+import { faker as fakerSK } from './sk';
+import { faker as fakerSV } from './sv';
+import { faker as fakerTR } from './tr';
+import { faker as fakerUK } from './uk';
+import { faker as fakerUR } from './ur';
+import { faker as fakerVI } from './vi';
+import { faker as fakerZH_CN } from './zh_CN';
+import { faker as fakerZH_TW } from './zh_TW';
+import { faker as fakerZU_ZA } from './zu_ZA';
+
+export {
+ fakerAF_ZA,
+ fakerAR,
+ fakerAZ,
+ fakerCZ,
+ fakerDE,
+ fakerDE_AT,
+ fakerDE_CH,
+ fakerDV,
+ fakerEL,
+ fakerEN,
+ fakerEN_AU,
+ fakerEN_AU_ocker,
+ fakerEN_BORK,
+ fakerEN_CA,
+ fakerEN_GB,
+ fakerEN_GH,
+ fakerEN_IE,
+ fakerEN_IN,
+ fakerEN_NG,
+ fakerEN_US,
+ fakerEN_ZA,
+ fakerES,
+ fakerES_MX,
+ fakerFA,
+ fakerFI,
+ fakerFR,
+ fakerFR_BE,
+ fakerFR_CA,
+ fakerFR_CH,
+ fakerFR_LU,
+ fakerGE,
+ fakerHE,
+ fakerHR,
+ fakerHU,
+ fakerHY,
+ fakerID_ID,
+ fakerIT,
+ fakerJA,
+ fakerKO,
+ fakerLV,
+ fakerMK,
+ fakerNB_NO,
+ fakerNE,
+ fakerNL,
+ fakerNL_BE,
+ fakerPL,
+ fakerPT_BR,
+ fakerPT_PT,
+ fakerRO,
+ fakerRU,
+ fakerSK,
+ fakerSV,
+ fakerTR,
+ fakerUK,
+ fakerUR,
+ fakerVI,
+ fakerZH_CN,
+ fakerZH_TW,
+ fakerZU_ZA,
+};
+
+export const allFakers = {
+ af_ZA: fakerAF_ZA,
+ ar: fakerAR,
+ az: fakerAZ,
+ cz: fakerCZ,
+ de: fakerDE,
+ de_AT: fakerDE_AT,
+ de_CH: fakerDE_CH,
+ dv: fakerDV,
+ el: fakerEL,
+ en: fakerEN,
+ en_AU: fakerEN_AU,
+ en_AU_ocker: fakerEN_AU_ocker,
+ en_BORK: fakerEN_BORK,
+ en_CA: fakerEN_CA,
+ en_GB: fakerEN_GB,
+ en_GH: fakerEN_GH,
+ en_IE: fakerEN_IE,
+ en_IN: fakerEN_IN,
+ en_NG: fakerEN_NG,
+ en_US: fakerEN_US,
+ en_ZA: fakerEN_ZA,
+ es: fakerES,
+ es_MX: fakerES_MX,
+ fa: fakerFA,
+ fi: fakerFI,
+ fr: fakerFR,
+ fr_BE: fakerFR_BE,
+ fr_CA: fakerFR_CA,
+ fr_CH: fakerFR_CH,
+ fr_LU: fakerFR_LU,
+ ge: fakerGE,
+ he: fakerHE,
+ hr: fakerHR,
+ hu: fakerHU,
+ hy: fakerHY,
+ id_ID: fakerID_ID,
+ it: fakerIT,
+ ja: fakerJA,
+ ko: fakerKO,
+ lv: fakerLV,
+ mk: fakerMK,
+ nb_NO: fakerNB_NO,
+ ne: fakerNE,
+ nl: fakerNL,
+ nl_BE: fakerNL_BE,
+ pl: fakerPL,
+ pt_BR: fakerPT_BR,
+ pt_PT: fakerPT_PT,
+ ro: fakerRO,
+ ru: fakerRU,
+ sk: fakerSK,
+ sv: fakerSV,
+ tr: fakerTR,
+ uk: fakerUK,
+ ur: fakerUR,
+ vi: fakerVI,
+ zh_CN: fakerZH_CN,
+ zh_TW: fakerZH_TW,
+ zu_ZA: fakerZU_ZA,
+} as const;
diff --git a/src/locale/it.ts b/src/locale/it.ts
index b6df80e8..bff0a521 100644
--- a/src/locale/it.ts
+++ b/src/locale/it.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import it from '../locales/it';
export const faker = new Faker({
- locale: 'it',
- localeFallback: 'en',
- locales: {
- it,
- en,
- },
+ locale: [it, en],
});
diff --git a/src/locale/ja.ts b/src/locale/ja.ts
index f24109df..8a9a866c 100644
--- a/src/locale/ja.ts
+++ b/src/locale/ja.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import ja from '../locales/ja';
export const faker = new Faker({
- locale: 'ja',
- localeFallback: 'en',
- locales: {
- ja,
- en,
- },
+ locale: [ja, en],
});
diff --git a/src/locale/ko.ts b/src/locale/ko.ts
index 64b0b3e7..eaa9e3ff 100644
--- a/src/locale/ko.ts
+++ b/src/locale/ko.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import ko from '../locales/ko';
export const faker = new Faker({
- locale: 'ko',
- localeFallback: 'en',
- locales: {
- ko,
- en,
- },
+ locale: [ko, en],
});
diff --git a/src/locale/lv.ts b/src/locale/lv.ts
index 80ed9156..dc9f4327 100644
--- a/src/locale/lv.ts
+++ b/src/locale/lv.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import lv from '../locales/lv';
export const faker = new Faker({
- locale: 'lv',
- localeFallback: 'en',
- locales: {
- lv,
- en,
- },
+ locale: [lv, en],
});
diff --git a/src/locale/mk.ts b/src/locale/mk.ts
index 91199ba4..18981c46 100644
--- a/src/locale/mk.ts
+++ b/src/locale/mk.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import mk from '../locales/mk';
export const faker = new Faker({
- locale: 'mk',
- localeFallback: 'en',
- locales: {
- mk,
- en,
- },
+ locale: [mk, en],
});
diff --git a/src/locale/nb_NO.ts b/src/locale/nb_NO.ts
index ee4b561c..3dcc5a5c 100644
--- a/src/locale/nb_NO.ts
+++ b/src/locale/nb_NO.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import nb_NO from '../locales/nb_NO';
export const faker = new Faker({
- locale: 'nb_NO',
- localeFallback: 'en',
- locales: {
- nb_NO,
- en,
- },
+ locale: [nb_NO, en],
});
diff --git a/src/locale/ne.ts b/src/locale/ne.ts
index ebc47246..e75adb0c 100644
--- a/src/locale/ne.ts
+++ b/src/locale/ne.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import ne from '../locales/ne';
export const faker = new Faker({
- locale: 'ne',
- localeFallback: 'en',
- locales: {
- ne,
- en,
- },
+ locale: [ne, en],
});
diff --git a/src/locale/nl.ts b/src/locale/nl.ts
index c8f6a649..3965b754 100644
--- a/src/locale/nl.ts
+++ b/src/locale/nl.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import nl from '../locales/nl';
export const faker = new Faker({
- locale: 'nl',
- localeFallback: 'en',
- locales: {
- nl,
- en,
- },
+ locale: [nl, en],
});
diff --git a/src/locale/nl_BE.ts b/src/locale/nl_BE.ts
index dd227f4e..4b6cb7aa 100644
--- a/src/locale/nl_BE.ts
+++ b/src/locale/nl_BE.ts
@@ -5,13 +5,9 @@
import { Faker } from '../faker';
import en from '../locales/en';
+import nl from '../locales/nl';
import nl_BE from '../locales/nl_BE';
export const faker = new Faker({
- locale: 'nl_BE',
- localeFallback: 'en',
- locales: {
- nl_BE,
- en,
- },
+ locale: [nl_BE, nl, en],
});
diff --git a/src/locale/pl.ts b/src/locale/pl.ts
index 44db8e40..875ac5ec 100644
--- a/src/locale/pl.ts
+++ b/src/locale/pl.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import pl from '../locales/pl';
export const faker = new Faker({
- locale: 'pl',
- localeFallback: 'en',
- locales: {
- pl,
- en,
- },
+ locale: [pl, en],
});
diff --git a/src/locale/pt_BR.ts b/src/locale/pt_BR.ts
index 3711d3f6..5a4725d4 100644
--- a/src/locale/pt_BR.ts
+++ b/src/locale/pt_BR.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import pt_BR from '../locales/pt_BR';
export const faker = new Faker({
- locale: 'pt_BR',
- localeFallback: 'en',
- locales: {
- pt_BR,
- en,
- },
+ locale: [pt_BR, en],
});
diff --git a/src/locale/pt_PT.ts b/src/locale/pt_PT.ts
index 915092ab..675e9ada 100644
--- a/src/locale/pt_PT.ts
+++ b/src/locale/pt_PT.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import pt_PT from '../locales/pt_PT';
export const faker = new Faker({
- locale: 'pt_PT',
- localeFallback: 'en',
- locales: {
- pt_PT,
- en,
- },
+ locale: [pt_PT, en],
});
diff --git a/src/locale/ro.ts b/src/locale/ro.ts
index 2903e01d..b9b36836 100644
--- a/src/locale/ro.ts
+++ b/src/locale/ro.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import ro from '../locales/ro';
export const faker = new Faker({
- locale: 'ro',
- localeFallback: 'en',
- locales: {
- ro,
- en,
- },
+ locale: [ro, en],
});
diff --git a/src/locale/ru.ts b/src/locale/ru.ts
index 43334221..3e360255 100644
--- a/src/locale/ru.ts
+++ b/src/locale/ru.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import ru from '../locales/ru';
export const faker = new Faker({
- locale: 'ru',
- localeFallback: 'en',
- locales: {
- ru,
- en,
- },
+ locale: [ru, en],
});
diff --git a/src/locale/sk.ts b/src/locale/sk.ts
index 2816c16e..8f6573a9 100644
--- a/src/locale/sk.ts
+++ b/src/locale/sk.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import sk from '../locales/sk';
export const faker = new Faker({
- locale: 'sk',
- localeFallback: 'en',
- locales: {
- sk,
- en,
- },
+ locale: [sk, en],
});
diff --git a/src/locale/sv.ts b/src/locale/sv.ts
index 41c8f4e3..b459b35d 100644
--- a/src/locale/sv.ts
+++ b/src/locale/sv.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import sv from '../locales/sv';
export const faker = new Faker({
- locale: 'sv',
- localeFallback: 'en',
- locales: {
- sv,
- en,
- },
+ locale: [sv, en],
});
diff --git a/src/locale/tr.ts b/src/locale/tr.ts
index 0aa4a51a..30308952 100644
--- a/src/locale/tr.ts
+++ b/src/locale/tr.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import tr from '../locales/tr';
export const faker = new Faker({
- locale: 'tr',
- localeFallback: 'en',
- locales: {
- tr,
- en,
- },
+ locale: [tr, en],
});
diff --git a/src/locale/uk.ts b/src/locale/uk.ts
index ec40da8f..fe35122d 100644
--- a/src/locale/uk.ts
+++ b/src/locale/uk.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import uk from '../locales/uk';
export const faker = new Faker({
- locale: 'uk',
- localeFallback: 'en',
- locales: {
- uk,
- en,
- },
+ locale: [uk, en],
});
diff --git a/src/locale/ur.ts b/src/locale/ur.ts
index f08be161..dd853d28 100644
--- a/src/locale/ur.ts
+++ b/src/locale/ur.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import ur from '../locales/ur';
export const faker = new Faker({
- locale: 'ur',
- localeFallback: 'en',
- locales: {
- ur,
- en,
- },
+ locale: [ur, en],
});
diff --git a/src/locale/vi.ts b/src/locale/vi.ts
index 96c888af..2525260a 100644
--- a/src/locale/vi.ts
+++ b/src/locale/vi.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import vi from '../locales/vi';
export const faker = new Faker({
- locale: 'vi',
- localeFallback: 'en',
- locales: {
- vi,
- en,
- },
+ locale: [vi, en],
});
diff --git a/src/locale/zh_CN.ts b/src/locale/zh_CN.ts
index 207ede77..11c63265 100644
--- a/src/locale/zh_CN.ts
+++ b/src/locale/zh_CN.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import zh_CN from '../locales/zh_CN';
export const faker = new Faker({
- locale: 'zh_CN',
- localeFallback: 'en',
- locales: {
- zh_CN,
- en,
- },
+ locale: [zh_CN, en],
});
diff --git a/src/locale/zh_TW.ts b/src/locale/zh_TW.ts
index dd36aa2e..7eefd1b6 100644
--- a/src/locale/zh_TW.ts
+++ b/src/locale/zh_TW.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import zh_TW from '../locales/zh_TW';
export const faker = new Faker({
- locale: 'zh_TW',
- localeFallback: 'en',
- locales: {
- zh_TW,
- en,
- },
+ locale: [zh_TW, en],
});
diff --git a/src/locale/zu_ZA.ts b/src/locale/zu_ZA.ts
index df595ff2..145ff94a 100644
--- a/src/locale/zu_ZA.ts
+++ b/src/locale/zu_ZA.ts
@@ -8,10 +8,5 @@ import en from '../locales/en';
import zu_ZA from '../locales/zu_ZA';
export const faker = new Faker({
- locale: 'zu_ZA',
- localeFallback: 'en',
- locales: {
- zu_ZA,
- en,
- },
+ locale: [zu_ZA, en],
});
diff --git a/src/locales/index.ts b/src/locales/index.ts
index 213442d3..f5f2ca0f 100644
--- a/src/locales/index.ts
+++ b/src/locales/index.ts
@@ -3,190 +3,62 @@
* Run 'pnpm run generate:locales' to update.
*/
-import type { LocaleDefinition } from '..';
-import af_ZA from './af_ZA';
-import ar from './ar';
-import az from './az';
-import cz from './cz';
-import de from './de';
-import de_AT from './de_AT';
-import de_CH from './de_CH';
-import dv from './dv';
-import el from './el';
-import en from './en';
-import en_AU from './en_AU';
-import en_AU_ocker from './en_AU_ocker';
-import en_BORK from './en_BORK';
-import en_CA from './en_CA';
-import en_GB from './en_GB';
-import en_GH from './en_GH';
-import en_IE from './en_IE';
-import en_IN from './en_IN';
-import en_NG from './en_NG';
-import en_US from './en_US';
-import en_ZA from './en_ZA';
-import es from './es';
-import es_MX from './es_MX';
-import fa from './fa';
-import fi from './fi';
-import fr from './fr';
-import fr_BE from './fr_BE';
-import fr_CA from './fr_CA';
-import fr_CH from './fr_CH';
-import fr_LU from './fr_LU';
-import ge from './ge';
-import he from './he';
-import hr from './hr';
-import hu from './hu';
-import hy from './hy';
-import id_ID from './id_ID';
-import it from './it';
-import ja from './ja';
-import ko from './ko';
-import lv from './lv';
-import mk from './mk';
-import nb_NO from './nb_NO';
-import ne from './ne';
-import nl from './nl';
-import nl_BE from './nl_BE';
-import pl from './pl';
-import pt_BR from './pt_BR';
-import pt_PT from './pt_PT';
-import ro from './ro';
-import ru from './ru';
-import sk from './sk';
-import sv from './sv';
-import tr from './tr';
-import uk from './uk';
-import ur from './ur';
-import vi from './vi';
-import zh_CN from './zh_CN';
-import zh_TW from './zh_TW';
-import zu_ZA from './zu_ZA';
-
-export type KnownLocale =
- | 'af_ZA'
- | 'ar'
- | 'az'
- | 'cz'
- | 'de'
- | 'de_AT'
- | 'de_CH'
- | 'dv'
- | 'el'
- | 'en'
- | 'en_AU'
- | 'en_AU_ocker'
- | 'en_BORK'
- | 'en_CA'
- | 'en_GB'
- | 'en_GH'
- | 'en_IE'
- | 'en_IN'
- | 'en_NG'
- | 'en_US'
- | 'en_ZA'
- | 'es'
- | 'es_MX'
- | 'fa'
- | 'fi'
- | 'fr'
- | 'fr_BE'
- | 'fr_CA'
- | 'fr_CH'
- | 'fr_LU'
- | 'ge'
- | 'he'
- | 'hr'
- | 'hu'
- | 'hy'
- | 'id_ID'
- | 'it'
- | 'ja'
- | 'ko'
- | 'lv'
- | 'mk'
- | 'nb_NO'
- | 'ne'
- | 'nl'
- | 'nl_BE'
- | 'pl'
- | 'pt_BR'
- | 'pt_PT'
- | 'ro'
- | 'ru'
- | 'sk'
- | 'sv'
- | 'tr'
- | 'uk'
- | 'ur'
- | 'vi'
- | 'zh_CN'
- | 'zh_TW'
- | 'zu_ZA';
-
-export type KnownLocales = Record<KnownLocale, LocaleDefinition>;
-
-const locales: KnownLocales = {
- af_ZA,
- ar,
- az,
- cz,
- de,
- de_AT,
- de_CH,
- dv,
- el,
- en,
- en_AU,
- en_AU_ocker,
- en_BORK,
- en_CA,
- en_GB,
- en_GH,
- en_IE,
- en_IN,
- en_NG,
- en_US,
- en_ZA,
- es,
- es_MX,
- fa,
- fi,
- fr,
- fr_BE,
- fr_CA,
- fr_CH,
- fr_LU,
- ge,
- he,
- hr,
- hu,
- hy,
- id_ID,
- it,
- ja,
- ko,
- lv,
- mk,
- nb_NO,
- ne,
- nl,
- nl_BE,
- pl,
- pt_BR,
- pt_PT,
- ro,
- ru,
- sk,
- sv,
- tr,
- uk,
- ur,
- vi,
- zh_CN,
- zh_TW,
- zu_ZA,
-};
-
-export default locales;
+export { default as af_ZA } from './af_ZA';
+export { default as ar } from './ar';
+export { default as az } from './az';
+export { default as cz } from './cz';
+export { default as de } from './de';
+export { default as de_AT } from './de_AT';
+export { default as de_CH } from './de_CH';
+export { default as dv } from './dv';
+export { default as el } from './el';
+export { default as en } from './en';
+export { default as en_AU } from './en_AU';
+export { default as en_AU_ocker } from './en_AU_ocker';
+export { default as en_BORK } from './en_BORK';
+export { default as en_CA } from './en_CA';
+export { default as en_GB } from './en_GB';
+export { default as en_GH } from './en_GH';
+export { default as en_IE } from './en_IE';
+export { default as en_IN } from './en_IN';
+export { default as en_NG } from './en_NG';
+export { default as en_US } from './en_US';
+export { default as en_ZA } from './en_ZA';
+export { default as es } from './es';
+export { default as es_MX } from './es_MX';
+export { default as fa } from './fa';
+export { default as fi } from './fi';
+export { default as fr } from './fr';
+export { default as fr_BE } from './fr_BE';
+export { default as fr_CA } from './fr_CA';
+export { default as fr_CH } from './fr_CH';
+export { default as fr_LU } from './fr_LU';
+export { default as ge } from './ge';
+export { default as he } from './he';
+export { default as hr } from './hr';
+export { default as hu } from './hu';
+export { default as hy } from './hy';
+export { default as id_ID } from './id_ID';
+export { default as it } from './it';
+export { default as ja } from './ja';
+export { default as ko } from './ko';
+export { default as lv } from './lv';
+export { default as mk } from './mk';
+export { default as nb_NO } from './nb_NO';
+export { default as ne } from './ne';
+export { default as nl } from './nl';
+export { default as nl_BE } from './nl_BE';
+export { default as pl } from './pl';
+export { default as pt_BR } from './pt_BR';
+export { default as pt_PT } from './pt_PT';
+export { default as ro } from './ro';
+export { default as ru } from './ru';
+export { default as sk } from './sk';
+export { default as sv } from './sv';
+export { default as tr } from './tr';
+export { default as uk } from './uk';
+export { default as ur } from './ur';
+export { default as vi } from './vi';
+export { default as zh_CN } from './zh_CN';
+export { default as zh_TW } from './zh_TW';
+export { default as zu_ZA } from './zu_ZA';
diff --git a/src/modules/location/index.ts b/src/modules/location/index.ts
index 2025beac..fb902588 100644
--- a/src/modules/location/index.ts
+++ b/src/modules/location/index.ts
@@ -72,8 +72,8 @@ export class LocationModule {
* If not specified, a random zip code is generated according to the locale's zip format.
*
* @example
- * fakerUS.location.zipCodeByState("AK") // '99595'
- * fakerUS.location.zipCodeByState("??") // '47683-9880'
+ * fakerEN_US.location.zipCodeByState("AK") // '99595'
+ * fakerEN_US.location.zipCodeByState("??") // '47683-9880'
*
* @since 8.0.0
*/
@@ -107,7 +107,7 @@ export class LocationModule {
*
* @example
* faker.location.city() // 'East Jarretmouth'
- * faker.locale = 'de'; faker.location.city() // 'Bad Lilianadorf'
+ * fakerDE.location.city() // 'Bad Lilianadorf'
*
* @since 8.0.0
*/
@@ -120,7 +120,7 @@ export class LocationModule {
*
* @example
* faker.location.cityName() // 'San Rafael'
- * faker.locale = 'de'; faker.location.cityName() // 'Nürnberg'
+ * fakerDE.location.cityName() // 'Nürnberg'
*
* @since 8.0.0
*/
diff --git a/src/modules/random/index.ts b/src/modules/random/index.ts
index bf1c4d22..a2847bbc 100644
--- a/src/modules/random/index.ts
+++ b/src/modules/random/index.ts
@@ -1,4 +1,5 @@
import type { Faker } from '../..';
+import { FakerError } from '../../errors/faker-error';
import { deprecated } from '../../internal/deprecated';
import type { LiteralUnion } from '../../utils/types';
import type {
@@ -171,16 +172,21 @@ export class RandomModule {
}
/**
- * Returns a random locale, that is available in this faker instance.
- * You can use the returned locale with `faker.setLocale(result)`.
+ * Do NOT use. This property has been removed.
*
* @example
- * faker.random.locale() // 'el'
+ * faker.helpers.objectKey(allLocales)
+ * faker.helpers.objectValue(allFakers)
*
* @since 3.1.0
+ *
+ * @deprecated Use `faker.helpers.objectKey(allLocales/allFakers)` instead.
*/
- locale(): string {
- return this.faker.helpers.arrayElement(Object.keys(this.faker.locales));
+ private locale(): never {
+ // We cannot invoke this ourselves, because this would link to all locale data and increase the bundle size by a lot.
+ throw new FakerError(
+ 'This method has been removed. Please use `faker.helpers.objectKey(allLocales/allFakers)` instead.'
+ );
}
/**