@davinti/jeff (1.0.8)
Published 2026-04-29 13:19:45 +00:00 by tiago.inaba
Installation
@davinti:registry=https://git.davinti.com.br/api/packages/davinTI/npm/npm install @davinti/jeff@1.0.8"@davinti/jeff": "1.0.8"About this package
Jeff
Este projeto é um SDK interno para definição, validação e compilação de módulos do App do Dono. Ele garante que as definições de consultas (queries) e suas implementações SQL sejam tipadas, seguras e exportáveis para um manifesto JSON consumível pelo backend.
Tecnologias
- TypeScript (v5+)
- Zod (Validação de esquema)
- Commander (Interface CLI)
- tsup (Bundler)
Instalação
npm install git+ssh://git@git.davinti.com.br:2222/davinTI/jeff.git
Como usar
- Definindo um módulo
Crie um arquivo .ts (ex: usuarios.module.ts):
import { createModuleFactory } from "../src/index.js"
const moduleFactory = createModuleFactory(["TOTVS", "ARIUS"]);
export default moduleFactory.createModule({
id: "usuarios",
label: "Usuários",
description: "Análise dos usuários",
entrypoint: "get_users",
queries: {
get_users: {
name: "Usuários",
params: [],
display: {
type: "list"
}
}
},
}).withImplementations({
TOTVS: {
get_users: () => {
return {
sql: "SELECT * FROM NAUTH.USUARIO",
}
}
},
ARIUS: {
get_users: () => {
return {
sql: "SELECT * FROM NAUTH.USUARIO",
}
}
}
});
- Comandos CLI
O SDK expõe a ferramenta jeff para gerenciar os módulos:
Validar módulos: Verifica se há erros de tipagem ou implementações ausentes sem gerar arquivos.
npx tsx ./src/compiler.ts vet -i "tests/*.test.ts"
Gerar Manifesto: Compila todos os módulos em um único arquivo JSON. O campo version será automaticamente preenchido com o Git Commit Hash atual.
npx tsx ./src/compiler.ts generate -i src/**/*.ts
Dependencies
Dependencies
| ID | Version |
|---|---|
| @types/glob | ^8.1.0 |
| commander | ^14.0.3 |
| glob | ^13.0.2 |
| jiti | ^2.6.1 |
| reflect-metadata | ^0.2.2 |
| zod | ^4.3.6 |
Development Dependencies
| ID | Version |
|---|---|
| @types/node | ^25.2.3 |
| ts-node | ^10.9.2 |
| tsup | ^8.5.1 |
| typescript | ^5.9.3 |
| vitest | ^4.0.18 |