diff options
| author | Matt Mayer <[email protected]> | 2023-06-17 13:20:52 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-06-17 06:20:52 +0000 |
| commit | fd8cfe53fd59b89f91a07327711faafdd821999e (patch) | |
| tree | a9414f6c57cde9068e451633e10cdc93f0068277 | |
| parent | 19635a7ef3381a475185a2857b59f943dee9be54 (diff) | |
| download | faker-fd8cfe53fd59b89f91a07327711faafdd821999e.tar.xz faker-fd8cfe53fd59b89f91a07327711faafdd821999e.zip | |
feat(metadata): add method to access metadata (#2143)
| -rw-r--r-- | src/faker.ts | 15 | ||||
| -rw-r--r-- | test/faker.spec.ts | 8 |
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 |
