Node.js · TypeScript · UF

Gerador de RG em Node.js

SDK fakeforge-br gera RG com formato específico por UF. TypeScript types nativos. Snippets Jest, NestJS, Express.

npm install fakeforge-br

import { FakeForge } from "fakeforge-br"
const rgs = await new FakeForge().rg(100)

SDK oficial

import { FakeForge } from "fakeforge-br"

const ff = new FakeForge()

// 100 RGs
const rgs = await ff.rg(100)

// Preset customer com RG + estado emissor coerente
const pessoas = await ff.preset("customer", 10)
pessoas.forEach(p => {
  console.log(`${p.nome}: RG ${(p as any).rg} — emitido ${p.endereco.estado}`)
})

Uso em Jest — identidade validator

// tests/rg-validator.test.ts
import { FakeForge } from "fakeforge-br"
import { validarRG } from "../src/validators"

const ff = new FakeForge()

describe("RG validator", () => {
  let rgs: string[]

  beforeAll(async () => {
    rgs = await ff.rg(50)
  })

  test.each([0, 1, 2, 3, 4])("aceita RG válido #%i", (i) => {
    expect(validarRG(rgs[i])).toBe(true)
  })

  test("rejeita RG inválido", () => {
    expect(validarRG("00.000.000-0")).toBe(false)
  })
})

NestJS seed command

@Command({ name: "seed:identidades" })
export class IdentidadeSeedCommand extends CommandRunner {
  async run() {
    const ff = new FakeForge()
    const [pessoas, rgs] = await Promise.all([
      ff.preset("customer", 500),
      ff.rg(500),
    ])

    await this.identidades.bulkCreate(
      pessoas.map((p, i) => ({
        cpf: p.cpf,
        nome: p.nome,
        rg: rgs[i],
        ufEmissor: p.endereco.estado,
      }))
    )
  }
}