import kill from 'kill-port' import portUsed from 'port-used' import got, { RequestError } from 'got' export const PORT = 4000 // By default it's on export const START_JEST_SERVER = Boolean(JSON.parse(process.env.START_JEST_SERVER || 1)) export async function isServerHealthy() { try { const res = await got.head(`http://localhost:${PORT}/healthz`, { retry: { limit: 0 } }) return res.statusCode === 200 } catch (err) { // This exception is thrown if you can't even connect. if (err instanceof RequestError) { return false } throw err } } export function killServer() { kill(PORT, 'tcp') .then(() => { console.log(`Killed what was on :${PORT}`) }) .catch((error) => { console.log(`Unable to kill whatever was on :${PORT}:`, error) }) } export async function isPortRunning() { return await portUsed.check(PORT) }