UNPKG

eust-conciliation

Version:
49 lines (37 loc) 1.2 kB
/* eslint-disable import/first */ // eslint-disable-next-line import/newline-after-import import dotenv from 'dotenv'; dotenv.config(); import 'reflect-metadata'; import logger from '@zenvia/logger'; import { initDB } from './infra/db'; async function initAppLayers(): Promise<void> { logger.info('Initializing app layers (Infra/Services) to inject dependencies'); await import('./infra'); await import('./application'); } async function start(): Promise<void> { logger.info('Initializing the application'); try { await initDB(); await initAppLayers(); const { conciliationAutomationController } = await import('./presentation'); await conciliationAutomationController.execute(); } catch (error) { // eslint-disable-next-line no-console console.error(error); logger.error('An error occurred while executing the application:', error); process.exit(1); } } const signalTraps: NodeJS.Signals[] = ['SIGTERM', 'SIGINT', 'SIGUSR2', 'SIGHUP']; signalTraps.forEach((type) => { process.once(type, async () => { try { logger.info('Caught interrupt signal'); } finally { process.kill(process.pid, type); } }); }); start();