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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@agtm/node-framework

v8.6.1

Published

Framework nodejs baseado no ExpressJs

Downloads

287

Readme

Projeto Node Framework

Framework minimalista para nodejs com objetivo de disponibilizar uma base de código pronta para o rápido inicio de projeto e codificação, utilizando tecnologias já disponíveis.

Instalação

Instale a ferramenta linha de comando ncli:

$ npm i -g @agtm/ncli

Podemos agora criar um novo projeto à partir de um template já configurado usando o comando:

$ ncli-create

Responda as perguntas conforme abaixo:

? Nome do projeto? <Nome do projeto, por padrão o nome da pasta, não pode conter caracteres especiais>
? Descrição do projeto: <Descrição Simples>
? Seu nome: <Seu nome e sobrenome, será usado ao configurar o projeto com npm>
? Informe um e-mail válido 
? Você precisa criar pelo menos um app para este projeto.

Pronto, este script irá:

  • Inicializa um projeto npm novo (npm init)
  • Criar a estrutura básica de arquivos e diretórios com
    • Configuração lint para qualidade de código
    • Define dependencias produção de desenvolvimento, por exemplo @agtm/node-framework
    • Testes configurado e pronto pra uso
    • Script para automatizar tarefas reletivas
    • Códigos de exemplo para facilitar inicio

Carregue assets (como imagens) no diretório public:

$ npm run install-assets

e execute a aplicação com:

$ npm run dev

Agora, no seu navegador acesso a url:

http://localhost:3001

Você deverá ver algo como isto:

Screen01

Executando Jobs

TODO: Documentar como executar jobs e linkar para documentação de jobs

Entendendo o Framework

Clique aqui para entender como o framework funciona

Objetivos e Funcionalidades

Os principais objetivos deste projeto são:

  • Exclusivo para Backend(nodejs)
  • Utilização do framework ExpressJs
  • Padrão ES6 com suporte ESM ou mais novo
  • Suporte a jobs simples (Agendamento e execução continua)
  • Suporte a socket com socket.io

Suporte Integrado à

  • Apps - Possibilidade de importar outros modulos desenvolvido no Framework, como por exemplo um painel administrativo completo ou um simples gerenciador de erros. Apps funcionam como plugins que podem ser facilmente integrados ao framework.
  • [Não funcional] Compilação binária (Intergração com o pacote pkg )
  • Log Robusto (Integração com Winstonjs e GrayLog )
  • Gestão de configuração

Outras funcionalidades podem ser facilmente implementada através de apps.

Agendamento

Baseado no modulo: https://www.npmjs.com/package/node-cron

export default class HelloWorldController extends Controller {

  setup() {
    this.schedule('* * * * *', () => {
      console.log('Tarefa recorrente')
    })
  }
}

Padrão de Comunicação

Em requisições para clientes criados com nuxt-layer-adminlite-primeface, utilizamos o seguinte padrão de comunicação:

| Propriedade | Tipo | Descrição | |-------------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | success | Boolean | Se a requisição concluída com sucesso | | type | String | Tipo de erro, a titulo de simplificação, durante a requisição se o erro for gerado no próprio frontend, será do tipo FRONTEND_ERROR. Outros exemplo de erro: GENERIC_ERROR, API_ERROR | | data | Object | Objeto com dados do erro ou com o resultado a requisição, cada requisição ou tipo de erro tem seu próprio layout |

Gerando Versão

  git commit  
  npm run publis-[major|minor|patch]  

Guia de Estilo

Disponibiliza um guia de estilo para melhorar qualidade e padronização de codificação:

Clique Aqui

Versões Nodejs:

[NÃO FUNCIONAL] Um dos objetivos do framework é a possibilidade de criar versões comerciais (binario) com a ferramenta pkg.

A ferramenta PKG utiliza uma versão própria do nodejs para gerar o binário e infelizmente nem sempre a ultima versão disponível pelo PKG é a ultima versão disponível do nodejs.

Então, caso pretenta criar binários do seu projeto, para evitar incompatibilidades, recomenda-se utilizar no desenvolvimento a mesma versão disponível pelo pkg.

Abaixo segue a ultima versão do nodejs em que o Node Framework foi desenvolvido e que também está disponível para geração de binário com PKG:

Versão do Framework (Apenas major e minor) seguido da versão do NODEJS

IMPORTANTE: Sempre que atualizar o Node Framework, verificar ultimas versões e atualizar aqui. Mantenha o histórico e sempre atualize a versão minor do Node Framework.

DICA: Verifique as versões do nodejs instaladas para o node-pkg aqui: /home/andre/.pkg-cache/

Arquitetura

Clique aqui para entender mais a fundo a arquitetura do framework

Guia de Desenvolvimento

Guia para desenvolvedores do Node Framework:

Guia de Desenvolvimento