import Logging from "@hibas123/nodelogging"; import config from "./config"; // import NLS from "@hibas123/nodeloggingserver_client"; // if (config.logging) { // let s = NLS(Logging, config.logging.server, config.logging.appid, config.logging.token); // s.send(`[${new Date().toLocaleTimeString()}] Starting application`); // } // if (!config.database) { // Logging.error("No database config set. Terminating.") // process.exit(); // } if (!config.web) { Logging.error("No web config set. Terminating."); process.exit(); } import * as i18n from "i18n"; i18n.configure({ locales: ["en", "de"], directory: "./locales", }); import Web from "./web"; import TestData from "./testdata"; import DB from "./database"; Logging.log("Connecting to Database"); if (config.core.dev) { Logging.warning("Running in dev mode! Database will be cleared!"); } DB.connect() .then(async () => { Logging.log("Database connected"); if (config.core.dev) await TestData(); let web = new Web(config.web); web.listen(); let already = new Set(); function print(path, layer) { if (layer.route) { layer.route.stack.forEach( print.bind(null, path.concat(split(layer.route.path))) ); } else if (layer.name === "router" && layer.handle.stack) { layer.handle.stack.forEach( print.bind(null, path.concat(split(layer.regexp))) ); } else if (layer.method) { let me: string = layer.method.toUpperCase(); me += " ".repeat(6 - me.length); let msg = `${me} /${path .concat(split(layer.regexp)) .filter(Boolean) .join("/")}`; if (!already.has(msg)) { already.add(msg); Logging.log(msg); } } } function split(thing) { if (typeof thing === "string") { return thing.split("/"); } else if (thing.fast_slash) { return ""; } else { var match = thing .toString() .replace("\\/?", "") .replace("(?=\\/|$)", "$") .match( /^\/\^((?:\\[.*+?^${}()|[\]\\\/]|[^.*+?^${}()|[\]\\\/])*)\$\// ); return match ? match[1].replace(/\\(.)/g, "$1").split("/") : ""; } } // Logging.log("--- Endpoints: ---"); // web.server._router.stack.forEach(print.bind(null, [])) // Logging.log("--- Endpoints end ---") }) .catch((e) => { Logging.error(e); process.exit(); });