Node.js · TypeScript
Gerador de CEP em Node.js
SDK fakeforge-br gera CEP no formato oficial dos Correios. TypeScript types nativos.
npm install fakeforge-br
import { FakeForge } from "fakeforge-br"
const ceps = await new FakeForge().cep(100)SDK oficial
import { FakeForge } from "fakeforge-br"
const ff = new FakeForge()
// 100 CEPs formatados
const ceps = await ff.cep(100)
ceps.forEach(c => console.log(c))
// Endereço completo com CEP
const enderecos = await ff.address(10)
enderecos.forEach(e => console.log(`${e.cep} — ${e.cidade}/${e.estado}`))Jest — teste de validador
// tests/cep.test.ts
import { FakeForge } from "fakeforge-br"
import { validarCEP } from "../src/validators"
const ff = new FakeForge()
describe("CEP validator", () => {
let ceps: string[]
beforeAll(async () => {
ceps = await ff.cep(50)
})
test.each([0, 1, 2, 3, 4])("aceita CEP válido #%i", (i) => {
expect(validarCEP(ceps[i])).toBe(true)
})
test("rejeita CEP inválido", () => {
expect(validarCEP("00000-000")).toBe(false)
})
})NestJS — validador pipe
// cep.pipe.ts
import { PipeTransform, Injectable, BadRequestException } from "@nestjs/common"
const CEP_REGEX = /^\d{5}-?\d{3}$/
@Injectable()
export class CEPPipe implements PipeTransform {
transform(value: string) {
if (!CEP_REGEX.test(value)) {
throw new BadRequestException("CEP inválido")
}
return value.replace(/\D/g, "") // normaliza
}
}
// Teste em Jest com fakeforge:
test("pipe aceita CEPs do FakeForge", async () => {
const ff = new FakeForge()
const ceps = await ff.cep(30)
const pipe = new CEPPipe()
ceps.forEach(c => expect(pipe.transform(c)).toBeTruthy())
})