import Email from "../Types/Email"; import Name from "../Types/Name"; import ObjectID from "../Types/ObjectID"; import Phone from "../Types/Phone"; import { faker } from "@faker-js/faker"; export default class Faker { public static generateRandomString(length?: number | undefined): string { return faker.string.alphanumeric(length || 10); } public static getNumberBetweenMinAndMax(data: { min: number; max: number; }): number { // pick a random number between min and max return Math.floor(Math.random() * (data.max - data.min + 1) + data.min); } public static generateName(): string { return faker.string.alphanumeric(10); } public static generateCompanyName(): string { return faker.company.name(); } public static generateRandomObjectID(): ObjectID { return ObjectID.generate(); } public static getRandomNumbers(count: number): number { const randomNumbers: Array = []; for (let i: number = 0; i < count; i++) { // pick a random number between 1 and 9 randomNumbers.push(Math.floor(Math.random() * 9) + 1); } return parseInt(randomNumbers.join("")); } public static generateUserFullName(): Name { return new Name(faker.person.fullName()); } public static generateEmail(): Email { return new Email(faker.internet.email()); } public static generatePhone(): Phone { return new Phone(this.getRandomNumbers(10).toString()); } }