import { loadEnvironment } from "./env-loader"; const DEFAULT_MONGO_SERVER = "localhost"; const DEFAULT_MONGO_PORT = 27017; const DEFAULT_MONGO_DB = "reacttrainingdb"; const DEVELOPER_ENVIRONMENT = "dev"; const DEFAULT_PORT_NUMBER = 8080; class Configuration { public static getConfiguration() { const environment = process.env.ENVIRONMENT || DEVELOPER_ENVIRONMENT; loadEnvironment(environment); let connectionString = process.env.MONGO_CONNECTION_STRING; if (!connectionString) { const mongoServer = process.env.MONGO_SERVER || DEFAULT_MONGO_SERVER; const mongoPort = process.env.MONGO_PORT || DEFAULT_MONGO_PORT; const mongoDbName = process.env.MONGO_DB || DEFAULT_MONGO_DB; connectionString = `mongodb://${mongoServer}:${mongoPort}/${mongoDbName}`; } const portNumber = parseInt(process.env.LISTENER_PORT || "") || DEFAULT_PORT_NUMBER; const enableHttps = (process.env.ENABLE_HTTPS || "") === "true"; const certFile = process.env.CERT_FILE; const keyFile = process.env.KEY_FILE; const passphrase = process.env.PASS_PHRASE || ""; const settings = { getConnectionString: () => connectionString, environment, certificateDetails: { certFile, keyFile, passphrase }, portNumber, enableHttps }; return settings; } } export { Configuration };