2024-06-15 07:19:16 +00:00
|
|
|
import express from "express";
|
2024-06-15 08:21:38 +00:00
|
|
|
import Logger from "@src/logger";
|
2024-06-17 17:20:58 +00:00
|
|
|
import debugRouter from "@src/routers/debugRouter";
|
|
|
|
import metaRouter from "@src/routers/metaRouter";
|
2024-06-17 17:17:53 +00:00
|
|
|
import parentRouter from "@src/routers/parent";
|
2024-06-17 17:23:22 +00:00
|
|
|
import childRouter from "@src/routers/child";
|
2024-06-16 07:42:08 +00:00
|
|
|
import os from "os";
|
2024-06-17 02:52:10 +00:00
|
|
|
import { getCommitHash, getCommitMessage } from "@utils/gitMeta";
|
2024-06-17 04:02:28 +00:00
|
|
|
import { Response, Request, Router } from 'express';
|
2024-06-17 03:47:29 +00:00
|
|
|
// Swagger
|
|
|
|
import swaggerUi from 'swagger-ui-express';
|
|
|
|
import swaggerJSDoc from 'swagger-jsdoc';
|
2024-06-15 07:19:16 +00:00
|
|
|
|
|
|
|
const app = express();
|
|
|
|
const port = 3000;
|
|
|
|
|
2024-06-15 08:21:38 +00:00
|
|
|
const logger = new Logger();
|
|
|
|
logger.setTag("index.ts");
|
|
|
|
|
2024-06-16 07:42:08 +00:00
|
|
|
// Greetings
|
|
|
|
console.log(`
|
2024-06-17 04:47:30 +00:00
|
|
|
::: ::: ::::::::::: ::::::::: :::::::: ::: ::: ::::::::::: :::::::::: :::::::::::
|
|
|
|
:+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+:
|
|
|
|
+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+
|
|
|
|
+#++:++ +#+ +#+ +:+ +#++:++#++ +#++:++#++ +#+ :#::+::# +#+
|
|
|
|
+#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+
|
|
|
|
#+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+#
|
|
|
|
### ### ########### ######### ######## ### ### ########### ### ###`);
|
2024-06-16 07:42:08 +00:00
|
|
|
|
|
|
|
console.log("\n");
|
2024-06-17 02:37:08 +00:00
|
|
|
console.log("==Environment======================================================================================");
|
2024-06-16 07:42:08 +00:00
|
|
|
|
|
|
|
console.log("Environmnet:");
|
|
|
|
console.log(" System:");
|
|
|
|
console.log(" OS: " + os.type() + " " + os.release());
|
|
|
|
console.log(" CPU: " + os.cpus()[0].model + " x" + os.cpus().length);
|
|
|
|
console.log(" Memory: " + os.totalmem() / 1024 / 1024 / 1024 + " GB");
|
|
|
|
console.log(" Platform: " + os.platform());
|
|
|
|
console.log(" Software:");
|
|
|
|
console.log(" Node.js: " + process.versions.node);
|
|
|
|
console.log(" V8: " + process.versions.v8);
|
2024-06-16 08:48:31 +00:00
|
|
|
console.log(" CommitHash: " + await getCommitHash());
|
2024-06-17 02:52:10 +00:00
|
|
|
console.log(" CommitMessage: " + await getCommitMessage());
|
2024-06-16 07:42:08 +00:00
|
|
|
console.log(" Configuration:");
|
|
|
|
console.log(" Port: " + port);
|
|
|
|
|
2024-06-17 02:37:08 +00:00
|
|
|
console.log("====================================================================================================");
|
2024-06-16 07:42:08 +00:00
|
|
|
console.log("\n");
|
|
|
|
|
|
|
|
logger.info("Starting server...");
|
|
|
|
|
2024-06-17 01:12:17 +00:00
|
|
|
app.get("/", (_req: Request, res: Response) => {
|
2024-06-16 05:58:52 +00:00
|
|
|
res.status(200).sendFile("index.html", { root: "static" });
|
2024-06-15 07:19:16 +00:00
|
|
|
});
|
2024-06-17 04:03:23 +00:00
|
|
|
logger.info("Index page mounted");
|
2024-06-15 07:19:16 +00:00
|
|
|
|
2024-06-17 03:47:29 +00:00
|
|
|
const options = {
|
|
|
|
swaggerDefinition: {
|
|
|
|
info: {
|
|
|
|
title: 'KidShift API',
|
|
|
|
version: '1.0.0'
|
|
|
|
},
|
|
|
|
},
|
|
|
|
apis: ['./src/routers/*.ts'],
|
|
|
|
};
|
2024-06-17 04:02:28 +00:00
|
|
|
const swaggerRouter = Router();
|
|
|
|
swaggerRouter.use('/', swaggerUi.serve);
|
|
|
|
swaggerRouter.get('/', swaggerUi.setup(swaggerJSDoc(options)));
|
2024-06-17 04:02:44 +00:00
|
|
|
app.use('/docs', swaggerRouter);
|
2024-06-17 04:03:23 +00:00
|
|
|
logger.info("Swagger enabled and mounted at /docs");
|
2024-06-17 03:47:29 +00:00
|
|
|
|
2024-06-15 19:45:38 +00:00
|
|
|
app.use(express.json());
|
2024-06-16 12:45:23 +00:00
|
|
|
logger.info("JSON parser enabled");
|
|
|
|
|
2024-06-17 17:17:53 +00:00
|
|
|
app.use('/parent', parentRouter);
|
2024-06-18 02:26:19 +00:00
|
|
|
logger.debug("Parent router mounted");
|
2024-06-17 17:23:22 +00:00
|
|
|
app.use('/child', childRouter);
|
2024-06-18 02:26:19 +00:00
|
|
|
logger.debug("Child router mounted");
|
2024-06-15 19:45:38 +00:00
|
|
|
app.use('/debug', debugRouter);
|
2024-06-17 17:20:58 +00:00
|
|
|
app.use('/meta', metaRouter);
|
2024-06-18 02:26:19 +00:00
|
|
|
logger.debug("Common routes mounted");
|
2024-06-16 12:45:23 +00:00
|
|
|
logger.info("Routers mounted");
|
2024-06-16 07:42:08 +00:00
|
|
|
|
2024-06-18 02:26:19 +00:00
|
|
|
|
2024-06-15 07:19:16 +00:00
|
|
|
app.listen(port, () => {
|
2024-06-15 08:21:38 +00:00
|
|
|
logger.info(`Server started! Listening on port ${port}`);
|
2024-06-15 07:19:16 +00:00
|
|
|
});
|