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())
})