chamesu
Version:
This package contains all packages of the chat application.
65 lines (49 loc) • 1.66 kB
text/typescript
/*
* Copyright (c) 2022.
* Author Peter Placzek (tada5hi)
* For the full copyright and license information,
* view the LICENSE file that was distributed with this source code.
*/
import "reflect-metadata";
import init from 'module-alias';
import path from "path";
init({
base: path.resolve(__dirname, '../')
});
import {buildConnectionOptions} from "typeorm-extension";
import createExpressApp from "./config/http/express";
import createHttpServer from "./config/http/server";
import env from './env';
import createConfig from "./config";
import createSocketServer from "./modules/socket";
import {createApp} from "./app";
import {createConnection} from "typeorm";
//--------------------------------------------------------------------
(async () => {
const config = createConfig({env});
const expressApp = await createExpressApp();
const httpServer = createHttpServer({expressApp});
const socketServer = createSocketServer({env, httpServer, config});
function start() {
config.components.forEach(c => c.start());
config.aggregators.forEach(a => a.start());
httpServer.listen(env.port, signalStart);
}
function signalStart() {
console.table([['Port', env.port], ['Environment', env.env]]);
}
const connectionOptions = await buildConnectionOptions();
const connection = await createConnection(connectionOptions);
if(process.env.NODE_ENV === 'development') {
await connection.synchronize();
}
await createApp({
config,
env,
expressApp,
httpServer,
socketServer,
connection
});
start();
})();