aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinigami <[email protected]>2022-02-24 20:07:15 +0100
committerGitHub <[email protected]>2022-02-24 20:07:15 +0100
commit51e24868fea2893d2571d799a68f9cf2f399f279 (patch)
tree4eb518f73fb8590e702ce4f3b4ae3bbb45cdfd9f
parent6c9dcdd03050ef70554fc2bb6ccc0c883fd1edc9 (diff)
downloadfaker-51e24868fea2893d2571d799a68f9cf2f399f279.tar.xz
faker-51e24868fea2893d2571d799a68f9cf2f399f279.zip
chore: move faker into own file (#548)
Co-authored-by: ST-DDT <[email protected]>
-rw-r--r--scripts/generateLocales.ts2
-rw-r--r--src/faker.ts144
-rw-r--r--src/index.ts150
-rw-r--r--src/locale/af_ZA.ts2
-rw-r--r--src/locale/ar.ts2
-rw-r--r--src/locale/az.ts2
-rw-r--r--src/locale/cz.ts2
-rw-r--r--src/locale/de.ts2
-rw-r--r--src/locale/de_AT.ts2
-rw-r--r--src/locale/de_CH.ts2
-rw-r--r--src/locale/el.ts2
-rw-r--r--src/locale/en.ts2
-rw-r--r--src/locale/en_AU.ts2
-rw-r--r--src/locale/en_AU_ocker.ts2
-rw-r--r--src/locale/en_BORK.ts2
-rw-r--r--src/locale/en_CA.ts2
-rw-r--r--src/locale/en_GB.ts2
-rw-r--r--src/locale/en_GH.ts2
-rw-r--r--src/locale/en_IE.ts2
-rw-r--r--src/locale/en_IND.ts2
-rw-r--r--src/locale/en_NG.ts2
-rw-r--r--src/locale/en_US.ts2
-rw-r--r--src/locale/en_ZA.ts2
-rw-r--r--src/locale/es.ts2
-rw-r--r--src/locale/es_MX.ts2
-rw-r--r--src/locale/fa.ts2
-rw-r--r--src/locale/fi.ts2
-rw-r--r--src/locale/fr.ts2
-rw-r--r--src/locale/fr_BE.ts2
-rw-r--r--src/locale/fr_CA.ts2
-rw-r--r--src/locale/fr_CH.ts2
-rw-r--r--src/locale/ge.ts2
-rw-r--r--src/locale/he.ts2
-rw-r--r--src/locale/hr.ts2
-rw-r--r--src/locale/hy.ts2
-rw-r--r--src/locale/id_ID.ts2
-rw-r--r--src/locale/it.ts2
-rw-r--r--src/locale/ja.ts2
-rw-r--r--src/locale/ko.ts2
-rw-r--r--src/locale/lv.ts2
-rw-r--r--src/locale/mk.ts2
-rw-r--r--src/locale/nb_NO.ts2
-rw-r--r--src/locale/ne.ts2
-rw-r--r--src/locale/nl.ts2
-rw-r--r--src/locale/nl_BE.ts2
-rw-r--r--src/locale/pl.ts2
-rw-r--r--src/locale/pt_BR.ts2
-rw-r--r--src/locale/pt_PT.ts2
-rw-r--r--src/locale/ro.ts2
-rw-r--r--src/locale/ru.ts2
-rw-r--r--src/locale/sk.ts2
-rw-r--r--src/locale/sv.ts2
-rw-r--r--src/locale/tr.ts2
-rw-r--r--src/locale/uk.ts2
-rw-r--r--src/locale/ur.ts2
-rw-r--r--src/locale/vi.ts2
-rw-r--r--src/locale/zh_CN.ts2
-rw-r--r--src/locale/zh_TW.ts2
-rw-r--r--src/locale/zu_ZA.ts2
-rw-r--r--test/locale-imports.spec.ts9
60 files changed, 215 insertions, 202 deletions
diff --git a/scripts/generateLocales.ts b/scripts/generateLocales.ts
index 68a5130a..a402bc1e 100644
--- a/scripts/generateLocales.ts
+++ b/scripts/generateLocales.ts
@@ -70,7 +70,7 @@ function generateLocaleFile(locale: string): void {
let content = `
${autoGeneratedCommentHeader}
- import { Faker } from '..';
+ import { Faker } from '../faker';
import ${locale} from '../locales/${locale}';
${locale !== 'en' ? "import en from '../locales/en';" : ''}
diff --git a/src/faker.ts b/src/faker.ts
new file mode 100644
index 00000000..f8d43a7a
--- /dev/null
+++ b/src/faker.ts
@@ -0,0 +1,144 @@
+import { Address } from './address';
+import { Animal } from './animal';
+import { Commerce } from './commerce';
+import { Company } from './company';
+import { Database } from './database';
+import { Datatype } from './datatype';
+import { _Date } from './date';
+import type { LocaleDefinition } from './definitions';
+import { DEFINITIONS } from './definitions';
+import { Fake } from './fake';
+import { Finance } from './finance';
+import { Git } from './git';
+import { Hacker } from './hacker';
+import { Helpers } from './helpers';
+import { Image } from './image';
+import { Internet } from './internet';
+import type { KnownLocale } from './locales';
+import { Lorem } from './lorem';
+import { Mersenne } from './mersenne';
+import { Music } from './music';
+import { Name } from './name';
+import { Phone } from './phone';
+import { Random } from './random';
+import { System } from './system';
+import { Time } from './time';
+import { Unique } from './unique';
+import { Vehicle } from './vehicle';
+import { Word } from './word';
+
+// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-471566609
+type LiteralUnion<T extends U, U = string> = T | (U & { zz_IGNORE_ME?: never });
+
+export type UsableLocale = LiteralUnion<KnownLocale>;
+export type UsedLocales = Partial<Record<UsableLocale, LocaleDefinition>>;
+
+export interface FakerOptions {
+ locales?: UsedLocales;
+ locale?: UsableLocale;
+ localeFallback?: UsableLocale;
+}
+
+export class Faker {
+ locales: UsedLocales;
+ locale: UsableLocale;
+ localeFallback: UsableLocale;
+
+ // Will be lazy init
+ readonly definitions: LocaleDefinition = {} as LocaleDefinition;
+
+ seedValue?: any[] | any;
+
+ readonly fake: Fake['fake'] = new Fake(this).fake;
+ readonly unique: Unique['unique'] = new Unique().unique;
+
+ readonly mersenne: Mersenne = new Mersenne();
+ random: Random = new Random(this);
+
+ readonly helpers: Helpers = new Helpers(this);
+
+ datatype: Datatype = new Datatype(this);
+
+ readonly address: Address = new Address(this);
+ readonly animal: Animal = new Animal(this);
+ readonly commerce: Commerce = new Commerce(this);
+ readonly company: Company = new Company(this);
+ readonly database: Database = new Database(this);
+ readonly date: _Date = new _Date(this);
+ readonly finance = new Finance(this);
+ readonly git: Git = new Git(this);
+ readonly hacker: Hacker = new Hacker(this);
+ // TODO @Shinigami92 2022-01-12: iban was not used
+ // readonly iban = new (require('./iban'))(this);
+ readonly image: Image = new Image(this);
+ readonly internet: Internet = new Internet(this);
+ readonly lorem: Lorem = new Lorem(this);
+ readonly music: Music = new Music(this);
+ readonly name: Name = new Name(this);
+ readonly phone: Phone = new Phone(this);
+ readonly system: System = new System(this);
+ readonly time: Time = new Time();
+ readonly vehicle: Vehicle = new Vehicle(this);
+ readonly word: Word = new Word(this);
+
+ constructor(opts: FakerOptions = {}) {
+ this.locales = this.locales || opts.locales || {};
+ this.locale = this.locale || opts.locale || 'en';
+ this.localeFallback = this.localeFallback || opts.localeFallback || 'en';
+
+ this.loadDefinitions();
+ }
+
+ /**
+ * Load the definitions contained in the locales file for the given types
+ */
+ private loadDefinitions(): void {
+ // TODO @Shinigami92 2022-01-11: Find a way to load this even more dynamically
+ // In a way so that we don't accidentally miss a definition
+ Object.entries(DEFINITIONS).forEach(([t, v]) => {
+ if (typeof this.definitions[t] === 'undefined') {
+ this.definitions[t] = {};
+ }
+
+ if (typeof v === 'string') {
+ this.definitions[t] = v;
+ return;
+ }
+
+ v.forEach((p) => {
+ Object.defineProperty(this.definitions[t], p, {
+ get: () => {
+ if (
+ typeof this.locales[this.locale][t] === 'undefined' ||
+ typeof this.locales[this.locale][t][p] === 'undefined'
+ ) {
+ // certain localization sets contain less data then others.
+ // in the case of a missing definition, use the default localeFallback
+ // to substitute the missing set data
+ // throw new Error('unknown property ' + d + p)
+ return this.locales[this.localeFallback][t][p];
+ } else {
+ // return localized data
+ return this.locales[this.locale][t][p];
+ }
+ },
+ });
+ });
+ });
+ }
+
+ seed(value?: any[] | any): void {
+ this.seedValue = value;
+ this.random = new Random(this, this.seedValue);
+ this.datatype = new Datatype(this, this.seedValue);
+ }
+
+ /**
+ * Set Faker's locale
+ *
+ * @param locale The locale to set (e.g. `en` or `en_AU`, `en_AU_ocker`).
+ */
+ setLocale(locale: UsableLocale): void {
+ this.locale = locale;
+ }
+}
diff --git a/src/index.ts b/src/index.ts
index 2b6f3582..0f4b71ba 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,11 +1,6 @@
-import { Address } from './address';
-import { Animal } from './animal';
-import { Commerce } from './commerce';
-import { Company } from './company';
-import { Database } from './database';
-import { Datatype } from './datatype';
-import { _Date } from './date';
-import type { LocaleDefinition } from './definitions';
+import { Faker } from './faker';
+import allLocales from './locales';
+
export type {
AddressDefinitions,
AnimalDefinitions,
@@ -31,143 +26,8 @@ export type {
VehicleDefinitions,
WordDefinitions,
} from './definitions';
-import { DEFINITIONS } from './definitions';
-import { Fake } from './fake';
-import { Finance } from './finance';
-import { Git } from './git';
-import { Hacker } from './hacker';
-import { Helpers } from './helpers';
-import { Image } from './image';
-import { Internet } from './internet';
-import type { KnownLocale } from './locales';
-import allLocales from './locales';
-import { Lorem } from './lorem';
-import { Mersenne } from './mersenne';
-import { Music } from './music';
-import { Name } from './name';
-import { Phone } from './phone';
-import { Random } from './random';
-import { System } from './system';
-import { Time } from './time';
-import { Unique } from './unique';
-import { Vehicle } from './vehicle';
-import { Word } from './word';
-
-// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-471566609
-type LiteralUnion<T extends U, U = string> = T | (U & { zz_IGNORE_ME?: never });
-
-export type UsableLocale = LiteralUnion<KnownLocale>;
-export type UsedLocales = Partial<Record<UsableLocale, LocaleDefinition>>;
-
-export interface FakerOptions {
- locales?: UsedLocales;
- locale?: UsableLocale;
- localeFallback?: UsableLocale;
-}
-
-export class Faker {
- locales: UsedLocales;
- locale: UsableLocale;
- localeFallback: UsableLocale;
-
- // Will be lazy init
- readonly definitions: LocaleDefinition = {} as LocaleDefinition;
-
- seedValue?: any[] | any;
-
- readonly fake: Fake['fake'] = new Fake(this).fake;
- readonly unique: Unique['unique'] = new Unique().unique;
-
- readonly mersenne: Mersenne = new Mersenne();
- random: Random = new Random(this);
-
- readonly helpers: Helpers = new Helpers(this);
-
- datatype: Datatype = new Datatype(this);
-
- readonly address: Address = new Address(this);
- readonly animal: Animal = new Animal(this);
- readonly commerce: Commerce = new Commerce(this);
- readonly company: Company = new Company(this);
- readonly database: Database = new Database(this);
- readonly date: _Date = new _Date(this);
- readonly finance = new Finance(this);
- readonly git: Git = new Git(this);
- readonly hacker: Hacker = new Hacker(this);
- // TODO @Shinigami92 2022-01-12: iban was not used
- // readonly iban = new (require('./iban'))(this);
- readonly image: Image = new Image(this);
- readonly internet: Internet = new Internet(this);
- readonly lorem: Lorem = new Lorem(this);
- readonly music: Music = new Music(this);
- readonly name: Name = new Name(this);
- readonly phone: Phone = new Phone(this);
- readonly system: System = new System(this);
- readonly time: Time = new Time();
- readonly vehicle: Vehicle = new Vehicle(this);
- readonly word: Word = new Word(this);
-
- constructor(opts: FakerOptions = {}) {
- this.locales = this.locales || opts.locales || {};
- this.locale = this.locale || opts.locale || 'en';
- this.localeFallback = this.localeFallback || opts.localeFallback || 'en';
-
- this.loadDefinitions();
- }
-
- /**
- * Load the definitions contained in the locales file for the given types
- */
- private loadDefinitions(): void {
- // TODO @Shinigami92 2022-01-11: Find a way to load this even more dynamically
- // In a way so that we don't accidentally miss a definition
- Object.entries(DEFINITIONS).forEach(([t, v]) => {
- if (typeof this.definitions[t] === 'undefined') {
- this.definitions[t] = {};
- }
-
- if (typeof v === 'string') {
- this.definitions[t] = v;
- return;
- }
-
- v.forEach((p) => {
- Object.defineProperty(this.definitions[t], p, {
- get: () => {
- if (
- typeof this.locales[this.locale][t] === 'undefined' ||
- typeof this.locales[this.locale][t][p] === 'undefined'
- ) {
- // certain localization sets contain less data then others.
- // in the case of a missing definition, use the default localeFallback
- // to substitute the missing set data
- // throw new Error('unknown property ' + d + p)
- return this.locales[this.localeFallback][t][p];
- } else {
- // return localized data
- return this.locales[this.locale][t][p];
- }
- },
- });
- });
- });
- }
-
- seed(value?: any[] | any): void {
- this.seedValue = value;
- this.random = new Random(this, this.seedValue);
- this.datatype = new Datatype(this, this.seedValue);
- }
-
- /**
- * Set Faker's locale
- *
- * @param locale The locale to set (e.g. `en` or `en_AU`, `en_AU_ocker`).
- */
- setLocale(locale: UsableLocale): void {
- this.locale = locale;
- }
-}
+export type { FakerOptions, UsableLocale, UsedLocales } from './faker';
+export { Faker };
// since we are requiring the top level of faker, load all locales by default
export const faker: Faker = new Faker({
diff --git a/src/locale/af_ZA.ts b/src/locale/af_ZA.ts
index 2054b1ab..c47297fd 100644
--- a/src/locale/af_ZA.ts
+++ b/src/locale/af_ZA.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import af_ZA from '../locales/af_ZA';
import en from '../locales/en';
diff --git a/src/locale/ar.ts b/src/locale/ar.ts
index 51b01285..e396c173 100644
--- a/src/locale/ar.ts
+++ b/src/locale/ar.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import ar from '../locales/ar';
import en from '../locales/en';
diff --git a/src/locale/az.ts b/src/locale/az.ts
index b59c9cd2..3249a33c 100644
--- a/src/locale/az.ts
+++ b/src/locale/az.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import az from '../locales/az';
import en from '../locales/en';
diff --git a/src/locale/cz.ts b/src/locale/cz.ts
index 42be7557..1a246011 100644
--- a/src/locale/cz.ts
+++ b/src/locale/cz.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import cz from '../locales/cz';
import en from '../locales/en';
diff --git a/src/locale/de.ts b/src/locale/de.ts
index ed68f526..3968cb4a 100644
--- a/src/locale/de.ts
+++ b/src/locale/de.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import de from '../locales/de';
import en from '../locales/en';
diff --git a/src/locale/de_AT.ts b/src/locale/de_AT.ts
index 56e5b932..9eefa825 100644
--- a/src/locale/de_AT.ts
+++ b/src/locale/de_AT.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import de_AT from '../locales/de_AT';
import en from '../locales/en';
diff --git a/src/locale/de_CH.ts b/src/locale/de_CH.ts
index 91188431..e3eadf9d 100644
--- a/src/locale/de_CH.ts
+++ b/src/locale/de_CH.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import de_CH from '../locales/de_CH';
import en from '../locales/en';
diff --git a/src/locale/el.ts b/src/locale/el.ts
index 05485513..39c0ec53 100644
--- a/src/locale/el.ts
+++ b/src/locale/el.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import el from '../locales/el';
import en from '../locales/en';
diff --git a/src/locale/en.ts b/src/locale/en.ts
index bbb7f2a4..d003817e 100644
--- a/src/locale/en.ts
+++ b/src/locale/en.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en from '../locales/en';
const faker = new Faker({
diff --git a/src/locale/en_AU.ts b/src/locale/en_AU.ts
index e83c755c..df1ca1d1 100644
--- a/src/locale/en_AU.ts
+++ b/src/locale/en_AU.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_AU from '../locales/en_AU';
import en from '../locales/en';
diff --git a/src/locale/en_AU_ocker.ts b/src/locale/en_AU_ocker.ts
index ef410ced..8966380e 100644
--- a/src/locale/en_AU_ocker.ts
+++ b/src/locale/en_AU_ocker.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_AU_ocker from '../locales/en_AU_ocker';
import en from '../locales/en';
diff --git a/src/locale/en_BORK.ts b/src/locale/en_BORK.ts
index cc0eb5ad..5ddd3998 100644
--- a/src/locale/en_BORK.ts
+++ b/src/locale/en_BORK.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_BORK from '../locales/en_BORK';
import en from '../locales/en';
diff --git a/src/locale/en_CA.ts b/src/locale/en_CA.ts
index 513eccba..064cfb85 100644
--- a/src/locale/en_CA.ts
+++ b/src/locale/en_CA.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_CA from '../locales/en_CA';
import en from '../locales/en';
diff --git a/src/locale/en_GB.ts b/src/locale/en_GB.ts
index be8fbd9f..15d87e28 100644
--- a/src/locale/en_GB.ts
+++ b/src/locale/en_GB.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_GB from '../locales/en_GB';
import en from '../locales/en';
diff --git a/src/locale/en_GH.ts b/src/locale/en_GH.ts
index 4bb0ef6b..91ca84a2 100644
--- a/src/locale/en_GH.ts
+++ b/src/locale/en_GH.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_GH from '../locales/en_GH';
import en from '../locales/en';
diff --git a/src/locale/en_IE.ts b/src/locale/en_IE.ts
index 64e6001a..d10d4d5b 100644
--- a/src/locale/en_IE.ts
+++ b/src/locale/en_IE.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_IE from '../locales/en_IE';
import en from '../locales/en';
diff --git a/src/locale/en_IND.ts b/src/locale/en_IND.ts
index 55444519..5659530e 100644
--- a/src/locale/en_IND.ts
+++ b/src/locale/en_IND.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_IND from '../locales/en_IND';
import en from '../locales/en';
diff --git a/src/locale/en_NG.ts b/src/locale/en_NG.ts
index 8f7be7ce..181ae108 100644
--- a/src/locale/en_NG.ts
+++ b/src/locale/en_NG.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_NG from '../locales/en_NG';
import en from '../locales/en';
diff --git a/src/locale/en_US.ts b/src/locale/en_US.ts
index 24f38345..598f6bca 100644
--- a/src/locale/en_US.ts
+++ b/src/locale/en_US.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_US from '../locales/en_US';
import en from '../locales/en';
diff --git a/src/locale/en_ZA.ts b/src/locale/en_ZA.ts
index f7d1d519..e2c7db6a 100644
--- a/src/locale/en_ZA.ts
+++ b/src/locale/en_ZA.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import en_ZA from '../locales/en_ZA';
import en from '../locales/en';
diff --git a/src/locale/es.ts b/src/locale/es.ts
index e1eb406b..751f4b6e 100644
--- a/src/locale/es.ts
+++ b/src/locale/es.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import es from '../locales/es';
import en from '../locales/en';
diff --git a/src/locale/es_MX.ts b/src/locale/es_MX.ts
index 2d357df4..6f8b1a89 100644
--- a/src/locale/es_MX.ts
+++ b/src/locale/es_MX.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import es_MX from '../locales/es_MX';
import en from '../locales/en';
diff --git a/src/locale/fa.ts b/src/locale/fa.ts
index 778332b7..92b7c2c7 100644
--- a/src/locale/fa.ts
+++ b/src/locale/fa.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import fa from '../locales/fa';
import en from '../locales/en';
diff --git a/src/locale/fi.ts b/src/locale/fi.ts
index c44eb207..33b064a1 100644
--- a/src/locale/fi.ts
+++ b/src/locale/fi.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import fi from '../locales/fi';
import en from '../locales/en';
diff --git a/src/locale/fr.ts b/src/locale/fr.ts
index 503c98ff..3927ff97 100644
--- a/src/locale/fr.ts
+++ b/src/locale/fr.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import fr from '../locales/fr';
import en from '../locales/en';
diff --git a/src/locale/fr_BE.ts b/src/locale/fr_BE.ts
index 7ac95179..0e56bff5 100644
--- a/src/locale/fr_BE.ts
+++ b/src/locale/fr_BE.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import fr_BE from '../locales/fr_BE';
import en from '../locales/en';
diff --git a/src/locale/fr_CA.ts b/src/locale/fr_CA.ts
index 35ffccc1..4fd967da 100644
--- a/src/locale/fr_CA.ts
+++ b/src/locale/fr_CA.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import fr_CA from '../locales/fr_CA';
import en from '../locales/en';
diff --git a/src/locale/fr_CH.ts b/src/locale/fr_CH.ts
index fd8ecc41..abc16114 100644
--- a/src/locale/fr_CH.ts
+++ b/src/locale/fr_CH.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import fr_CH from '../locales/fr_CH';
import en from '../locales/en';
diff --git a/src/locale/ge.ts b/src/locale/ge.ts
index e8872a81..ba589722 100644
--- a/src/locale/ge.ts
+++ b/src/locale/ge.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import ge from '../locales/ge';
import en from '../locales/en';
diff --git a/src/locale/he.ts b/src/locale/he.ts
index ed634c44..ad63ed71 100644
--- a/src/locale/he.ts
+++ b/src/locale/he.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import he from '../locales/he';
import en from '../locales/en';
diff --git a/src/locale/hr.ts b/src/locale/hr.ts
index 9529dfd9..b756d750 100644
--- a/src/locale/hr.ts
+++ b/src/locale/hr.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import hr from '../locales/hr';
import en from '../locales/en';
diff --git a/src/locale/hy.ts b/src/locale/hy.ts
index bd65f9a0..93bd7021 100644
--- a/src/locale/hy.ts
+++ b/src/locale/hy.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import hy from '../locales/hy';
import en from '../locales/en';
diff --git a/src/locale/id_ID.ts b/src/locale/id_ID.ts
index f306cb45..ae17061f 100644
--- a/src/locale/id_ID.ts
+++ b/src/locale/id_ID.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import id_ID from '../locales/id_ID';
import en from '../locales/en';
diff --git a/src/locale/it.ts b/src/locale/it.ts
index f1816c87..bde435d4 100644
--- a/src/locale/it.ts
+++ b/src/locale/it.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import it from '../locales/it';
import en from '../locales/en';
diff --git a/src/locale/ja.ts b/src/locale/ja.ts
index cc58410f..dea9ff68 100644
--- a/src/locale/ja.ts
+++ b/src/locale/ja.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import ja from '../locales/ja';
import en from '../locales/en';
diff --git a/src/locale/ko.ts b/src/locale/ko.ts
index 9b12ebd2..209b1a57 100644
--- a/src/locale/ko.ts
+++ b/src/locale/ko.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import ko from '../locales/ko';
import en from '../locales/en';
diff --git a/src/locale/lv.ts b/src/locale/lv.ts
index d9ff9782..0dd032ad 100644
--- a/src/locale/lv.ts
+++ b/src/locale/lv.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import lv from '../locales/lv';
import en from '../locales/en';
diff --git a/src/locale/mk.ts b/src/locale/mk.ts
index 70bc4208..169598df 100644
--- a/src/locale/mk.ts
+++ b/src/locale/mk.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import mk from '../locales/mk';
import en from '../locales/en';
diff --git a/src/locale/nb_NO.ts b/src/locale/nb_NO.ts
index e570db8d..77b10c4c 100644
--- a/src/locale/nb_NO.ts
+++ b/src/locale/nb_NO.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import nb_NO from '../locales/nb_NO';
import en from '../locales/en';
diff --git a/src/locale/ne.ts b/src/locale/ne.ts
index d6f3461a..3a8a62d2 100644
--- a/src/locale/ne.ts
+++ b/src/locale/ne.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import ne from '../locales/ne';
import en from '../locales/en';
diff --git a/src/locale/nl.ts b/src/locale/nl.ts
index 9358c29b..9d25bd6b 100644
--- a/src/locale/nl.ts
+++ b/src/locale/nl.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import nl from '../locales/nl';
import en from '../locales/en';
diff --git a/src/locale/nl_BE.ts b/src/locale/nl_BE.ts
index c0ed1e30..d7d087ef 100644
--- a/src/locale/nl_BE.ts
+++ b/src/locale/nl_BE.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import nl_BE from '../locales/nl_BE';
import en from '../locales/en';
diff --git a/src/locale/pl.ts b/src/locale/pl.ts
index 476ed746..b4412b7d 100644
--- a/src/locale/pl.ts
+++ b/src/locale/pl.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import pl from '../locales/pl';
import en from '../locales/en';
diff --git a/src/locale/pt_BR.ts b/src/locale/pt_BR.ts
index 7e8bec15..d93e11b4 100644
--- a/src/locale/pt_BR.ts
+++ b/src/locale/pt_BR.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import pt_BR from '../locales/pt_BR';
import en from '../locales/en';
diff --git a/src/locale/pt_PT.ts b/src/locale/pt_PT.ts
index ff3e1c77..ba7d7781 100644
--- a/src/locale/pt_PT.ts
+++ b/src/locale/pt_PT.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import pt_PT from '../locales/pt_PT';
import en from '../locales/en';
diff --git a/src/locale/ro.ts b/src/locale/ro.ts
index 908b1a98..af693cb2 100644
--- a/src/locale/ro.ts
+++ b/src/locale/ro.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import ro from '../locales/ro';
import en from '../locales/en';
diff --git a/src/locale/ru.ts b/src/locale/ru.ts
index 6b140ba8..7aa9d8e5 100644
--- a/src/locale/ru.ts
+++ b/src/locale/ru.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import ru from '../locales/ru';
import en from '../locales/en';
diff --git a/src/locale/sk.ts b/src/locale/sk.ts
index d97f29bc..1816b149 100644
--- a/src/locale/sk.ts
+++ b/src/locale/sk.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import sk from '../locales/sk';
import en from '../locales/en';
diff --git a/src/locale/sv.ts b/src/locale/sv.ts
index eddb1806..98a7ef0d 100644
--- a/src/locale/sv.ts
+++ b/src/locale/sv.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import sv from '../locales/sv';
import en from '../locales/en';
diff --git a/src/locale/tr.ts b/src/locale/tr.ts
index 580f7435..ededd3c7 100644
--- a/src/locale/tr.ts
+++ b/src/locale/tr.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import tr from '../locales/tr';
import en from '../locales/en';
diff --git a/src/locale/uk.ts b/src/locale/uk.ts
index e51c61eb..c3e71b4f 100644
--- a/src/locale/uk.ts
+++ b/src/locale/uk.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import uk from '../locales/uk';
import en from '../locales/en';
diff --git a/src/locale/ur.ts b/src/locale/ur.ts
index 3cfbeade..3c8c3cdb 100644
--- a/src/locale/ur.ts
+++ b/src/locale/ur.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import ur from '../locales/ur';
import en from '../locales/en';
diff --git a/src/locale/vi.ts b/src/locale/vi.ts
index 2f9a0906..a01a216b 100644
--- a/src/locale/vi.ts
+++ b/src/locale/vi.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import vi from '../locales/vi';
import en from '../locales/en';
diff --git a/src/locale/zh_CN.ts b/src/locale/zh_CN.ts
index 4c8b3968..4c2e3b98 100644
--- a/src/locale/zh_CN.ts
+++ b/src/locale/zh_CN.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import zh_CN from '../locales/zh_CN';
import en from '../locales/en';
diff --git a/src/locale/zh_TW.ts b/src/locale/zh_TW.ts
index 24ef4621..781c421a 100644
--- a/src/locale/zh_TW.ts
+++ b/src/locale/zh_TW.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import zh_TW from '../locales/zh_TW';
import en from '../locales/en';
diff --git a/src/locale/zu_ZA.ts b/src/locale/zu_ZA.ts
index 1ae6eab7..9c37d0b5 100644
--- a/src/locale/zu_ZA.ts
+++ b/src/locale/zu_ZA.ts
@@ -3,7 +3,7 @@
* Run 'pnpm run generate:locales' to update.
*/
-import { Faker } from '..';
+import { Faker } from '../faker';
import zu_ZA from '../locales/zu_ZA';
import en from '../locales/en';
diff --git a/test/locale-imports.spec.ts b/test/locale-imports.spec.ts
index 4ca8f40d..6ac66fae 100644
--- a/test/locale-imports.spec.ts
+++ b/test/locale-imports.spec.ts
@@ -10,5 +10,14 @@ describe('locale imports', () => {
expect(faker).toBeDefined();
expect(faker.locale).toBe(locale);
});
+
+ // Internal test to cover `src/locale/*.ts`
+ it(`should be possible to directly require('../locale/${locale}')`, () => {
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
+ const faker = require(`../locale/${locale}`);
+
+ expect(faker).toBeDefined();
+ expect(faker.locale).toBe(locale);
+ });
}
});