backend/src/app.ts

38 lines
1.1 KiB
TypeScript
Raw Permalink Normal View History

2020-12-04 20:38:34 +00:00
import consola from "consola";
import "reflect-metadata";
import { createExpressServer } from "routing-controllers";
import { config, e as errors } from './config';
2020-12-04 20:38:34 +00:00
import loaders from "./loaders/index";
import authchecker from "./middlewares/authchecker";
2020-11-27 20:24:55 +00:00
import { ErrorHandler } from './middlewares/ErrorHandler';
import UserChecker from './middlewares/UserChecker';
const CONTROLLERS_FILE_EXTENSION = process.env.NODE_ENV === 'production' ? 'js' : 'ts';
const app = createExpressServer({
2020-11-27 20:24:55 +00:00
authorizationChecker: authchecker,
currentUserChecker: UserChecker,
middlewares: [ErrorHandler],
2020-12-06 09:29:56 +00:00
development: config.development,
cors: true,
2020-11-27 18:32:29 +00:00
routePrefix: "/api",
controllers: [`${__dirname}/controllers/*.${CONTROLLERS_FILE_EXTENSION}`],
});
2020-11-25 17:31:06 +00:00
async function main() {
2020-11-27 17:46:04 +00:00
await loaders(app);
if (config.testing) {
consola.info("🛠[config]: Discovered testing env. Mailing errors will get ignored!")
}
2020-12-06 09:29:56 +00:00
app.listen(config.internal_port, () => {
2020-11-27 17:46:04 +00:00
consola.success(
2020-12-06 09:29:56 +00:00
`⚡️[server]: Server is running at http://localhost:${config.internal_port}`
2020-11-27 17:46:04 +00:00
);
});
2020-11-25 17:31:06 +00:00
}
if (errors === 0) {
main();
} else {
consola.error("error");
// something's wrong
}