UNPKG

@jjdenhertog/ai-driven-development

Version:

AI-driven development workflow with learning capabilities for Claude

56 lines 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.log = log; exports.logError = logError; const fs_extra_1 = require("fs-extra"); function formatPrettyTimestamp(date = new Date()) { const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); return `${year}-${month}-${day} ${hours}:${minutes}`; } function log(message, type = 'info', prefix = '[aidev]', logPath) { if (global.log_as_json) { console.log(JSON.stringify({ type, message })); return; } if (message.startsWith(prefix)) { console.log(message); return; } const time = formatPrettyTimestamp(); let styledMessage = message; switch (type) { case 'warn': styledMessage = `${prefix} \x1B[2m${time}\x1B[0m \x1B[38;5;214m${message}\x1B[0m`; break; case 'success': styledMessage = `${prefix} \x1B[2m${time}\x1B[0m \x1B[38;5;36m${message}\x1B[0m`; break; case 'error': styledMessage = `${prefix} \x1B[2m${time}\x1B[0m \x1B[31m${message}\x1B[0m`; break; case "light": styledMessage = `${prefix} \x1B[2m${time}\x1B[0m \x1B[2m${message}\x1B[0m`; break; default: styledMessage = `${prefix} \x1B[2m${time}\x1B[0m ${message}`; break; } // eslint-disable-next-line no-console console.log(styledMessage); if (logPath) { (0, fs_extra_1.appendFileSync)(logPath, `${JSON.stringify({ type, message: styledMessage, timestamp: new Date().toISOString() })}\n`); } } function logError(message, prefix = '[aidev]') { // eslint-disable-next-line no-console console.log(`${prefix} \x1B[31mERROR:\x1B[0m ${message}`); } //# sourceMappingURL=logger.js.map