Skip to content

andreunix/satox

Repository files navigation

📦 Satox – Template com Knex + Geração de Tipos com Zod

Este template fornece uma base sólida para projetos TypeScript que utilizam PostgreSQL com Knex, e geram tipagens automáticas com Zod a partir do schema do banco de dados. Ideal para projetos que exigem consistência entre banco de dados e validação de dados em tempo de execução.


🚀 Comandos

🔧 bun run knex

Interface de linha de comando do Knex, adaptada para TypeScript com o loader tsm.

"knex": "node --no-warnings -r ts-node/register --loader tsm node_modules/.bin/knex --knexfile ./src/db/knexfile.ts"

Usos comuns:

bun run knex migrate:make create_users
bun run knex migrate:latest

Este comando usa:

  • ts-node/register → Suporte a TypeScript.
  • --loader tsm → Suporte a ESModules em .ts.
  • knexfile.ts → Arquivo de configuração localizado em ./src/db/knexfile.ts.

🧬 bun run generate:schema

Gera automaticamente schemas Zod e tipagens TypeScript com base na estrutura real das tabelas do banco de dados.

"generate:schema": "bun ./scripts/generate-schema-types.ts && biome format ./src/db/schemas --write && biome format ./src/@types --write"

Este comando faz:

  1. Executa scripts/generate-schema-types.ts com Bun:

    • Lê as tabelas do banco via introspecção.
    • Gera arquivos Zod com tipagem forte (TUser, TUserInsert, TUserUpdate, etc).
    • Cria enum TableName e types de extensão para knex.d.ts.
  2. Roda o Biome para formatar os arquivos gerados:

    • src/db/schemas
    • src/@types

📁 Estrutura Esperada

satox/
├── scripts/
│   └── generate-schema-types.ts     # Script principal de geração
├── src/
│   ├── db/
│   │   ├── knexfile.ts
│   │   ├── schemas/                 # Schemas e tipos gerados automaticamente
│   └── @types/
│       └── knex.d.ts               # Tipagem Knex integrada
├── package.json
├── tsconfig.json
└── .env                            # Contém DB_CONNECTION_URI

💡 Vantagens do Template Satox

  • 🔁 Sincronização automática entre DB e tipos
  • Validação com Zod diretamente nos dados
  • 🧠 Autocomplete completo com tipagem do Knex
  • 🧼 Código sempre formatado com Biome

📜 Requisitos

  • Banco de dados PostgreSQL
  • DB_CONNECTION_URI no .env
  • Dependências instaladas com bun install

✅ Sugestão de Fluxo

  1. Crie uma nova migration com bun run knex migrate:make
  2. Rode a migration com bun run knex migrate:latest
  3. Gere os tipos com bun run generate:schema
  4. Use os tipos e schemas diretamente no seu app

🏁 Pronto para escalar

Este template é ideal para aplicações escaláveis que exigem:

  • Consistência entre DB e aplicação
  • Validação runtime e estática
  • Tipagem automática sem esforço manual

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published