@jjdenhertog/ai-driven-development
Version:
AI-driven development workflow with learning capabilities for Claude
41 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = removeHooks;
const fs_extra_1 = require("fs-extra");
const node_path_1 = require("node:path");
const logger_1 = require("../logger");
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 (_a) {
return;
}
// Check if hooks exist
if (!settings.hooks) {
(0, logger_1.log)('No hooks found in Claude settings - nothing to remove', 'info');
return;
}
// List of hook types that addHooks adds
const hookTypesToRemove = ['PreToolUse', 'PostToolUse', 'Notification', 'Stop'];
// 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, logger_1.log)('Removed Claude Code hooks from .claude/settings.json', 'success');
}
//# sourceMappingURL=removeHooks.js.map