src/lib/generators/misc.ts
Symbols by Kind
function
22
All Symbols
| Name | Kind | Visibility | Status | Lines | Signature |
|---|---|---|---|---|---|
| generatePassword | function | exported- | 13-15 | generatePassword(length = 12): : string |
|
| generateUsername | function | exported- | 18-20 | generateUsername(): : string |
|
| generateNumber | function | exported- | 27-29 | generateNumber(min = 1, max = 99999): : string |
|
| generateText | function | exported- | 35-37 | generateText(wordCount = 5): : string |
|
| generateDescription | function | exported- | 40-42 | generateDescription(): : string |
|
| generateNotes | function | exported- | 45-47 | generateNotes(): : string |
|
| generateMoney | function | exported- | 54-56 | generateMoney(min = 1, max = 10000): : string |
|
| generateWebsite | function | exported- | 59-61 | generateWebsite(): : string |
|
| generateProductName | function | exported- | 64-66 | generateProductName(): : string |
|
| generateSku | function | exported- | 69-71 | generateSku(): : string |
|
| generateCoupon | function | exported- | 74-76 | generateCoupon(): : string |
|
| generateJobTitle | function | exported- | 79-81 | generateJobTitle(): : string |
|
| generateDepartment | function | exported- | 84-86 | generateDepartment(): : string |
|
| generateCpfCnpj | function | exported- | 89-91 | generateCpfCnpj(): : string |
|
| generateEmployeeCount | function | exported- | 94-96 | generateEmployeeCount(): : string |
|
| generateOtp | function | exported- | 102-104 | generateOtp(length = 6): : string |
|
| generateVerificationCode | function | exported- | 110-112 | generateVerificationCode(length = 6): : string |
|
| generatePassport | function | exported- | 115-117 | generatePassport(): : string |
|
| generateNationalId | function | exported- | 120-122 | generateNationalId(): : string |
|
| generateTaxId | function | exported- | 125-127 | generateTaxId(): : string |
|
| generateDocumentIssuer | function | exported- | 171-173 | generateDocumentIssuer(): : string |
|
| generateSlug | function | exported- | 180-186 | generateSlug(wordCount = 3): : string |
Full Source
/**
* Miscellaneous generators — powered by faker (pt_BR locale)
*/
import { fakerPT_BR as faker } from "@faker-js/faker";
import { generateCpf } from "./cpf";
import { generateCnpj } from "./cnpj";
/**
* Generates a random password.
* @param length - Password length (default: `12`)
*/
export function generatePassword(length = 12): string {
return faker.internet.password({ length });
}
/** Generates a random internet username. */
export function generateUsername(): string {
return faker.internet.username();
}
/**
* Generates a random integer as string.
* @param min - Minimum value (default: `1`)
* @param max - Maximum value (default: `99999`)
*/
export function generateNumber(min = 1, max = 99999): string {
return String(faker.number.int({ min, max }));
}
/**
* Generates random lorem ipsum words.
* @param wordCount - Number of words (default: `5`)
*/
export function generateText(wordCount = 5): string {
return faker.lorem.words(wordCount);
}
/** Generates a random single-sentence description. */
export function generateDescription(): string {
return faker.lorem.sentence();
}
/** Generates random notes text (2 sentences). */
export function generateNotes(): string {
return faker.lorem.sentences(2);
}
/**
* Generates a random monetary amount string with 2 decimal places.
* @param min - Minimum value (default: `1`)
* @param max - Maximum value (default: `10000`)
*/
export function generateMoney(min = 1, max = 10000): string {
return faker.finance.amount({ min, max, dec: 2 });
}
/** Generates a random website URL. */
export function generateWebsite(): string {
return faker.internet.url();
}
/** Generates a random product name. */
export function generateProductName(): string {
return faker.commerce.productName();
}
/** Generates a random 8-character alphanumeric SKU (uppercase). */
export function generateSku(): string {
return faker.string.alphanumeric({ length: 8, casing: "upper" });
}
/** Generates a random 10-character alphanumeric coupon code (uppercase). */
export function generateCoupon(): string {
return faker.string.alphanumeric({ length: 10, casing: "upper" });
}
/** Generates a random job title. */
export function generateJobTitle(): string {
return faker.person.jobTitle();
}
/** Generates a random commerce department name. */
export function generateDepartment(): string {
return faker.commerce.department();
}
/** Generates either a CPF (60% chance) or CNPJ (40% chance). */
export function generateCpfCnpj(): string {
return Math.random() < 0.6 ? generateCpf(true) : generateCnpj(true);
}
/** Generates a random employee count (1–10,000). */
export function generateEmployeeCount(): string {
return String(faker.number.int({ min: 1, max: 10_000 }));
}
/**
* Generates a random numeric OTP (one-time password).
* @param length - Number of digits (default: `6`)
*/
export function generateOtp(length = 6): string {
return faker.string.numeric(length);
}
/**
* Generates a random numeric verification code.
* @param length - Number of digits (default: `6`)
*/
export function generateVerificationCode(length = 6): string {
return faker.string.numeric(length);
}
/** Generates a random 8-character alphanumeric passport number (uppercase). */
export function generatePassport(): string {
return faker.string.alphanumeric({ length: 8, casing: "upper" });
}
/** Generates a random 10-digit national ID number. */
export function generateNationalId(): string {
return faker.string.numeric(10);
}
/** Generates a random 11-digit tax ID number. */
export function generateTaxId(): string {
return faker.string.numeric(11);
}
/** Known Brazilian document issuing authorities. */
const DOCUMENT_ISSUERS = [
"SSP",
"SDS",
"DETRAN",
"IFP",
"PC",
"PM",
"CBM",
"SESP",
"SEJUSP",
"POLITEC",
"IGP",
"SSP/SP",
"SSP/RJ",
"SSP/MG",
"SSP/BA",
"SSP/PR",
"SSP/RS",
"SSP/SC",
"SSP/PE",
"SSP/CE",
"SSP/GO",
"SSP/DF",
"SSP/PA",
"SSP/AM",
"SSP/MT",
"SSP/MS",
"SSP/MA",
"SSP/PB",
"SSP/ES",
"SSP/RN",
"SDS/PE",
"SDS/AL",
"SESP/MT",
"DGPC/GO",
"IGP/RS",
"IGP/SC",
"POLITEC/MT",
];
/** Generates a random Brazilian document issuing authority (e.g. `SSP/SP`). */
export function generateDocumentIssuer(): string {
return faker.helpers.arrayElement(DOCUMENT_ISSUERS);
}
/**
* Generates a URL-friendly slug from random words.
* @param wordCount - Number of words in the slug (default: `3`)
* @returns Lowercase hyphen-separated slug, e.g. `"lorem-ipsum-dolor"`
*/
export function generateSlug(wordCount = 3): string {
const words = faker.lorem.words(wordCount);
return words
.toLowerCase()
.replace(/\s+/g, "-")
.replace(/[^a-z0-9-]/g, "");
}