From 009a5948e5f9ff00734f9320d070d0c5005abcb2 Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr <45965090+alexanderniebuhr@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:25:22 +0200 Subject: [PATCH 1/8] fix: support type module #2342 --- packages/vscode-apollo/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vscode-apollo/package.json b/packages/vscode-apollo/package.json index d281fb4254..9b87409b90 100644 --- a/packages/vscode-apollo/package.json +++ b/packages/vscode-apollo/package.json @@ -40,7 +40,8 @@ ], "icon": "images/icon-apollo-blue-400x400.png", "activationEvents": [ - "workspaceContains:**/apollo.config.[jt]s" + "workspaceContains:**/apollo.config.[jt]s", + "workspaceContains:**/apollo.config.cjs" ], "contributes": { "configuration": { From 0e3ae9e7b6d4df0ba40cf215b453304df623ac39 Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr <45965090+alexanderniebuhr@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:26:53 +0200 Subject: [PATCH 2/8] Update service.ts --- packages/apollo-language-server/src/project/service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/apollo-language-server/src/project/service.ts b/packages/apollo-language-server/src/project/service.ts index 4661a01062..dcff100329 100644 --- a/packages/apollo-language-server/src/project/service.ts +++ b/packages/apollo-language-server/src/project/service.ts @@ -26,7 +26,7 @@ export class GraphQLServiceProject extends GraphQLProject { }: GraphQLServiceProjectConfig) { const fileSet = new FileSet({ rootURI: config.configDirURI || rootURI, - includes: [...config.service.includes, ".env", "apollo.config.js"], + includes: [...config.service.includes, ".env", "apollo.config.js", "apollo.config.cjs"], excludes: config.service.excludes, configURI: config.configURI }); From 1aed346c74e0424bf757ae3ad1a358997fdef653 Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr <45965090+alexanderniebuhr@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:27:21 +0200 Subject: [PATCH 3/8] Update client.ts --- packages/apollo-language-server/src/project/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/apollo-language-server/src/project/client.ts b/packages/apollo-language-server/src/project/client.ts index 54d931ade5..c1092eeadf 100644 --- a/packages/apollo-language-server/src/project/client.ts +++ b/packages/apollo-language-server/src/project/client.ts @@ -106,7 +106,7 @@ export class GraphQLClientProject extends GraphQLProject { // the URI of the folder _containing_ the apollo.config.js is the true project's root. // if a config doesn't have a uri associated, we can assume the `rootURI` is the project's root. rootURI: config.configDirURI || rootURI, - includes: [...config.client.includes, ".env", "apollo.config.js"], + includes: [...config.client.includes, ".env", "apollo.config.js", "apollo.config.cjs"], excludes: config.client.excludes, configURI: config.configURI }); From 1efdd715c3786d6e0a54463cdeba2143c5a48455 Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr <45965090+alexanderniebuhr@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:28:03 +0200 Subject: [PATCH 4/8] Update loadConfig.ts --- packages/apollo-language-server/src/config/loadConfig.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/apollo-language-server/src/config/loadConfig.ts b/packages/apollo-language-server/src/config/loadConfig.ts index bf69f2fcb8..0f6dd26dda 100644 --- a/packages/apollo-language-server/src/config/loadConfig.ts +++ b/packages/apollo-language-server/src/config/loadConfig.ts @@ -21,7 +21,8 @@ const MODULE_NAME = "apollo"; const defaultFileNames = [ "package.json", `${MODULE_NAME}.config.js`, - `${MODULE_NAME}.config.ts` + `${MODULE_NAME}.config.ts`, + `${MODULE_NAME}.config.cjs` ]; const envFileNames = [".env", ".env.local"]; @@ -29,6 +30,7 @@ const loaders = { // XXX improve types for config ".json": (cosmiconfig as any).loadJson as LoaderEntry, ".js": (cosmiconfig as any).loadJs as LoaderEntry, + ".cjs": (cosmiconfig as any).loadJs as LoaderEntry, ".ts": { async: TypeScriptLoader } From b2e2b18a2f95848cbbc9571540a3e94a3163dc61 Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr <45965090+alexanderniebuhr@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:28:28 +0200 Subject: [PATCH 5/8] Update workspace.ts --- packages/apollo-language-server/src/workspace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/apollo-language-server/src/workspace.ts b/packages/apollo-language-server/src/workspace.ts index ae4070e8f8..f0e9d2bee7 100644 --- a/packages/apollo-language-server/src/workspace.ts +++ b/packages/apollo-language-server/src/workspace.ts @@ -114,7 +114,7 @@ export class GraphQLWorkspace { -- ~/:user/server (GraphQLProject) as WorkspaceFolder */ - const apolloConfigFiles: string[] = fg.sync("**/apollo.config.@(js|ts)", { + const apolloConfigFiles: string[] = fg.sync("**/apollo.config.@(js|ts|cjs)", { cwd: URI.parse(folder.uri).fsPath, absolute: true, ignore: "**/node_modules/**" From 4074510e3c799d4f56d90c82319d084a4b9ca666 Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr <45965090+alexanderniebuhr@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:29:01 +0200 Subject: [PATCH 6/8] Update server.ts --- packages/apollo-language-server/src/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/apollo-language-server/src/server.ts b/packages/apollo-language-server/src/server.ts index 9e3d1a2328..a654ffb68e 100644 --- a/packages/apollo-language-server/src/server.ts +++ b/packages/apollo-language-server/src/server.ts @@ -131,7 +131,7 @@ documents.onDidChangeContent( connection.onDidChangeWatchedFiles(params => { for (const { uri, type } of params.changes) { - if (uri.endsWith("apollo.config.js") || uri.endsWith(".env")) { + if (uri.endsWith("apollo.config.cjs") || uri.endsWith("apollo.config.js") || uri.endsWith(".env")) { workspace.reloadProjectForConfig(uri); } From fa19b91288426d26977be3e53b18865cbbe9e92b Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr <45965090+alexanderniebuhr@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:34:37 +0200 Subject: [PATCH 7/8] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80847ad996..f4b17e7533 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ - `apollo-tools` - - `vscode-apollo` - - + - Adds support for àpollo.config.cjs`files, to allow Projects with `type: module`in package.json (Fixes #2342) [PR #2381](https://github.com/apollographql/apollo-tooling/pull/2381) ## apollo-tools@0.5.1 - Remove dependency on `apollo-env`, so using this package no longer installs polyfills. From a1a07f3590114e169d3bd056d1159db44a1c0cc6 Mon Sep 17 00:00:00 2001 From: Alexander Niebuhr <45965090+alexanderniebuhr@users.noreply.github.com> Date: Thu, 12 Aug 2021 14:40:02 +0200 Subject: [PATCH 8/8] style: run prettier --- .../apollo-language-server/src/project/client.ts | 7 ++++++- .../apollo-language-server/src/project/service.ts | 7 ++++++- packages/apollo-language-server/src/server.ts | 6 +++++- packages/apollo-language-server/src/workspace.ts | 13 ++++++++----- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/packages/apollo-language-server/src/project/client.ts b/packages/apollo-language-server/src/project/client.ts index c1092eeadf..96533160b5 100644 --- a/packages/apollo-language-server/src/project/client.ts +++ b/packages/apollo-language-server/src/project/client.ts @@ -106,7 +106,12 @@ export class GraphQLClientProject extends GraphQLProject { // the URI of the folder _containing_ the apollo.config.js is the true project's root. // if a config doesn't have a uri associated, we can assume the `rootURI` is the project's root. rootURI: config.configDirURI || rootURI, - includes: [...config.client.includes, ".env", "apollo.config.js", "apollo.config.cjs"], + includes: [ + ...config.client.includes, + ".env", + "apollo.config.js", + "apollo.config.cjs" + ], excludes: config.client.excludes, configURI: config.configURI }); diff --git a/packages/apollo-language-server/src/project/service.ts b/packages/apollo-language-server/src/project/service.ts index dcff100329..1f2cdc0afa 100644 --- a/packages/apollo-language-server/src/project/service.ts +++ b/packages/apollo-language-server/src/project/service.ts @@ -26,7 +26,12 @@ export class GraphQLServiceProject extends GraphQLProject { }: GraphQLServiceProjectConfig) { const fileSet = new FileSet({ rootURI: config.configDirURI || rootURI, - includes: [...config.service.includes, ".env", "apollo.config.js", "apollo.config.cjs"], + includes: [ + ...config.service.includes, + ".env", + "apollo.config.js", + "apollo.config.cjs" + ], excludes: config.service.excludes, configURI: config.configURI }); diff --git a/packages/apollo-language-server/src/server.ts b/packages/apollo-language-server/src/server.ts index a654ffb68e..d0091e0368 100644 --- a/packages/apollo-language-server/src/server.ts +++ b/packages/apollo-language-server/src/server.ts @@ -131,7 +131,11 @@ documents.onDidChangeContent( connection.onDidChangeWatchedFiles(params => { for (const { uri, type } of params.changes) { - if (uri.endsWith("apollo.config.cjs") || uri.endsWith("apollo.config.js") || uri.endsWith(".env")) { + if ( + uri.endsWith("apollo.config.cjs") || + uri.endsWith("apollo.config.js") || + uri.endsWith(".env") + ) { workspace.reloadProjectForConfig(uri); } diff --git a/packages/apollo-language-server/src/workspace.ts b/packages/apollo-language-server/src/workspace.ts index f0e9d2bee7..0310837192 100644 --- a/packages/apollo-language-server/src/workspace.ts +++ b/packages/apollo-language-server/src/workspace.ts @@ -114,11 +114,14 @@ export class GraphQLWorkspace { -- ~/:user/server (GraphQLProject) as WorkspaceFolder */ - const apolloConfigFiles: string[] = fg.sync("**/apollo.config.@(js|ts|cjs)", { - cwd: URI.parse(folder.uri).fsPath, - absolute: true, - ignore: "**/node_modules/**" - }); + const apolloConfigFiles: string[] = fg.sync( + "**/apollo.config.@(js|ts|cjs)", + { + cwd: URI.parse(folder.uri).fsPath, + absolute: true, + ignore: "**/node_modules/**" + } + ); // only have unique possible folders const apolloConfigFolders = new Set(apolloConfigFiles.map(dirname));