generateCpf function exported ✓ 100.0%
Last updated: 2026-02-24T21:07:57.582Z
Location
Metrics
LOC: 26
Complexity: 3
Params: 1
Coverage: 100.0% (10/10 lines, 50x executed)
Signature
generateCpf(formatted = true): : string
Summary
Generates a valid Brazilian CPF (Cadastro de Pessoas Físicas) with correct check digits.
Tags
#@param formatted - Whether to format as `XXX.XXX.XXX-XX` (default: `true`)#@returns A valid CPF string
Source Code
export function generateCpf(formatted = true): string {
const digits = randomDigits(9);
// All same digits are invalid
if (digits.every((d) => d === digits[0])) {
return generateCpf(formatted);
}
const firstCheckDigit = calculateCpfCheckDigit(
digits,
[10, 9, 8, 7, 6, 5, 4, 3, 2],
);
digits.push(firstCheckDigit);
const secondCheckDigit = calculateCpfCheckDigit(
digits,
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2],
);
digits.push(secondCheckDigit);
const cpf = digits.join("");
if (!formatted) return cpf;
return `${cpf.slice(0, 3)}.${cpf.slice(3, 6)}.${cpf.slice(6, 9)}-${cpf.slice(9)}`;
}
Dependencies (Outgoing)
| Target | Type |
|---|---|
| randomDigits | calls |
| generateCpf | calls |
| calculateCpfCheckDigit | calls |
Impact (Incoming)
| Source | Type |
|---|---|
| generateCpf | calls |
| GeneratorFn | calls |
| generatePassword | uses |
| generateCpfCnpj | calls |