beatstar_api/build/server.js

62 lines
2.3 KiB
JavaScript
Raw Normal View History

2023-06-11 17:18:44 +02:00
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const http_1 = __importDefault(require("http"));
const express_1 = __importDefault(require("express"));
const morgan_1 = __importDefault(require("morgan"));
const os_1 = __importDefault(require("os"));
const packs_1 = require("./routes/packs");
const global_1 = require("./routes/global");
const pack_service_1 = __importDefault(require("./services/pack_service"));
const router = (0, express_1.default)();
const fileUpload = require("express-fileupload");
/** Logging */
router.use((0, morgan_1.default)("dev"));
/** Parse the request */
router.use(express_1.default.urlencoded({ extended: false }));
/** Takes care of JSON data */
router.use(express_1.default.json());
/** File Upload */
router.use(fileUpload({
useTempFiles: true,
tempFileDir: `${os_1.default.homedir()}/beatloads/tmp`,
createParentPath: true,
uriDecodeFileNames: true,
safeFileNames: true,
preserveExtension: true,
debug: true,
}));
/** RULES OF OUR API */
router.use((req, res, next) => {
// set the CORS policy
res.header("Access-Control-Allow-Origin", "*");
// set the CORS headers
res.header("Access-Control-Allow-Headers", "origin, X-Requested-With,Content-Type,Accept, Authorization");
// set the CORS method headers
if (req.method === "OPTIONS") {
res.header("Access-Control-Allow-Methods", "GET POST");
return res.status(200).json({});
}
next();
});
/** Routes */
router.use("/", packs_1.packRoutes);
router.use("/", global_1.globalRoutes);
/** Error handling */
router.use((req, res, next) => {
const error = new Error("not found");
return res.status(404).json({
message: error.message,
});
});
/** Server */
const httpServer = http_1.default.createServer(router);
const PORT = process.env.PORT ?? 6060;
const start = performance.now();
pack_service_1.default.getInitialList().then(() => {
httpServer.listen(PORT, () => console.log(`The server is running on port ${PORT}`));
console.log("initialized with ", pack_service_1.default.getPackList().length, "packs in ", Math.round(performance.now() - start), "ms");
});