@masuidrive/ticket
Version:
Real-time ticket tracking viewer with Vite + Express
76 lines (73 loc) • 2.63 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TicketServer = void 0;
const server_1 = require("./server");
Object.defineProperty(exports, "TicketServer", { enumerable: true, get: function () { return server_1.TicketServer; } });
const path_1 = __importDefault(require("path"));
const DEFAULT_PORT = 4932;
function parseArgs() {
const args = process.argv.slice(2);
let port = DEFAULT_PORT;
let projectRoot = process.cwd();
for (let i = 0; i < args.length; i++) {
if ((args[i] === '-p' || args[i] === '--port') && args[i + 1]) {
port = parseInt(args[i + 1], 10);
if (isNaN(port)) {
console.error('Invalid port number');
process.exit(1);
}
i++;
}
else if ((args[i] === '-d' || args[i] === '--dir') && args[i + 1]) {
projectRoot = path_1.default.resolve(args[i + 1]);
i++;
}
else if (args[i] === '-h' || args[i] === '--help') {
showHelp();
process.exit(0);
}
}
return { port, projectRoot };
}
function showHelp() {
console.log(`
Ticket Viewer Server - Serves current-ticket.md with real-time updates
Usage: npx @masuidrive/ticket [options]
Options:
-p, --port <number> Port to run the server on (default: ${DEFAULT_PORT})
-d, --dir <path> Project directory containing current-ticket.md (default: current directory)
-h, --help Show this help message
Examples:
npx @masuidrive/ticket # Start server on default port
npx @masuidrive/ticket -p 5000 # Start server on port 5000
npx @masuidrive/ticket -d ../myproject # Serve ticket from different directory
`);
}
function main() {
const { port, projectRoot } = parseArgs();
console.log(`Starting Ticket Viewer Server...`);
console.log(`Project root: ${projectRoot}`);
console.log(`Port: ${port}`);
const server = new server_1.TicketServer(port, projectRoot);
server.start();
// Handle graceful shutdown
process.on('SIGINT', () => {
console.log('\nShutting down server...');
server.stop();
process.exit(0);
});
process.on('SIGTERM', () => {
console.log('\nShutting down server...');
server.stop();
process.exit(0);
});
}
// Run if this is the main module
if (require.main === module) {
main();
}
//# sourceMappingURL=index.js.map