import { Signale } from 'signale'; import ConfigHandler from './assets/configHandler'; import express, { Request, Response } from 'express'; import fileUpload from 'express-fileupload'; import { PrismaClient } from '@prisma/client'; import { Status, Category } from '@prisma/client'; import * as eta from 'eta'; import routes from './routes/index.js'; // Get app directory. export const __path = process.argv[1]; const logger_settings = { disabled: false, logLevel: 'info', scope: 'Core', stream: process.stdout, displayFilename: true }; const coreLogger = new Signale(logger_settings); export const log = { core: coreLogger, db: coreLogger.scope('DB'), web: coreLogger.scope('WEB') }; // Create a new config instance. export const config = new ConfigHandler(__path + '/config.json', { db_connection_string: 'mysql://USER:PASSWORD@HOST:3306/DATABASE', http_listen_address: '127.0.0.1', http_port: 3000, debug: false }); export const prisma = new PrismaClient({ datasources: { db: { url: config.global.db_connection_string } } }); export const app = express(); app.engine("html", eta.renderFile) app.use(fileUpload()); // Configure static https://expressjs.com/de/starter/static-files.html // app.use('/static', express.static('public')); app.use(express.static(__path + '/static')); routes(app); app.listen(config.global.http_port, config.global.http_listen_address, () => { log.web.info(`Listening at http://${config.global.http_listen_address}:${config.global.http_port}`); });