You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
885 B
JavaScript

import { spawn } from 'child_process';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __dirname = dirname(fileURLToPath(import.meta.url));
const proxies = [
{ name: 'API', script: 'proxy-api.mjs' },
{ name: 'Auth', script: 'proxy-auth.mjs' },
];
const processes = [];
for (const proxy of proxies) {
const proc = spawn('node', [join(__dirname, proxy.script)], {
stdio: 'inherit',
});
proc.on('error', (err) => {
console.error(`[${proxy.name}] Failed to start:`, err);
});
proc.on('exit', (code) => {
console.log(`[${proxy.name}] Exited with code ${code}`);
});
processes.push(proc);
}
// Handle Ctrl+C
process.on('SIGINT', () => {
console.log('\nShutting down proxies...');
for (const proc of processes) {
proc.kill();
}
process.exit(0);
});
console.log('All proxies started. Press Ctrl+C to stop.');