diff --git a/.changeset/wild-paws-smash.md b/.changeset/wild-paws-smash.md new file mode 100644 index 00000000000..4055e45b81d --- /dev/null +++ b/.changeset/wild-paws-smash.md @@ -0,0 +1,5 @@ +--- +"graphql-language-service-server": patch +--- + +return `null` instead of an empty `contents` array when hover results are empty diff --git a/packages/graphql-language-service-server/src/MessageProcessor.ts b/packages/graphql-language-service-server/src/MessageProcessor.ts index 2e84fc37ef5..1d5c30adb44 100644 --- a/packages/graphql-language-service-server/src/MessageProcessor.ts +++ b/packages/graphql-language-service-server/src/MessageProcessor.ts @@ -656,9 +656,9 @@ export class MessageProcessor { public async handleHoverRequest( params: TextDocumentPositionParams, - ): Promise { + ): Promise { if (!this._isInitialized) { - return { contents: [] }; + return null; } this.validateDocumentAndPosition(params); @@ -667,7 +667,7 @@ export class MessageProcessor { const cachedDocument = this._getCachedDocument(textDocument.uri); if (!cachedDocument) { - return { contents: [] }; + return null; } const found = cachedDocument.contents.find(content => { @@ -679,7 +679,7 @@ export class MessageProcessor { // If there is no GraphQL query in this file, return an empty result. if (!found) { - return { contents: [] }; + return null; } const { query, range } = found; diff --git a/packages/graphql-language-service-server/src/__tests__/MessageProcessor.test.ts b/packages/graphql-language-service-server/src/__tests__/MessageProcessor.test.ts index f7866010fa9..95ef6701bab 100644 --- a/packages/graphql-language-service-server/src/__tests__/MessageProcessor.test.ts +++ b/packages/graphql-language-service-server/src/__tests__/MessageProcessor.test.ts @@ -553,7 +553,7 @@ describe('MessageProcessor', () => { messageProcessor._getCachedDocument = (_uri: string) => null; const result = await messageProcessor.handleHoverRequest(test); - expect(result).toEqual({ contents: [] }); + expect(result).toBeNull(); }); it('handles provided config', async () => { const msgProcessor = new MessageProcessor({