vscode-apollo 1.20.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.circleci/config.yml +27 -18
- package/.git-blame-ignore-revs +2 -0
- package/.nvmrc +1 -1
- package/.vscode/launch.json +9 -4
- package/.vscode/tasks.json +58 -16
- package/.vscodeignore +12 -1
- package/CHANGELOG.md +84 -0
- package/CODEOWNERS +4 -0
- package/README.md +97 -48
- package/graphql.configuration.json +5 -1
- package/images/marketplace/apollo-wordmark.png +0 -0
- package/jest.config.ts +14 -4
- package/jest.e2e.config.js +17 -0
- package/package.json +67 -68
- package/renovate.json +7 -0
- package/sampleWorkspace/clientSchema/apollo.config.cjs +10 -0
- package/sampleWorkspace/clientSchema/src/clientSchema.js +16 -0
- package/sampleWorkspace/clientSchema/src/test.js +18 -0
- package/sampleWorkspace/fixtures/starwarsSchema.graphql +299 -0
- package/sampleWorkspace/httpSchema/apollo.config.ts +8 -0
- package/sampleWorkspace/httpSchema/src/test.js +9 -0
- package/sampleWorkspace/localSchema/apollo.config.js +8 -0
- package/sampleWorkspace/localSchema/src/test.js +8 -0
- package/sampleWorkspace/localSchemaArray/apollo.config.js +12 -0
- package/sampleWorkspace/localSchemaArray/planets.graphql +20 -0
- package/sampleWorkspace/localSchemaArray/src/test.js +12 -0
- package/sampleWorkspace/sampleWorkspace.code-workspace +20 -0
- package/sampleWorkspace/spotifyGraph/apollo.config.mjs +5 -0
- package/sampleWorkspace/spotifyGraph/src/test.js +11 -0
- package/src/__e2e__/mockServer.js +117 -0
- package/src/__e2e__/mocks.js +13094 -0
- package/src/__e2e__/run.js +23 -0
- package/src/__e2e__/runTests.js +44 -0
- package/src/__e2e__/setup.js +1 -0
- package/src/__e2e__/vscode-environment.js +16 -0
- package/src/__e2e__/vscode.js +1 -0
- package/src/build.js +57 -0
- package/src/env/index.ts +0 -3
- package/src/extension.ts +251 -225
- package/src/language-server/__e2e__/clientSchema.e2e.ts +147 -0
- package/src/language-server/__e2e__/httpSchema.e2e.ts +21 -0
- package/src/language-server/__e2e__/localSchema.e2e.ts +25 -0
- package/src/language-server/__e2e__/localSchemaArray.e2e.ts +31 -0
- package/src/language-server/__e2e__/studioGraph.e2e.ts +65 -0
- package/src/language-server/__e2e__/utils.ts +151 -0
- package/src/language-server/__tests__/diagnostics.test.ts +8 -8
- package/src/language-server/__tests__/fileSet.test.ts +1 -1
- package/src/language-server/__tests__/fixtures/starwarsSchema.ts +2 -2
- package/src/language-server/config/__tests__/config.ts +22 -96
- package/src/language-server/config/__tests__/loadConfig.ts +120 -220
- package/src/language-server/config/__tests__/utils.ts +22 -29
- package/src/language-server/config/config.ts +221 -156
- package/src/language-server/config/loadConfig.ts +32 -153
- package/src/language-server/config/loadTsConfig.ts +70 -0
- package/src/language-server/config/utils.ts +5 -16
- package/src/language-server/diagnostics.ts +17 -8
- package/src/language-server/document.ts +16 -16
- package/src/language-server/engine/index.ts +57 -39
- package/src/language-server/engine/operations/frontendUrlRoot.ts +9 -1
- package/src/language-server/engine/operations/schemaTagsAndFieldStats.ts +9 -1
- package/src/language-server/errors/__tests__/NoMissingClientDirectives.test.ts +10 -5
- package/src/language-server/errors/logger.ts +1 -1
- package/src/language-server/errors/validation.ts +20 -23
- package/src/language-server/fileSet.ts +10 -12
- package/src/language-server/format.ts +1 -1
- package/src/language-server/graphqlTypes.ts +13020 -3455
- package/src/language-server/index.ts +0 -1
- package/src/language-server/languageProvider.ts +29 -32
- package/src/language-server/loadingHandler.ts +10 -27
- package/src/language-server/project/base.ts +32 -25
- package/src/language-server/project/client.ts +80 -114
- package/src/language-server/project/defaultClientSchema.ts +29 -4
- package/src/language-server/providers/schema/__tests__/file.ts +60 -19
- package/src/language-server/providers/schema/base.ts +2 -2
- package/src/language-server/providers/schema/endpoint.ts +15 -34
- package/src/language-server/providers/schema/engine.ts +25 -18
- package/src/language-server/providers/schema/file.ts +41 -32
- package/src/language-server/providers/schema/index.ts +5 -21
- package/src/language-server/server.ts +72 -50
- package/src/language-server/typings/graphql.d.ts +3 -3
- package/src/language-server/utilities/__tests__/graphql.test.ts +42 -54
- package/src/language-server/utilities/debouncer.ts +1 -1
- package/src/language-server/utilities/debug.ts +6 -5
- package/src/language-server/utilities/graphql.ts +17 -16
- package/src/language-server/utilities/source.ts +16 -16
- package/src/language-server/utilities/uri.ts +2 -2
- package/src/language-server/workspace.ts +29 -37
- package/src/languageServerClient.ts +4 -4
- package/src/messages.ts +38 -47
- package/src/tools/__tests__/buildServiceDefinition.test.ts +2 -2
- package/src/tools/buildServiceDefinition.ts +11 -11
- package/src/tools/schema/resolveObject.ts +1 -1
- package/src/tools/utilities/predicates.ts +1 -1
- package/src/utils.ts +7 -6
- package/syntaxes/graphql.dart.json +2 -4
- package/syntaxes/graphql.ex.json +1 -4
- package/tsconfig.build.json +8 -1
- package/tsconfig.json +5 -3
- package/src/env/fetch/fetch.ts +0 -32
- package/src/env/fetch/global.ts +0 -30
- package/src/env/fetch/index.d.ts +0 -2
- package/src/env/fetch/index.ts +0 -2
- package/src/env/fetch/url.ts +0 -9
- package/src/env/polyfills/array.ts +0 -17
- package/src/env/polyfills/index.ts +0 -2
- package/src/env/polyfills/object.ts +0 -7
- package/src/language-server/engine/GraphQLDataSource.ts +0 -124
- package/src/language-server/project/service.ts +0 -48
- package/src/language-server/typings/codemirror.d.ts +0 -4
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const path = require("path");
|
|
2
|
+
const { runCLI } = require("@jest/core");
|
|
3
|
+
const yargs = require("yargs");
|
|
4
|
+
const { yargsOptions } = require("jest-cli");
|
|
5
|
+
|
|
6
|
+
async function run() {
|
|
7
|
+
const root = path.join(__dirname, "..", "..");
|
|
8
|
+
const argv = await yargs(JSON.parse(process.env.TEST_ARGV || "[]").slice(2))
|
|
9
|
+
.alias("help", "h")
|
|
10
|
+
.options(yargsOptions).argv;
|
|
11
|
+
|
|
12
|
+
const results = await runCLI(
|
|
13
|
+
{
|
|
14
|
+
...argv,
|
|
15
|
+
config: path.join(root, "jest.e2e.config.js"),
|
|
16
|
+
runInBand: true,
|
|
17
|
+
},
|
|
18
|
+
[root],
|
|
19
|
+
);
|
|
20
|
+
process.exit(results.results.numFailedTests);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
module.exports.run = run;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
const path = require("path");
|
|
3
|
+
const { runTests } = require("@vscode/test-electron");
|
|
4
|
+
const { runMockServer } = require("./mockServer.js");
|
|
5
|
+
const { loadDefaultMocks } = require("./mocks.js");
|
|
6
|
+
|
|
7
|
+
async function main() {
|
|
8
|
+
let disposable;
|
|
9
|
+
try {
|
|
10
|
+
// The folder containing the Extension Manifest package.json
|
|
11
|
+
// Passed to `--extensionDevelopmentPath`
|
|
12
|
+
const extensionDevelopmentPath = path.resolve(__dirname, "../../");
|
|
13
|
+
// The path to the extension test runner script
|
|
14
|
+
// Passed to --extensionTestsPath
|
|
15
|
+
const extensionTestsPath = path.resolve(__dirname, "./run.js");
|
|
16
|
+
process.env.TEST_ARGV = JSON.stringify(process.argv);
|
|
17
|
+
|
|
18
|
+
const TEST_PORT = 7096;
|
|
19
|
+
process.env.APOLLO_ENGINE_ENDPOINT = "http://localhost:7096/apollo";
|
|
20
|
+
process.env.MOCK_SERVER_PORT = String(TEST_PORT);
|
|
21
|
+
disposable = runMockServer(TEST_PORT);
|
|
22
|
+
await loadDefaultMocks(TEST_PORT);
|
|
23
|
+
// Download VS Code, unzip it and run the integration test
|
|
24
|
+
const exitCode = await runTests({
|
|
25
|
+
extensionDevelopmentPath,
|
|
26
|
+
extensionTestsPath,
|
|
27
|
+
launchArgs: [
|
|
28
|
+
"--disable-extensions",
|
|
29
|
+
`${extensionDevelopmentPath}/sampleWorkspace/sampleWorkspace.code-workspace`,
|
|
30
|
+
],
|
|
31
|
+
});
|
|
32
|
+
process.exit(exitCode);
|
|
33
|
+
} catch (err) {
|
|
34
|
+
console.error(err);
|
|
35
|
+
console.error("Failed to run tests");
|
|
36
|
+
process.exit(1);
|
|
37
|
+
} finally {
|
|
38
|
+
if (disposable) {
|
|
39
|
+
disposable[Symbol.dispose]();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
main();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
jest.setTimeout(10000);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const { TestEnvironment } = require("jest-environment-node");
|
|
2
|
+
const vscode = require("vscode");
|
|
3
|
+
|
|
4
|
+
class VsCodeEnvironment extends TestEnvironment {
|
|
5
|
+
async setup() {
|
|
6
|
+
await super.setup();
|
|
7
|
+
this.global.vscode = vscode;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
async teardown() {
|
|
11
|
+
this.global.vscode = {};
|
|
12
|
+
await super.teardown();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
module.exports = VsCodeEnvironment;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = global.vscode;
|
package/src/build.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const esbuild = require("esbuild");
|
|
2
|
+
|
|
3
|
+
const production = process.argv.includes("--production");
|
|
4
|
+
const watch = process.argv.includes("--watch");
|
|
5
|
+
|
|
6
|
+
async function main() {
|
|
7
|
+
const ctx = await esbuild.context({
|
|
8
|
+
entryPoints: ["src/extension.ts", "src/language-server/server.ts"],
|
|
9
|
+
bundle: true,
|
|
10
|
+
format: "cjs",
|
|
11
|
+
minify: production,
|
|
12
|
+
keepNames: true,
|
|
13
|
+
sourcemap: !production,
|
|
14
|
+
sourcesContent: false,
|
|
15
|
+
platform: "node",
|
|
16
|
+
outdir: "lib",
|
|
17
|
+
external: ["vscode"],
|
|
18
|
+
logLevel: "silent",
|
|
19
|
+
plugins: [
|
|
20
|
+
/* add to the end of plugins array */
|
|
21
|
+
esbuildProblemMatcherPlugin,
|
|
22
|
+
],
|
|
23
|
+
});
|
|
24
|
+
if (watch) {
|
|
25
|
+
await ctx.watch();
|
|
26
|
+
} else {
|
|
27
|
+
await ctx.rebuild();
|
|
28
|
+
await ctx.dispose();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @type {import('esbuild').Plugin}
|
|
34
|
+
*/
|
|
35
|
+
const esbuildProblemMatcherPlugin = {
|
|
36
|
+
name: "esbuild-problem-matcher",
|
|
37
|
+
|
|
38
|
+
setup(build) {
|
|
39
|
+
build.onStart(() => {
|
|
40
|
+
console.log("[watch] build started");
|
|
41
|
+
});
|
|
42
|
+
build.onEnd((result) => {
|
|
43
|
+
result.errors.forEach(({ text, location }) => {
|
|
44
|
+
console.error(`✘ [ERROR] ${text}`);
|
|
45
|
+
console.error(
|
|
46
|
+
` ${location.file}:${location.line}:${location.column}:`,
|
|
47
|
+
);
|
|
48
|
+
});
|
|
49
|
+
console.log("[watch] build finished");
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
main().catch((e) => {
|
|
55
|
+
console.error(e);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
});
|
package/src/env/index.ts
CHANGED