logo hsb.horse
← Voltar para o índice do blog

Blog

Reimplementando generate-project-summary.py com Bun + TypeScript

Uma reimplementação em Bun + TypeScript de um script Python para resumir projetos. O texto cobre a motivação e a implementação de um binário portátil para dar um repositório inteiro a um LLM.

Publicado:

Reimplementei em Bun + TypeScript um script Python que resume a estrutura de um projeto e o conteúdo dos arquivos.

Referências originais

Motivação e contexto

  • Não tenho muita afinidade com Python
  • Queria praticar a reimplementação em JS/TS de algo escrito por outra pessoa em outra linguagem
  • Tenho familiaridade razoável com JS e TS
  • Queria um CLI que reunisse o conteúdo do repositório em um único arquivo para LLMs
  • Queria transformá-lo em um binário portátil executável em qualquer plataforma

Código-fonte

mktbsh/generate-project-summary.js: Inspired by https://github.com/Olemi-llm-apprentice/generate-project-summary

Stack técnica

LinguagemTypeScript
GerenciadorBun
Runtime JSBun
Linter/FormatterBiome
EditorVS Code

Ponto difícil / pendência

Tive dificuldade para reproduzir exatamente o comportamento que eu queria com a API Glob nativa do Bun e acabei recorrendo ao minimatch.

Pontos principais da implementação

  1. Single File Executable: usar a opção --compile do Bun para gerar um binário executável
  2. Processamento de glob: filtrar arquivos com minimatch
  3. Saída para LLM: reunir a estrutura do projeto e o conteúdo dos arquivos em um único arquivo markdown

Resumo

Reimplementar o script Python me ajudou a aprofundar meu entendimento de TypeScript e Bun.

Como a ferramenta pode ser distribuída como binário executável, não é preciso instalar Node.js, o que facilita o uso entre plataformas.

Se você quiser fazer um LLM ler um repositório inteiro, esta ferramenta facilita a geração do contexto necessário.