UNPKG

1.06 kBPlain TextView Raw
1#!/usr/bin/env node
2
3require('source-map-support').install()
4
5import createApp from './app'
6import { create as createLogger } from './common/log'
7
8const log = createLogger('app')
9
10export { createApp }
11
12if (!module.parent) {
13 const connector = createApp()
14 connector.listen()
15 .catch((err: any) => {
16 const errInfo = (err && typeof err === 'object' && err.stack) ? err.stack : err
17 log.error(errInfo)
18 })
19
20 let shuttingDown = false
21 process.on('SIGINT', async () => {
22 try {
23 if (shuttingDown) {
24 log.warn('received second SIGINT during graceful shutdown, exiting forcefully.')
25 process.exit(1)
26 return
27 }
28
29 shuttingDown = true
30
31 // Graceful shutdown
32 log.debug('shutting down.')
33 await connector.shutdown()
34 log.debug('completed graceful shutdown.')
35 process.exit(0)
36 } catch (err) {
37 const errInfo = (err && typeof err === 'object' && err.stack) ? err.stack : err
38 log.error('error while shutting down. error=%s', errInfo)
39 process.exit(1)
40 }
41 })
42}