import config from "config"; import deepmerge from "deepmerge"; import {DeepPartial} from "@onebro/oba-common"; import {AppMasterConfig} from "@onebro/appmaster"; import {OBADevApis} from "./main"; import {OBCustomMiddlewares} from "./middlewares"; const prod = process.env.NODE_ENV === "production"; const vars = { name:process.env.OBA_API_NAME, host:process.env.OBA_API_HOST||process.env.HOST, port:Number(process.env.OBA_API_PORT||process.env.PORT), env:process.env.NODE_ENV, providers:JSON.parse(process.env.OBA_API_PROVIDERS), consumers:JSON.parse(process.env.OBA_API_CONSUMERS), settings:{checkConn:false}}; const logger = {label:process.env.OBA_API_NAME}; const dbUri = process.env[prod?"OBA_API_MONGODB_PROD":"OBA_API_MONGODB_LOCAL"]; const db = {connections:{"onebrother":dbUri}}; const main = OBADevApis; const custom = OBCustomMiddlewares; const views = {engine:"pug"}; const cors = {origins:process.env.OBA_API_ORIGINS.split(";")}; const csrf = {cookie:true}; const session = { name:process.env.OBA_API_SESSION_ID, secret:process.env.OBA_API_SESSION_SECRET, //store:{url:process.env["OBA_API_MONGODB_PROD"]} }; const middleware = {public:{},views,cors,csrf,session,main:{},custom}; const initial:AppMasterConfig = config.get("appconfig"); const runtime:DeepPartial = {vars,logger,db,main,middleware}; const masterConfig:AppMasterConfig = {...deepmerge(initial,runtime)}; export {masterConfig}; export default masterConfig;