vscode-apollo 1.20.0 → 2.0.0
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 +78 -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 +97 -221
- 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 +26 -153
- 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