deprecopilot
Version:
Automated dependency management with AI-powered codemods
18 lines (17 loc) • 702 B
JavaScript
import { logger } from '../lib/logger.js';
export async function safeInvokePluginHook(plugin, hookName, ...args) {
try {
if (typeof plugin[hookName] === 'function') {
console.error(`DEBUG: calling ${hookName} for plugin "${plugin.name}"`);
await plugin[hookName](...args);
}
}
catch (err) {
const errorMsg = `Plugin \"${plugin.name ?? 'unknown'}\" failed in ${hookName}: ${err.message}`;
logger.error(errorMsg);
logger.debug(err.stack || String(err));
// Also output to stderr for CLI tests to capture
process.stderr.write(errorMsg + '\n');
process.stderr.write('', () => { }); // Flush stderr
}
}