UNPKG

@jjdenhertog/ai-driven-development

Version:

AI-driven development workflow with learning capabilities for Claude

39 lines 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = removeHooks; const fs_extra_1 = require("fs-extra"); const node_console_1 = require("node:console"); const node_path_1 = require("node:path"); function removeHooks(path) { const claudeSettingsPath = (0, node_path_1.join)(path, '.claude', 'settings.json'); // Check if settings file exists if (!(0, fs_extra_1.existsSync)(claudeSettingsPath)) return; // Read existing settings let settings = {}; try { settings = (0, fs_extra_1.readJsonSync)(claudeSettingsPath); } catch (_err) { return; } // Check if hooks exist if (!settings.hooks) (0, node_console_1.log)('No hooks found in Claude settings - nothing to remove', 'info'); // List of hook types that addHooks adds const hookTypesToRemove = ['PreToolUse', 'PostToolUse', 'Notification']; // Remove each hook type for (const hookType of hookTypesToRemove) { if (settings.hooks[hookType]) { // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete settings.hooks[hookType]; } } // If hooks object is now empty, remove it entirely if (Object.keys(settings.hooks).length === 0) delete settings.hooks; // Write updated settings back (0, fs_extra_1.writeFileSync)(claudeSettingsPath, JSON.stringify(settings, null, 2)); (0, node_console_1.log)('Removed Claude Code hooks from .claude/settings.json', 'success'); } //# sourceMappingURL=removeHooks.js.map