42 lines
925 B
TypeScript
42 lines
925 B
TypeScript
import { spawn, type ChildProcess } from 'child_process';
|
|
import waitOn from 'wait-on';
|
|
import debug from 'debug';
|
|
const dbg = debug('test-card:utils');
|
|
|
|
const SERVER_PORT = 5888;
|
|
|
|
let devServer: ChildProcess;
|
|
export async function startDevServer(): Promise<void> {
|
|
return new Promise((resolve, reject) => {
|
|
dbg('Starting dev server on http://localhost:%d...', SERVER_PORT);
|
|
devServer = spawn(
|
|
'npm',
|
|
['run', 'dev', '--', '--host', 'localhost', '--port', String(SERVER_PORT)],
|
|
{
|
|
stdio: 'pipe',
|
|
shell: true
|
|
}
|
|
);
|
|
|
|
// Wait until SvelteKit dev server responds
|
|
waitOn(
|
|
{
|
|
resources: [`http://localhost:${SERVER_PORT}`],
|
|
timeout: 30000
|
|
},
|
|
(err) => {
|
|
if (err) reject(err);
|
|
else resolve();
|
|
}
|
|
);
|
|
|
|
dbg('Dev server started');
|
|
});
|
|
}
|
|
|
|
export async function stopDevServer(): Promise<void> {
|
|
if (devServer) {
|
|
dbg('Stopping dev server...');
|
|
devServer.kill('SIGTERM');
|
|
}
|
|
}
|