45 lines
923 B
JavaScript
45 lines
923 B
JavaScript
#!/usr/bin/env node
|
|
|
|
/**
|
|
* TUI Entry Point
|
|
* Initializes the Ink-based Terminal User Interface
|
|
* Requirements: 2.2, 2.5
|
|
*/
|
|
|
|
const React = require("react");
|
|
const { render } = require("ink");
|
|
const TuiApplication = require("./tui/TuiApplication.jsx");
|
|
|
|
// Initialize the TUI application
|
|
const main = () => {
|
|
try {
|
|
// Render the main TUI application
|
|
const { waitUntilExit } = render(React.createElement(TuiApplication));
|
|
|
|
// Wait for the application to exit
|
|
return waitUntilExit();
|
|
} catch (error) {
|
|
console.error("Failed to start TUI application:", error);
|
|
process.exit(1);
|
|
}
|
|
};
|
|
|
|
// Handle process signals gracefully
|
|
process.on("SIGINT", () => {
|
|
process.exit(0);
|
|
});
|
|
|
|
process.on("SIGTERM", () => {
|
|
process.exit(0);
|
|
});
|
|
|
|
// Start the application
|
|
if (require.main === module) {
|
|
main().catch((error) => {
|
|
console.error("TUI application error:", error);
|
|
process.exit(1);
|
|
});
|
|
}
|
|
|
|
module.exports = main;
|