dedpaste
Version:
CLI pastebin application using Cloudflare Workers and R2
101 lines (82 loc) • 3.23 kB
text/typescript
/**
* Enhanced mode launcher - Direct approach
* Simplified launcher that works more like our debug script
*/
// Debug logging helper
const debugLog = (message: string): void => {
const timestamp = new Date().toISOString();
console.log(`[${timestamp}] ${message}`);
};
debugLog('Enhanced mode launcher started');
// Setup graceful shutdown handler for Ctrl+C
process.on('SIGINT', () => {
debugLog('Received interrupt signal');
console.log('\nExiting enhanced mode...');
process.exit(0);
});
// Use a simple, direct approach to load and execute the enhanced mode
async function runEnhancedMode() {
debugLog('Starting enhanced mode directly');
try {
// Import with a timeout to prevent hanging
debugLog('Importing enhancedInteractiveMode.js');
let enhancedKeyManagement;
try {
// Set a timeout for the dynamic import
const importTimeout = setTimeout(() => {
throw new Error('Import timed out after 10 seconds');
}, 10000);
// Attempt to dynamically import the module
const module = await import('./enhancedInteractiveMode.js');
clearTimeout(importTimeout);
enhancedKeyManagement = module.enhancedKeyManagement;
} catch (err) {
const errorMessage = err instanceof Error ? err.message : String(err);
throw new Error(`Failed to import enhancedInteractiveMode.js: ${errorMessage}`);
}
debugLog('Successfully imported enhancedKeyManagement function');
if (typeof enhancedKeyManagement !== 'function') {
throw new Error('enhancedKeyManagement is not a function');
}
// Execute the function without a timeout to prevent users from being
// kicked out in the middle of key operations
debugLog('Executing enhancedKeyManagement function');
let result;
try {
// Execute the function without timeout
result = await enhancedKeyManagement();
} catch (err) {
const errorMessage = err instanceof Error ? err.message : String(err);
throw new Error(`Failed to execute enhancedKeyManagement: ${errorMessage}`);
}
debugLog('enhancedKeyManagement completed');
// Handle the result
if (!result.success) {
debugLog(`Error in result: ${result.message || 'Unknown error'}`);
console.error('Error:', result.message || 'Unknown error');
process.exit(1);
}
if (result.message) {
console.log(result.message);
}
debugLog('Enhanced mode completed successfully');
process.exit(0);
} catch (error) {
// Handle any errors
const errorMessage = error instanceof Error ? error.message : String(error);
debugLog(`Enhanced mode error: ${errorMessage}`);
console.error(`Enhanced mode error: ${errorMessage}`);
if (error instanceof Error && error.stack) {
debugLog(`Stack trace: ${error.stack}`);
}
process.exit(1);
}
}
// Run the enhanced mode
runEnhancedMode().catch(error => {
const errorMessage = error instanceof Error ? error.message : String(error);
debugLog(`Unhandled promise rejection: ${errorMessage}`);
console.error(`Critical error in enhanced mode: ${errorMessage}`);
process.exit(1);
});