tdd-guard
Version:
TDD Guard enforces Test-Driven Development principles using Claude Code hooks
49 lines (48 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserPromptHandler = void 0;
const GuardManager_1 = require("../guard/GuardManager");
class UserPromptHandler {
guardManager;
GUARD_COMMANDS = {
ON: 'tdd-guard on',
OFF: 'tdd-guard off'
};
constructor(guardManager) {
this.guardManager = guardManager ?? new GuardManager_1.GuardManager();
}
async processUserCommand(hookData) {
const data = JSON.parse(hookData);
// Only process UserPromptSubmit events
if (data.hook_event_name !== 'UserPromptSubmit') {
return undefined;
}
const command = data.prompt?.toLowerCase();
switch (command) {
case this.GUARD_COMMANDS.ON:
await this.guardManager.enable();
return this.createBlockResult('TDD Guard enabled');
case this.GUARD_COMMANDS.OFF:
await this.guardManager.disable();
return this.createBlockResult('TDD Guard disabled');
default:
return undefined;
}
}
createBlockResult(message) {
return {
decision: undefined,
reason: message,
continue: false,
stopReason: message
};
}
async getDisabledResult() {
const isEnabled = await this.guardManager.isEnabled();
if (!isEnabled) {
return { decision: undefined, reason: '' };
}
return undefined;
}
}
exports.UserPromptHandler = UserPromptHandler;