aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Mayer <[email protected]>2023-06-17 13:20:52 +0700
committerGitHub <[email protected]>2023-06-17 06:20:52 +0000
commitfd8cfe53fd59b89f91a07327711faafdd821999e (patch)
treea9414f6c57cde9068e451633e10cdc93f0068277
parent19635a7ef3381a475185a2857b59f943dee9be54 (diff)
downloadfaker-fd8cfe53fd59b89f91a07327711faafdd821999e.tar.xz
faker-fd8cfe53fd59b89f91a07327711faafdd821999e.zip
feat(metadata): add method to access metadata (#2143)
-rw-r--r--src/faker.ts15
-rw-r--r--test/faker.spec.ts8
2 files changed, 22 insertions, 1 deletions
diff --git a/src/faker.ts b/src/faker.ts
index f227643e..cb56ea61 100644
--- a/src/faker.ts
+++ b/src/faker.ts
@@ -1,4 +1,4 @@
-import type { LocaleDefinition } from './definitions';
+import type { LocaleDefinition, MetadataDefinition } from './definitions';
import { FakerError } from './errors/faker-error';
import { deprecated } from './internal/deprecated';
import type { Mersenne } from './internal/mersenne/mersenne';
@@ -458,6 +458,19 @@ export class Faker {
return seed;
}
+ /**
+ * Returns an object with metadata about the current locale.
+ *
+ * @example
+ * import { faker, fakerES_MX } from '@faker-js/faker';
+ * // const { faker, fakerES_MX } = require("@faker-js/faker")
+ * faker.getMetadata(); // { title: 'English', code: 'en', language: 'en', endonym: 'English', dir: 'ltr', script: 'Latn' }
+ * fakerES_MX.getMetadata(); // { title: 'Spanish (Mexico)', code: 'es_MX', language: 'es', endonym: 'Español (México)', dir: 'ltr', script: 'Latn', country: 'MX' }
+ */
+ getMetadata(): MetadataDefinition {
+ return this.rawDefinitions.metadata ?? {};
+ }
+
// Pure JS backwards compatibility
/**
diff --git a/test/faker.spec.ts b/test/faker.spec.ts
index 207dac4a..7a305c94 100644
--- a/test/faker.spec.ts
+++ b/test/faker.spec.ts
@@ -30,6 +30,14 @@ describe('faker', () => {
}
});
+ describe('getMetadata()', () => {
+ it('should return metadata for the locale', () => {
+ expect(faker.getMetadata()).toBeDefined();
+ expect(faker.getMetadata().title).toBeTypeOf('string');
+ // Not all properties are tested here, see locale-imports.spec.ts for full tests
+ });
+ });
+
describe('rawDefinitions', () => {
it('locale rawDefinition accessibility', () => {
// Metadata