24 lines
646 B
JavaScript
24 lines
646 B
JavaScript
#!/usr/bin/env node
|
|
import 'dotenv/config';
|
|
import React from 'react';
|
|
import { render } from 'ink';
|
|
import InkApp from './src/ui/InkApp.js';
|
|
|
|
const { unmount } = render(React.createElement(InkApp));
|
|
|
|
// ESC to exit
|
|
if (process.stdin.isTTY) {
|
|
try { process.stdin.setRawMode(true); } catch { }
|
|
const onData = (data) => {
|
|
const str = typeof data === 'string' ? data : String(data);
|
|
if (str === '\u001b' || (str.length && str.charCodeAt(0) === 27)) {
|
|
unmount();
|
|
try { process.stdin.setRawMode(false); } catch { }
|
|
process.exit(0);
|
|
}
|
|
};
|
|
process.stdin.on('data', onData);
|
|
}
|
|
|
|
|