import config from 'lib/Config'; import { connect } from 'lib/DB'; import { Log } from 'lib/Log'; import httpConnect from './http'; import grpcConnect from './grpc'; const log = Log.child({ module: 'server', }); // Bootstrap the server Promise.all([ connect(), httpConnect(config.app.http.host, +config.app.http.port), grpcConnect(config.app.grpc.host, config.app.grpc.port), ]) .then(() => { log.info('%s service started in %s at %s', config.app.name, config.env, new Date()); }) .catch((err) => { log.fatal('Failed to start %s service', config.app.name, err); setTimeout(() => { process.exit(1); }, 3000); }); process.on('SIGINT', () => { log.info('Exiting service'); setTimeout(() => { process.exit(); }, 3000); }); process.on('SIGTERM', () => { log.info('Forcefully shutting down service'); setTimeout(() => { process.exit(); }, 3000); });