import config from "config"; import deepmerge from "deepmerge"; import { DeepPartial } from "@onebro/oba-common"; import { AppMasterConfig } from "./am-main"; import { Main,AMMiddlewares as middleware,registeredSockets as sockets} from "../api"; const setDefaultConfigWithEnvironment = (envPrefix:string):AppMasterConfig => { const prod = process.env.NODE_ENV === "production"; const origins = process.env[`${envPrefix}_ORIGINS`]?process.env[`${envPrefix}_ORIGINS`].split(","):[]; const dbUri = process.env[`${envPrefix}_MONGODB${!prod?"_LOCAL":"_PROD"}`]; const initial:AppMasterConfig = config.get("appconfig"); const atRuntime:DeepPartial = { vars:{ name:process.env[`${envPrefix}_NAME`], host:process.env[`${envPrefix}_HOST`], port:Number(process.env[`${envPrefix}_PORT`]), env:process.env.NODE_ENV, providers:JSON.parse(process.env[`${envPrefix}_PROVIDERS`]), consumers:JSON.parse(process.env[`${envPrefix}_CONSUMERS`]), settings:{checkConn:false}}, logger:{label:process.env[`${envPrefix}_NAME`]}, db:{connections:{"appmaster":dbUri}}, main:Main, middleware:{ cors:{origins}, session:{ name:process.env[`${envPrefix}_SESSION_ID`], secret:process.env[`${envPrefix}_SESSION_SECRET`], store:{collection:"appmastersessions",url:dbUri}}, main:{}, custom:middleware}, sockets:{events:sockets}}; const masterConfig = deepmerge(initial,atRuntime) as AppMasterConfig; return masterConfig;}; export {setDefaultConfigWithEnvironment as masterConfig};