import { createLogger } from '@gongt/ts-stl-library/debug/create-logger'; import { LOG_LEVEL } from '@gongt/ts-stl-library/debug/levels'; import * as Koa from 'koa'; import { waitAppStart } from '../boot/app-wait-start'; import { getWebAppListenPort } from '../communication/listen'; import { globalWorkingCallback } from '../boot/gracefull'; const debug = createLogger(LOG_LEVEL.INFO, 'init-koa'); const error = createLogger(LOG_LEVEL.ERROR, 'init-koa'); export function bootKoaApp(app: Koa) { const appPort = getWebAppListenPort(); debug('wait app to init...'); waitAppStart().then(() => { debug('app init finished, try listen on: %s', appPort); const listen = app.listen(appPort); globalWorkingCallback('koa-server@' + appPort, listen); }, (...args: any[]) => { error('app init failed: ', ...args); process.exit(1); }); }