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
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.');
|