FormulateJS
Framework simples para aplicações Full-Stack em Node.js. O objetivo do FormulateJS é acelerar o desenvolvimento de CRUDs, relatórios, API's e interfaces dinâmicas a partir da estrutura do banco de dados.
🚀 Instalação
npm install formulatejs
npx create-formulatejs
Esse comando npx create-formulatejs
prepara a estrutura inicial da aplicação com pastas e arquivos padrões.
📦 Funcionalidades
Nome | Descrição |
---|---|
MailSender |
Envia e-mails utilizando nodemailer com configuração personalizada. |
DateFormatter |
Utilitários para formatação de datas e horas. |
Report |
Cria botões e estruturas de relatório dinâmico. |
DocumentFormatter |
Formata documentos como CPF, CNPJ, RG, CNH, telefone e celular. |
CurrencyFormatter |
Formata valores monetários (R$, $, €) com casas decimais e separadores. |
ActionButtons |
Cria botões de ação (editar, excluir, visualizar) com estilização. |
LoadReport |
Carrega relatórios dinamicamente via URL e parâmetros. |
TableActions |
Gera ações interativas sobre tabelas HTML (clicks, botões, etc.). |
FormGenerator |
Gera formulários HTML com base em metadados do banco de dados (genérico). |
FormGeneratorMySQL |
Gera formulários a partir da estrutura de tabelas do MySQL. |
FormGeneratorMSSQL |
Gera formulários a partir da estrutura de tabelas MSSQL. |
FormGeneratorSQLite |
Gera formulários a partir da estrutura de tabelas SQLite. |
MakeaFormsDB |
Cria arquivos de configuração com campos e botões para cada tabela do banco. |
makeFormView |
Gera HTML de visualização de formulário. |
saveHTMLView |
Salva o HTML gerado do formulário no sistema de arquivos. |
MakeaTableDB |
Cria arquivos de configuração para tabelas. |
makeTableView |
Gera HTML de visualização de tabela. |
saveHTMLTableView |
Salva a visualização HTML de uma tabela. |
📁 Exemplos de uso
MailSender
const { MailSender } = require('formulatejs');
const mailer = new MailSender({ host: 'smtp.exemplo.com', port: 587, secure: false, auth: { user: 'user', pass: 'pass' } });
await mailer.sendMail({ to: 'alguem@exemplo.com', subject: 'Assunto', text: 'Mensagem' });
DateFormatter
const { DateFormatter } = require('formulatejs');
console.log(DateFormatter.format('2024-12-25')); // 25/12/2024
Report
const { Report } = require('formulatejs');
const html = Report.createButton('Exportar', '/export');
DocumentFormatter
const { DocumentFormatter } = require('formulatejs');
console.log(DocumentFormatter.formatCPF('12345678901'));
CurrencyFormatter
const { CurrencyFormatter } = require('formulatejs');
console.log(CurrencyFormatter.format(1234.56)); // R$ 1.234,56
ActionButtons
const { ActionButtons } = require('formulatejs');
const html = ActionButtons.generate('editar', 1);
LoadReport
const { LoadReport } = require('formulatejs');
LoadReport('/api/relatorio', { filtro: 'ativo' });
TableActions
const { TableActions } = require('formulatejs');
TableActions.attachListeners('minhaTabela');
FormGenerator
const { FormGenerator } = require('formulatejs');
FormGenerator.generateFromMetadata({ table: 'usuarios', fields: ['nome', 'email'] });
FormGeneratorMySQL
const { FormGeneratorMySQL } = require('formulatejs');
const formGen = new FormGeneratorMySQL({ host: 'localhost', user: 'root', database: 'app' });
formGen.generateForm('clientes').then(console.log);
FormGeneratorMSSQL
const { FormGeneratorMSSQL } = require('formulatejs');
const formGen = new FormGeneratorMSSQL({ user: 'sa', password: 'pass', server: 'localhost', database: 'app' });
formGen.generateForm('produtos').then(console.log);
FormGeneratorSQLite
const { FormGeneratorSQLite } = require('formulatejs');
const formGen = new FormGeneratorSQLite('./app.db');
formGen.generateForm('usuarios').then(console.log);
MakeaFormsDB
const { MakeaFormsDB } = require('formulatejs');
const maker = new MakeaFormsDB();
maker.create('clientes', ['nome', 'email']);
makeFormView
e saveHTMLView
const { makeFormView, saveHTMLView } = require('formulatejs');
const html = makeFormView({ nome: 'Nome' });
saveHTMLView('form-clientes.html', html);
MakeaTableDB
const { MakeaTableDB } = require('formulatejs');
const tableMaker = new MakeaTableDB();
tableMaker.create('clientes', ['nome', 'email']);
makeTableView
e saveHTMLTableView
const { makeTableView, saveHTMLTableView } = require('formulatejs');
const html = makeTableView([{ nome: 'João' }, { nome: 'Maria' }]);
saveHTMLTableView('clientes.html', html);
🤝 Contribuições
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.
📄 Licença
Este projeto está licenciado sob a Licença MIT.