Asymmetrik/node-rest-starter

View on GitHub
src/startup.ts

Summary

Maintainability
A
0 mins
Test Coverage
import http from 'http';

import { Mongoose } from 'mongoose';

import * as agenda from './lib/agenda';
import * as express from './lib/express';
import { logger } from './lib/logger';
import * as migrate_mongo from './lib/migrate-mongo';
import * as mongoose from './lib/mongoose';
import socketio from './lib/socket.io';

export default async function () {
    logger.info('Starting initialization of Node.js server');

    // Init mongoose connection(s)
    const db = await mongoose.connect();

    // Run any required mongo migrations
    await migrate_mongo.migrate(db.admin as Mongoose);

    // Init agenda.ts scheduler
    await agenda.init();

    // Initialize express
    const app = await express.init(db.admin as Mongoose);

    // Create a new HTTP server
    logger.info('Creating HTTP Server');
    const server = http.createServer(app);

    // Initialize socket.io
    await socketio.init(server, db.admin as Mongoose);

    return server;
}