Mirror: TypeScript LSP plugin that finds GraphQL documents in your code and provides diagnostics, auto-complete and hover-information.

create discernible error codes for diagnostics

Changed files
+17 -3
.changeset
packages
graphqlsp
+5
.changeset/two-dryers-rule.md
···
+
---
+
'@0no-co/graphqlsp': patch
+
---
+
+
Improve the error-codes so they become discernible
+12 -3
packages/graphqlsp/src/diagnostics.ts
···
import { resolveTemplate } from './ast/resolve';
import { generateTypedDocumentNodes } from './graphql/generateTypes';
-
export const SEMANTIC_DIAGNOSTIC_CODE = 51001;
+
export const SEMANTIC_DIAGNOSTIC_CODE = 52001;
+
export const MISSING_OPERATION_NAME_CODE = 52002;
+
export const MISSING_FRAGMENT_CODE = 52003;
+
export const USING_DEPRECATED_FIELD_CODE = 52003;
export function getGraphQLDiagnostics(
filename: string,
···
graphQLDiagnostics.push({
message: 'Operation needs a name for types to be generated.',
start: node.pos,
+
code: MISSING_OPERATION_NAME_CODE,
length: originalNode.getText().length,
range: {} as any,
severity: 2,
···
diag.severity === 2
? ts.DiagnosticCategory.Warning
: ts.DiagnosticCategory.Error,
-
code: SEMANTIC_DIAGNOSTIC_CODE,
+
code:
+
typeof diag.code === 'number'
+
? diag.code
+
: diag.severity === 2
+
? USING_DEPRECATED_FIELD_CODE
+
: SEMANTIC_DIAGNOSTIC_CODE,
messageText: diag.message.split('\n')[0],
}));
···
length: imp.getText().length,
start: imp.getStart(),
category: ts.DiagnosticCategory.Message,
-
code: SEMANTIC_DIAGNOSTIC_CODE,
+
code: MISSING_FRAGMENT_CODE,
messageText: `Missing Fragment import(s) ${missingImports.join(
', '
)} from ${imp.moduleSpecifier.getText()}.`,