From 44489fa4e09c2b4b7879b37a19019f2bfb683ce6 Mon Sep 17 00:00:00 2001 From: Samuel Cambien Date: Wed, 7 Sep 2022 17:46:49 +0200 Subject: [PATCH] repair #1795 Default settings in config/config.yml are ignored --- src/config/config.server.ts | 55 +++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/src/config/config.server.ts b/src/config/config.server.ts index 69da1a02b2..278cf4f1d5 100644 --- a/src/config/config.server.ts +++ b/src/config/config.server.ts @@ -54,14 +54,28 @@ const getEnvironment = (): Environment => { return environment; }; -const getLocalConfigPath = (env: Environment) => { - // default to config/config.yml - let localConfigPath = join(CONFIG_PATH, 'config.yml'); +/** + * Get the path of the default config file. + */ +const getDefaultConfigPath = () => { - if (!fs.existsSync(localConfigPath)) { - localConfigPath = join(CONFIG_PATH, 'config.yaml'); + // default to config/config.yml + let defaultConfigPath = join(CONFIG_PATH, 'config.yml'); + + if (!fs.existsSync(defaultConfigPath)) { + defaultConfigPath = join(CONFIG_PATH, 'config.yaml'); } + return defaultConfigPath; +}; + +/** + * Get the path of an environment-specific config file. + * + * @param env the environment to get the config file for + */ +const getEnvConfigFilePath = (env: Environment) => { + // determine app config filename variations let envVariations; switch (env) { @@ -76,22 +90,21 @@ const getLocalConfigPath = (env: Environment) => { envVariations = ['dev', 'development']; } + let envLocalConfigPath; + // check if any environment variations of app config exist for (const envVariation of envVariations) { - let envLocalConfigPath = join(CONFIG_PATH, `config.${envVariation}.yml`); + envLocalConfigPath = join(CONFIG_PATH, `config.${envVariation}.yml`); + if (fs.existsSync(envLocalConfigPath)) { + break; + } + envLocalConfigPath = join(CONFIG_PATH, `config.${envVariation}.yaml`); if (fs.existsSync(envLocalConfigPath)) { - localConfigPath = envLocalConfigPath; break; - } else { - envLocalConfigPath = join(CONFIG_PATH, `config.${envVariation}.yaml`); - if (fs.existsSync(envLocalConfigPath)) { - localConfigPath = envLocalConfigPath; - break; - } } } - return localConfigPath; + return envLocalConfigPath; }; const overrideWithConfig = (config: Config, pathToConfig: string) => { @@ -174,12 +187,20 @@ export const buildAppConfig = (destConfigPath?: string): AppConfig => { console.log(`Building ${colors.green.bold(`development`)} app config`); } - // override with dist config - const localConfigPath = getLocalConfigPath(env); + // override with default config + const defaultConfigPath = getDefaultConfigPath(); + if (fs.existsSync(defaultConfigPath)) { + overrideWithConfig(appConfig, defaultConfigPath); + } else { + console.warn(`Unable to find default config file at ${defaultConfigPath}`); + } + + // override with env config + const localConfigPath = getEnvConfigFilePath(env); if (fs.existsSync(localConfigPath)) { overrideWithConfig(appConfig, localConfigPath); } else { - console.warn(`Unable to find dist config file at ${localConfigPath}`); + console.warn(`Unable to find env config file at ${localConfigPath}`); } // override with external config if specified by environment variable `DSPACE_APP_CONFIG_PATH`