New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@megaorm/faker

Package Overview
Dependencies
Maintainers
0
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@megaorm/faker

This package provides a set of methods to generate realistic, randomized data for your database seeding needs.

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
0
Created
Source

MegaORM Faker

This package provides a set of methods to generate realistic, randomized data for your database seeding needs. Whether you need user details, location information, or internet-related data, @megaorm/faker has you covered.

Table of Contents

Installation

To install this package, run the following command:

npm install @megaorm/faker

MegaFaker API

Import MegaFaker from @megaorm/faker:

const { MegaFaker } = require('@megaorm/faker');

Create an Instance:

const faker = new MegaFaker();

Now you are ready to generate some fake data!

Personal Information

Generate realistic user details:

console.log(faker.firstName()); // e.g., "john"
console.log(faker.lastName()); // e.g., "Doe"
console.log(faker.name()); // e.g., "john Doe"
console.log(faker.email()); // e.g., "johndoe123@example.com"
console.log(faker.gmail()); // e.g., "johndoe123@gmail.com"
console.log(faker.password()); // e.g., "p@ssw0rd123"
console.log(faker.username()); // e.g., "johndoe92"

Location Information

Generate data for geographic and address fields:

console.log(faker.continent()); // e.g., "Asia"
console.log(faker.country()); // e.g., "Canada"
console.log(faker.city()); // e.g., "San Francisco"
console.log(faker.street()); // e.g., "River Street"
console.log(faker.address()); // e.g., "1234 Maple St, Toronto, Canada"

Text Generation

Generate filler text for your database:

console.log(faker.sentence()); // e.g., "Random sentence."
console.log(faker.paragraph()); // e.g., "Random paragraph."
console.log(faker.text()); // e.g., "Random text."
console.log(faker.lorem()); // e.g., "Random lorem."

Professional Information

Generate data for job-related fields:

console.log(faker.job()); // e.g., "Software Engineer"
console.log(faker.company()); // e.g., "Global Solutions"

Product Information

Simulate realistic product data:

console.log(faker.product()); // e.g., "Pro Laptop"
console.log(faker.sku()); // e.g., "123-456-789"
console.log(faker.price()); // e.g., 45.67
console.log(faker.category()); // e.g., "Sport" (45 unique categories)
console.log(faker.card('#### #### #### ###')); // e.g., "1234 5678 9012 345"

Web and Internet Data

Generate realistic web-related details:

console.log(faker.path()); // e.g., "blog/introduction"
console.log(faker.domain()); // e.g., "example.com"
console.log(faker.url()); // e.g., "https://shop.net/products/pricing"
console.log(faker.ipv4()); // e.g., "192.168.1.1"
console.log(faker.ipv6()); // e.g., "2001:0db8:85a3:0000:0000:8a2e:0370:7334"

Other Data

Generate a variety of additional data types:

console.log(faker.boolean()); // e.g., 1 | 0
console.log(faker.date()); // e.g., "2024-11-01"
console.log(faker.time()); // e.g., "14:30:00"
console.log(faker.datetime()); // e.g., "2024-11-01 14:30:00"
console.log(faker.zip()); // e.g., "90210"
console.log(faker.phone('+1 (###) ###-####')); // e.g., "+1 (123) 612-3456"
console.log(faker.id(100)); // e.g., 13 (number between 0 and 100)

Random Functions

The MegaFaker library includes helper functions for custom randomization:

const {
  randomBetween, // Generate a random number in a range
  randomIndex, // Get a random index from an array
  randomSelect, // Select a random item from an array
  randomChar, // Generate a random character
} = require('@megaorm/faker');

console.log(randomBetween(0, 10)); // e.g., 3
console.log(randomIndex(['john', 'Doe'])); // e.g., 0
console.log(randomSelect(['john', 'Doe'])); // e.g., 'john'
console.log(randomChar()); // e.g., 'A'

Extending MegaFaker

You can create custom faker methods and extend the functionality of MegaFaker. Here’s how you can do it:

Custom Faker Function

Leverage the provided random functions to define your own data generators. For example, create a function to generate random TV shows:

export function tvShow() {
  return randomSelect([
    'Breaking Bad',
    'Friends',
    'Game of Thrones',
    'Stranger Things',
  ]);
}

console.log('TV Show:', tvShow()); // e.g., "Friends"

Extending MegaFaker Class

For more advanced use cases, extend the MegaFaker class to incorporate additional functionality directly into the faker instance.

const { MegaFaker } = require('@megaorm/faker');

class BetaFaker extends MegaFaker {
  // Generate a random tv show
  tvShow() {
    return this.random.select([
      'The Office',
      'Parks and Recreation',
      'The Crown',
      'Black Mirror',
    ]);
  }

  // Generate a random 5 stars rating
  rating() {
    const left = this.random.between(1, 4); // 4
    const right = this.random.between(0, 9); // 5
    return Number(`${left}.${right}`); // 4.5
  }
}

module.exports = { BetaFaker };

Once extended, you can import your custom faker class, create an instance, and use the enhanced methods in your seeder files:

// Import `BetaFaker`
const { BetaFaker } = require('./BetaFaker');

// Create instance
const faker = new BetaFaker();

console.log(faker.tvShow()); // e.g., "The Crown"
console.log(faker.rating()); // e.g., 4.9

Why Extend MegaFaker?

  • Add domain-specific faker methods.
  • Maintain reusability by centralizing custom randomization logic.
  • Enhance the default API for niche use cases, improving productivity.

The MegaFaker API is your ultimate tool for generating realistic and diverse mock data. Let your creativity flow and streamline your database seeding!

Keywords

faker

FAQs

Package last updated on 22 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts