aboutsummaryrefslogtreecommitdiffstats
path: root/language-web/src/main/js/xtext/ValidationService.ts
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-11-16 03:00:45 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-11-16 03:11:00 +0100
commit5810a7eb3b19ef9868db170c9214686bfc613eee (patch)
treeda122997d4ad58f4104d0f84b06a00fe14e7ad02 /language-web/src/main/js/xtext/ValidationService.ts
parentfeat(lang): basic formatting (diff)
downloadrefinery-5810a7eb3b19ef9868db170c9214686bfc613eee.tar.gz
refinery-5810a7eb3b19ef9868db170c9214686bfc613eee.tar.zst
refinery-5810a7eb3b19ef9868db170c9214686bfc613eee.zip
chore(web): json validation with zod
Use the zod library instead of manually written type assertions for validating json messages from the server. This makes it easier to add and handle new messages.
Diffstat (limited to 'language-web/src/main/js/xtext/ValidationService.ts')
-rw-r--r--language-web/src/main/js/xtext/ValidationService.ts11
1 files changed, 3 insertions, 8 deletions
diff --git a/language-web/src/main/js/xtext/ValidationService.ts b/language-web/src/main/js/xtext/ValidationService.ts
index 8e4934ac..c7f6ac7f 100644
--- a/language-web/src/main/js/xtext/ValidationService.ts
+++ b/language-web/src/main/js/xtext/ValidationService.ts
@@ -3,9 +3,7 @@ import type { Diagnostic } from '@codemirror/lint';
3import type { EditorStore } from '../editor/EditorStore'; 3import type { EditorStore } from '../editor/EditorStore';
4import type { UpdateService } from './UpdateService'; 4import type { UpdateService } from './UpdateService';
5import { getLogger } from '../utils/logger'; 5import { getLogger } from '../utils/logger';
6import { isValidationResult } from './xtextServiceResults'; 6import { validationResult } from './xtextServiceResults';
7
8const log = getLogger('xtext.ValidationService');
9 7
10export class ValidationService { 8export class ValidationService {
11 private readonly store: EditorStore; 9 private readonly store: EditorStore;
@@ -18,13 +16,10 @@ export class ValidationService {
18 } 16 }
19 17
20 onPush(push: unknown): void { 18 onPush(push: unknown): void {
21 if (!isValidationResult(push)) { 19 const { issues } = validationResult.parse(push);
22 log.error('Invalid validation result', push);
23 return;
24 }
25 const allChanges = this.updateService.computeChangesSinceLastUpdate(); 20 const allChanges = this.updateService.computeChangesSinceLastUpdate();
26 const diagnostics: Diagnostic[] = []; 21 const diagnostics: Diagnostic[] = [];
27 push.issues.forEach(({ 22 issues.forEach(({
28 offset, 23 offset,
29 length, 24 length,
30 severity, 25 severity,