Skip to content

duvall/faker

 
 

Repository files navigation

Faker

Generate massive amounts of fake (but realistic) data for testing and development.

npm version npm downloads Continuous Integration codecov Chat on Discord Open Collective sponsor

⚡️ Try it Online

API Documentation

🚀 Features

  • 💌 Addresses - Generate valid looking Addresses, Zip Codes, Street Names, States, and Countries!
  • ⏰ Time-based Data - Past, present, future, recent, soon... whenever!
  • 🌏 Localization - Set a locale to generate realistic looking Names, Addresses, and Phone Numbers.
  • 💸 Finance - Create stubbed out Account Details, Transactions, and Crypto Addresses.
  • 👠 Products - Generate Prices, Product Names, Adjectives, and Descriptions.
  • 👾 Hacker Jargon - “Try to reboot the SQL bus, maybe it will bypass the virtual application!”
  • 🧍 Names - Generate virtual humans with a complete online and offline identity.
  • 🔢 Numbers - Of course, we can also generate random numbers and strings.

Note: Faker tries to generate realistic data and not obvious fake data. The generated names, addresses, emails, phone numbers, and/or other data might be coincidentally valid information. Please do not send any of your messages/calls to them from your test setup.

📦 Install

npm install --save-dev @faker-js/faker

🪄 Usage

import { faker } from '@faker-js/faker';
// import { faker } from '@faker-js/faker/locale/de';

export const USERS: User[] = [];

export function createRandomUser(): User {
  return {
    userId: faker.datatype.uuid(),
    username: faker.internet.userName(),
    email: faker.internet.email(),
    avatar: faker.image.avatar(),
    password: faker.internet.password(),
    birthdate: faker.date.birthdate(),
    registeredAt: faker.date.past(),
  };
}

Array.from({ length: 10 }).forEach(() => {
  USERS.push(createRandomUser());
});

💎 Modules

An in-depth overview of the API methods is available in the documentation.
The API covers the following modules:

Module Example Output
Address faker.address.city() Lake Raoulfort
Animal faker.animal.cat() Norwegian Forest Cat
Color faker.color.rgb() #cdfcdc
Commerce faker.commerce.product() Polo t-shirt
Company faker.company.companyName() Zboncak and Sons
Database faker.database.engine() MyISAM
Datatype faker.datatype.uuid() 7b16dd12-935e-4acc-8381-b1e457bf0176
Date faker.date.past() Sat Oct 20 2018 04:19:38 GMT-0700 (Pacific Daylight Time)
Finance faker.finance.amount() ¥23400 (After setting locale)
Git faker.git.commitMessage() feat: add products list page
Hacker faker.hacker.phrase() Try to reboot the SQL bus, maybe it will bypass the virtual application!
Helpers faker.helpers.arrayElement(['a', 'b', 'c']) b
Image faker.image.cats() https://loremflickr.com/640/480/cats
Internet faker.internet.domainName() muddy-neuropathologist.net
Lorem faker.lorem.paragraph() Porro nulla id vero perspiciatis nulla nihil. ...
Music faker.music.genre() R&B
Name faker.name.firstName() Cameron
Phone faker.phone.phoneNumber() +1 291-299-0192
Random faker.random.locale() fr_CA
Science faker.science.unit() { name: 'meter', symbol: 'm' }
System faker.system.directoryPath() /root
Vehicle faker.vehicle.vehicle() Lamborghini Camry
Word faker.word.adjective() adorable

Templates

Faker contains a generator method faker.fake for combining faker API methods using a mustache string format.

console.log(
  faker.fake('Hello {{name.prefix}} {{name.lastName}}, how are you today?')
);

🌏 Localization

Faker has support for multiple locales.

The default language locale is set to English.

Setting a new locale is simple:

// sets locale to de
faker.locale = 'de';

See our documentation for a list of provided languages

Please note that not every locale provides data for every module. In out pre-made locales, we fallback to english in such a case as this is the most complete and most common used language.

⚙️ Setting a randomness seed

If you want consistent results, you can set your own seed:

faker.seed(123);

const firstRandom = faker.datatype.number();

// Setting the seed again resets the sequence.
faker.seed(123);

const secondRandom = faker.datatype.number();

console.log(firstRandom === secondRandom);

🤝 Sponsors

Faker is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome backers

Sponsors

Backers

✨ Contributing

Please make sure to read the Contributing Guide before making a pull request.

📘 Credits

Thanks to all the people who already contributed to Faker!

The fakerjs.dev website is kindly hosted by the Netlify Team. Also the search functionality is powered by algolia.

📝 Changelog

Detailed changes for each release are documented in the release notes.

📜 What happened to the original faker.js?

Read the team update (January 14th, 2022).

🔑 License

MIT

About

Generate massive amounts of fake data in the browser and node.js

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.9%
  • JavaScript 0.1%