npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

formulatejs

v2.0.2

Published

Framework para projetos SSR node.js

Downloads

19

Readme

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: '[email protected]', 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.