Ich habe ein Python-Skript, das Projektstruktur und Dateiinhalte zusammenfasst, mit Bun + TypeScript neu implementiert.
Ursprüngliche Referenzen
- Wie man ein gesamtes Repository von einem LLM lesen lässt
- Ein Python-Skript, das Projektstruktur und Dateiinhalte automatisch zusammenfasst, um alles in Claude 3 zu geben
Anlass und Hintergrund
- Ich bin nicht besonders fit in Python
- Ich wollte üben, fremden Code aus einer anderen Sprache in JS/TS neu umzusetzen
- Mit JS und TS kenne ich mich ganz gut aus
- Ich wollte ein CLI, das den Repository-Inhalt für LLMs in eine Datei bündelt
- Es sollte als portables ausführbares Binary plattformübergreifend nutzbar sein
Quellcode
Technischer Aufbau
| Sprache | TypeScript |
| Paketmanager | Bun |
| JS-Runtime | Bun |
| Linter/Formatter | Biome |
| Editor | VS Code |
Stolperstein / offener Punkt
Ich hatte Mühe, mit Buns eingebauter Glob-API das gewünschte Verhalten zu erreichen, und bin schließlich auf minimatch ausgewichen.
Wichtige Implementierungspunkte
- Single File Executable: Mit Buns
--compile-Option ein ausführbares Binary erzeugen - Glob-Verarbeitung: Dateien mit minimatch filtern
- LLM-orientierte Ausgabe: Projektstruktur und Dateiinhalte in einer Markdown-Datei zusammenführen
Zusammenfassung
Durch die Neuimplementierung des Python-Skripts konnte ich mein Verständnis von TypeScript und Bun vertiefen.
Da das Tool als ausführbares Binary verteilt werden kann, ist keine Node.js-Installation nötig, was die Nutzung plattformübergreifend vereinfacht.
Wenn ein LLM ein ganzes Repository lesen soll, lässt sich damit der nötige Kontext einfach erzeugen.
hsb.horse