25 lines
797 B
TypeScript
25 lines
797 B
TypeScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
const PID_FILE = path.join(__dirname, '.server-pids.json');
|
|
|
|
export default async function globalTeardown() {
|
|
try {
|
|
if (fs.existsSync(PID_FILE)) {
|
|
const { serverPid, frontendPid } = JSON.parse(fs.readFileSync(PID_FILE, 'utf-8'));
|
|
console.log(`[teardown] Killing server(pid=${serverPid}) frontend(pid=${frontendPid})`);
|
|
|
|
try { process.kill(serverPid, 'SIGTERM'); } catch {}
|
|
try { process.kill(frontendPid, 'SIGTERM'); } catch {}
|
|
|
|
fs.unlinkSync(PID_FILE);
|
|
console.log('[teardown] Done');
|
|
}
|
|
} catch (e) {
|
|
console.error('[teardown] Error:', (e as Error).message);
|
|
}
|
|
}
|