Felipe Lalanne 6f02b17968 Refactor MDNS resolver into a module
Also add integration tests for the resolver functionality to prevent
regressions.

Change-type: patch
2024-04-23 19:23:32 -04:00

32 lines
994 B
TypeScript

import { set } from '@balena/es-version';
// Set the desired es version for downstream modules that support it, before we import any
set('es2022');
import { setDefaultAutoSelectFamilyAttemptTimeout } from 'net';
// Increase the timeout for the happy eyeballs algorithm to 5000ms to avoid issues on slower networks
setDefaultAutoSelectFamilyAttemptTimeout(5000);
// Setup MDNS resolution
import './mdns';
import Supervisor from './supervisor';
import process from 'process';
import log from './lib/supervisor-console';
// Register signal handlers before starting the supervisor service
process.on('SIGTERM', () => {
log.info('Received SIGTERM. Exiting.');
// This is standard exit code to indicate a graceful shutdown
// it equals 128 + 15 (the signal code)
process.exit(143);
});
const supervisor = new Supervisor();
supervisor.init().catch((e) => {
log.error('Uncaught exception:', e);
// Terminate the process to avoid leaving the supervisor in a bad state
process.exit(1);
});