UNPKG

@ebuka_dev/git-branch-cleaner

Version:

A CLI tool to help manage and clean up Git branches

54 lines (53 loc) 2.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteStaleBranches = deleteStaleBranches; exports.deleteInteractiveBranches = deleteInteractiveBranches; const GitService_1 = require("../services/GitService"); const spinner_1 = require("../utils/spinner"); const console_1 = require("../utils/console"); const prompt_1 = require("../utils/prompt"); const chalk_1 = __importDefault(require("chalk")); async function deleteStaleBranches(branchNames, force = false) { spinner_1.spinner.start("Deleting branches..."); try { for (const name of branchNames) { if (name === "master" || name === "main") { (0, console_1.logWarning)(`Skipping protected branch: ${name}`); continue; } await GitService_1.gitService.deleteLocalBranch(name, force); console.log(chalk_1.default.red(`Deleted branch: ${name}` + chalk_1.default.gray("✨"))); } spinner_1.spinner.succeed("Successfully deleted branches!"); } catch (error) { spinner_1.spinner.fail("Failed to delete branches!"); (0, console_1.logError)("Error deleting branches:", error); } } async function deleteInteractiveBranches(force = false) { spinner_1.spinner.start("Fetching branches..."); try { const branches = await GitService_1.gitService.getDeletableBranches(); spinner_1.spinner.stop(); if (branches.length === 0) { (0, console_1.logSuccess)("No branches available to delete!"); return; } const selectedBranches = await (0, prompt_1.selectBranches)(branches); if (selectedBranches.length === 0) { (0, console_1.logWarning)("No branches selected for deletion."); return; } if (force || await (0, prompt_1.confirmDelete)(selectedBranches)) { await deleteStaleBranches(selectedBranches, force); } } catch (error) { spinner_1.spinner.fail("Failed to fetch branches!"); (0, console_1.logError)("Error fetching branches:", error); } }