From 096109c25e4472ab32d38eb7ac667fbb26dc2ad7 Mon Sep 17 00:00:00 2001 From: Jake Date: Fri, 30 Nov 2018 12:15:40 -0500 Subject: [PATCH 1/2] fix key flag precendece --- packages/apollo-language-server/src/config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/apollo-language-server/src/config.ts b/packages/apollo-language-server/src/config.ts index cf16793f11..bd9c39e6c2 100644 --- a/packages/apollo-language-server/src/config.ts +++ b/packages/apollo-language-server/src/config.ts @@ -269,7 +269,8 @@ export const loadConfig = async ({ ApolloConfigFormat >; - if (!loadedConfig) { + // If there's a name passed in (from env/flag), it overrides the config file + if (!loadedConfig || name) { loadedConfig = { isEmpty: false, filepath: configPath || process.cwd(), From 2230faf2138e3a34a6096e03037107d84724fca3 Mon Sep 17 00:00:00 2001 From: Jake Date: Fri, 30 Nov 2018 15:55:22 -0500 Subject: [PATCH 2/2] merge config with existing config if present --- packages/apollo-language-server/src/config.ts | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/apollo-language-server/src/config.ts b/packages/apollo-language-server/src/config.ts index bd9c39e6c2..5916514cf5 100644 --- a/packages/apollo-language-server/src/config.ts +++ b/packages/apollo-language-server/src/config.ts @@ -269,7 +269,9 @@ export const loadConfig = async ({ ApolloConfigFormat >; - // If there's a name passed in (from env/flag), it overrides the config file + // If there's a name passed in (from env/flag), it merges with the config file, to + // overwrite either the client's service (if a client project), or the service's name. + // if there's no config file, it uses the `DefaultConfigBase` to fill these in. if (!loadedConfig || name) { loadedConfig = { isEmpty: false, @@ -277,9 +279,21 @@ export const loadConfig = async ({ config: type === "client" ? { - client: { service: name!, ...DefaultConfigBase } + ...(loadedConfig ? loadedConfig.config : {}), + client: { + ...DefaultConfigBase, + ...(loadedConfig ? loadedConfig.config.client : {}), + service: name! + } + } + : { + ...(loadedConfig ? loadedConfig.config : {}), + service: { + ...DefaultConfigBase, + ...(loadedConfig ? loadedConfig.config.service : {}), + name: name! + } } - : { service: { name: name!, ...DefaultConfigBase } } }; }