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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@andreywbs/codeforge

v1.0.0

Published

O CodeForge é uma biblioteca desenvolvida em JavaScript focada na geração automatizada de código a partir de templates e arquivos de configuração .config.

Readme

CodeForge

Engine de scaffolding de código inteligente baseada em templates Handlebars.

Versão: 1.0.0


O que é

O CodeForge gera projetos completos a partir de templates .hbs e um arquivo de configuração codeForge.config.json. Você descreve o que gerar, ele resolve o template (local ou do GitHub), executa os plugins e escreve os arquivos.


Instalação

# Clone o repositório
git clone https://github.com/AndreyWBS/CodeForge.git
cd CodeForge

# Instale as dependências
npm install

# Registre o CLI globalmente
npm link

Após o npm link, o comando codeforge fica disponível em qualquer pasta do sistema.


Como usar

1. Crie o arquivo de configuração no seu projeto

// codeForge.config.json
{
  "template": "https://github.com/seu-usuario/seu-template",
  "output": "./dist"
}

Ou aponte para um template local:

{
  "template": "./meu-template",
  "output": "./dist"
}

2. Execute a geração

codeforge generate

Os arquivos serão criados em ./dist (ou no diretório configurado em output).


Comandos disponíveis

| Comando | Descrição | | ---------------------------------- | -------------------------------------------------------- | | codeforge generate | Gera o projeto a partir do codeForge.config.json local | | codeforge template:create <nome> | Cria a estrutura inicial de um novo template | | codeforge cache:list | Lista os templates remotos em cache | | codeforge cache:clear | Remove todo o cache de templates |


Templates

Usando um template do GitHub

{
  "template": "https://github.com/usuario/repo",
  "output": "./dist"
}

Também é possível apontar para uma branch, tag ou subpasta específica:

{
  "template": {
    "github": {
      "repo": "usuario/repo",
      "ref": "v2.0.0",
      "path": "templates/node-api"
    }
  }
}

Para repositórios privados, use um token:

{
  "template": {
    "github": {
      "repo": "usuario/repo-privado",
      "token": "ghp_..."
    }
  }
}

Ou defina a variável de ambiente CODEFORGE_GITHUB_TOKEN / GITHUB_TOKEN.

Criando seu próprio template

Rode o comando abaixo para gerar a estrutura inicial:

codeforge template:create meu-template

Estrutura gerada:

meu-template/
  arquivos/        ← templates .hbs finais
  componentes/     ← partials reutilizáveis
  plugins/         ← enriquecem o contexto antes da geração
  template.config.json
  package.json

Para aprender a montar um template completo do zero, consulte o guia de criação de templates.


Estrutura do codeForge.config.json

| Campo | Tipo | Obrigatório | Descrição | | ------------------------ | -------------------- | ----------- | ----------------------------------------------------------- | | template | string ou object | ✅ | Caminho local ou referência GitHub do template | | output | string | ❌ | Diretório de saída (padrão: ./dist) | | keepPluginDependencies | boolean | ❌ | Mantém dependências de plugins após gerar (padrão: false) |

Qualquer campo adicional é passado como contexto para os templates e plugins.


Roadmap

  • [x] Geração de projetos a partir de templates locais
  • [x] Suporte a templates remotos via URL do GitHub
  • [x] Suporte a branch, tag e subpasta no template remoto
  • [x] Cache de templates remotos
  • [x] CLI global via npm link / npm install -g
  • [x] Comando template:create para scaffolding de novos templates
  • [x] Plugins para enriquecimento de contexto
  • [x] Partials (componentes reutilizáveis)
  • [x] Geração dinâmica com forEach
  • [ ] Tratamento de conflitos de arquivos já gerados — estratégias configuráveis: overwrite, skip, ask e merge
  • [ ] Comando codeforge diff — exibe o que mudaria antes de sobrescrever arquivos existentes
  • [ ] Dry run (--dry-run) — simula a geração sem escrever arquivos no disco
  • [ ] Log de arquivos gerados em .codeforge/last-run.json para rastreamento e rollback
  • [ ] Comando codeforge rollback — desfaz a última geração a partir do log
  • [ ] Suporte a hooks no template (beforeGenerate, afterGenerate) para scripts pós-geração
  • [ ] Herança de templates — um template pode estender outro e sobrescrever apenas partes
  • [ ] Comando codeforge template:publish — empacota e publica o template no npm ou GitHub Releases
  • [ ] Modo interativo para plugins — plugin pode fazer perguntas ao usuário durante a geração

Licença

ISC