33 lines
873 B
JavaScript
33 lines
873 B
JavaScript
const { createApp } = require("./app");
|
|
const { config } = require("./config");
|
|
const { closeMongo, connectToMongo } = require("./db/client");
|
|
const { ensureIndexes } = require("./db/indexes");
|
|
|
|
async function start() {
|
|
const db = await connectToMongo();
|
|
await ensureIndexes(db);
|
|
|
|
const app = createApp();
|
|
const server = app.listen(config.port, () => {
|
|
console.log(`Dune API listening on http://localhost:${config.port}`);
|
|
console.log(`Public API URL: ${config.public.apiUrl}`);
|
|
console.log(`Public Swagger UI URL: ${config.public.uiUrl}/docs`);
|
|
});
|
|
|
|
async function shutdown(signal) {
|
|
console.log(`Received ${signal}, shutting down`);
|
|
server.close(async () => {
|
|
await closeMongo();
|
|
process.exit(0);
|
|
});
|
|
}
|
|
|
|
process.on("SIGINT", shutdown);
|
|
process.on("SIGTERM", shutdown);
|
|
}
|
|
|
|
start().catch((error) => {
|
|
console.error(error);
|
|
process.exit(1);
|
|
});
|