// Vorlagen für die .gitignore, die per Knopf in ein Repo geschrieben werden. const GENERAL = `# Betriebssystem / Editor .DS_Store Thumbs.db desktop.ini .vscode/ .idea/ # Zugangsdaten und Logs .env .env.* *.pem *.key *.log `; const TEMPLATES = { node: { label: 'Node.js', content: `# Node.js node_modules/ npm-debug.log* yarn-debug.log* yarn-error.log* .npm/ .cache/ ` }, dotnet: { label: '.NET', content: `# .NET bin/ obj/ .vs/ *.user *.suo *.nupkg ` }, electron: { label: 'Electron', content: `# Electron dist/ out/ release/ *.exe *.blockmap *.sha256 ` }, python: { label: 'Python', content: `# Python __pycache__/ *.py[cod] .venv/ venv/ *.egg-info/ .pytest_cache/ .mypy_cache/ build/ dist/ ` }, java: { label: 'Java (Maven/Gradle)', content: `# Java target/ build/ .gradle/ *.class *.jar *.war *.iml out/ ` }, php: { label: 'PHP', content: `# PHP vendor/ composer.phar .phpunit.result.cache ` }, unity: { label: 'Unity', content: `# Unity [Ll]ibrary/ [Tt]emp/ [Oo]bj/ [Bb]uild/ [Bb]uilds/ [Ll]ogs/ [Uu]ser[Ss]ettings/ *.csproj *.sln ` } }; function listTemplates() { return Object.entries(TEMPLATES).map(([key, t]) => ({ key, label: t.label })); } // Baut die Datei aus dem allgemeinen Teil und den gewählten Vorlagen (unbekannte Schlüssel entfallen). function buildGitignore(keys) { const parts = [GENERAL]; const seen = new Set(); for (const key of keys || []) { if (seen.has(key) || !Object.prototype.hasOwnProperty.call(TEMPLATES, key)) continue; seen.add(key); parts.push(TEMPLATES[key].content); } return parts.join('\n'); } module.exports = { listTemplates, buildGitignore };