Skip to content

Commit

Permalink
Catch errors when validating schemas
Browse files Browse the repository at this point in the history
  • Loading branch information
jdesrosiers committed Jan 19, 2025
1 parent 589714b commit 660dd69
Showing 1 changed file with 20 additions and 8 deletions.
28 changes: 20 additions & 8 deletions language-server/src/features/validate-schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,28 @@ export class ValidateSchemaFeature {
}

// Validate schema
const schema = await getSchema(schemaResource.dialectUri);
const compiled = await compile(schema);
const output = interpret(compiled, schemaResource, BASIC);
if (output.errors) {
for (const error of output.errors) {
try {
const schema = await getSchema(schemaResource.dialectUri);
const compiled = await compile(schema);
const output = interpret(compiled, schemaResource, BASIC);
if (output.errors) {
for (const error of output.errors) {
schemaDocument.errors.push({
keyword: error.keyword,
keywordNode: await getSchema(error.absoluteKeywordLocation),
instanceNode: /** @type SchemaNodeType */ (this.#schemas.getSchemaNode(error.instanceLocation, schemaResource))
});
}
}
} catch (error) {
if (error instanceof Error) {
schemaDocument.errors.push({
keyword: error.keyword,
keywordNode: await getSchema(error.absoluteKeywordLocation),
instanceNode: /** @type SchemaNodeType */ (this.#schemas.getSchemaNode(error.instanceLocation, schemaResource))
keyword: "",
instanceNode: schemaDocument.schemaResources[0],
message: error.message
});
} else {
throw error;
}
}
}
Expand Down

0 comments on commit 660dd69

Please sign in to comment.