UNPKG

@3wks/generator-gae-node-nestjs

Version:

A generator for building nestjs apps on app engine node

52 lines (43 loc) 1.33 kB
import { BunyanLogger, rootLogger, configureExpress } from '@3wks/gae-node-nestjs'; import * as debug from '@google-cloud/debug-agent'; import * as trace from '@google-cloud/trace-agent'; import { NestFactory } from '@nestjs/core'; import * as express from 'express'; import { AppModule } from './app.module'; import { configurationProvider } from './config/config.module'; if (process.env.APP_ENGINE_ENVIRONMENT) { trace.start(); debug.start({ allowExpressions: true, }); } export async function bootstrap() { const expressApp = express(); configureExpress(expressApp, { session: configurationProvider.session, sessionTimeoutInMinutes: configurationProvider.sessionTimeoutInMinutes, staticAssets: { root: 'public', }, }); rootLogger.info(`Configuring server`); const app = await NestFactory.create(AppModule, expressApp, { logger: new BunyanLogger(), }); const stopListener = async () => { rootLogger.info('Killing process'); await app.close(); process.exit(); }; process.on('SIGINT', stopListener); const port = process.env.PORT || 8080; await app.listen(port); rootLogger.info(`Listening on port ${port}`); return { app, stop: async () => { process.removeListener('SIGINT', stopListener); await app.close(); }, }; }