-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
38 lines (28 loc) · 943 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import express from 'express';
import helmet from 'helmet';
import cors from 'cors';
import compression from 'compression';
import routes from './routes';
import { sequelize } from './models';
import seeds from './seeders';
const { server, database } = require('./config').default;
const app = express();
const swagger = {};
swagger.ui = require('swagger-ui-express');
swagger.apiDocument = require('./swagger.json');
if (server.production) {
delete swagger.ui;
delete swagger.apiDocument;
}
if (!server.production) {
app.use('/docs', swagger.ui.serve, swagger.ui.setup(swagger.apiDocument));
}
app.use(helmet());
app.use(cors());
app.use(compression());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use('/', routes);
app.use('/*', (_, response) => response.status(404).end());
sequelize.sync({ force: database.sync }).then(() => seeds()).catch(() => process.exit(1));
app.listen(server.port);