Faker
This is Faker's main class containing all modules that can be used to generate data.
Please have a look at the individual modules and methods for more information and examples.
import { faker } from '@faker-js/faker';
// const { faker } = require('@faker-js/faker');
// faker.seed(1234);
faker.person.firstName(); // 'John'
faker.person.lastName(); // 'Doe'
import { Faker, es } from '@faker-js/faker';
// const { Faker, es } = require('@faker-js/faker');
// create a Faker instance with only es data and no en fallback (=> smaller bundle size)
const customFaker = new Faker({ locale: [es] });
customFaker.person.firstName(); // 'Javier'
customFaker.person.lastName(); // 'Ocampo Corrales'
customFaker.music.genre(); // throws Error as this data is not available in `es`
constructor
Creates a new instance of Faker.
In most cases you should use one of the prebuilt Faker instances instead of the constructor, for example fakerDE
, fakerFR
, ...
You only need to use the constructor if you need custom fallback logic or a custom locale.
For more information see our Localization Guide.
Available since v8.0.0
Parameters
Name | Type | Default | Description |
---|---|---|---|
options | { ... } | The options to use. | |
options.locale | LocaleDefinition | LocaleDefinition[] | 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. | |
options.randomizer? | Randomizer | generateMersenne53Randomizer() | The Randomizer to use. Specify this only if you want to use it to achieve a specific goal, such as sharing the same random generator with other instances/tools. |
Returns: Faker
function constructor(options: {
locale: LocaleDefinition | LocaleDefinition[];
randomizer?: Randomizer;
});
Examples
import { Faker, es } from '@faker-js/faker';
// const { Faker, es } = require('@faker-js/faker');
// create a Faker instance with only es data and no en fallback (=> smaller bundle size)
const customFaker = new Faker({ locale: [es] });
customFaker.person.firstName(); // 'Javier'
customFaker.person.lastName(); // 'Ocampo Corrales'
customFaker.music.genre(); // throws Error as this data is not available in `es`
Source
getMetadata
Returns an object with metadata about the current locale.
Available since v8.1.0
Returns: MetadataDefinition
function getMetadata(): MetadataDefinition;
Examples
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' }
Source
seed
Sets the seed or generates a new one.
Please note that generated values are dependent on both the seed and the number of calls that have been made since it was set.
This method is intended to allow for consistent values in a tests, so you might want to use hardcoded values as the seed.
In addition to that it can be used for creating truly random tests (by passing no arguments), that still can be reproduced if needed, by logging the result and explicitly setting it if needed.
Available since v6.0.0
Parameters
Name | Type | Default | Description |
---|---|---|---|
seed? | number | number[] | Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER) | The seed or seed array to use. |
Returns: number | number[]
function seed(seed?: number | number[]): number | number[];
Examples
// Consistent values for tests (using a number):
faker.seed(42)
faker.number.int(10); // 4
faker.number.int(10); // 8
faker.seed(42)
faker.number.int(10); // 4
faker.number.int(10); // 8
// Consistent values for tests (using an array):
faker.seed([42, 13, 17])
faker.number.int(10); // 4
faker.number.int(10); // 8
faker.seed([42, 13, 17])
faker.number.int(10); // 4
faker.number.int(10); // 8
// Random but reproducible tests:
// Simply log the seed, and if you need to reproduce it, insert the seed here
console.log('Running test with seed:', faker.seed());
Source
setDefaultRefDate
Sets the refDate
source to use if no refDate
date is passed to the date methods.
Available since v8.0.0
Parameters
Name | Type | Default | Description |
---|---|---|---|
dateOrSource | string | number | Date | (() => Date) | () => new Date() | The function or the static value used to generate the |
Returns: void
function setDefaultRefDate(
dateOrSource: string | Date | number | (() => Date) = () => new Date()
): void;
Examples
faker.seed(1234);
// Default behavior
// faker.setDefaultRefDate();
faker.date.past(); // Changes based on the current date/time
// Use a static ref date
faker.setDefaultRefDate(new Date('2020-01-01'));
faker.date.past(); // Reproducible '2019-07-03T08:27:58.118Z'
// Use a ref date that changes every time it is used
let clock = new Date("2020-01-01").getTime();
faker.setDefaultRefDate(() => {
clock += 1000; // +1s
return new Date(clock);
});
faker.defaultRefDate() // 2020-01-01T00:00:01Z
faker.defaultRefDate() // 2020-01-01T00:00:02Z