Skip to content

Commit d381379

Browse files
authored
Merge branch 'main' into test/success-explanation-cases
2 parents c0cf803 + d610291 commit d381379

28 files changed

Lines changed: 1593 additions & 860 deletions

package-lock.json

Lines changed: 428 additions & 389 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/error-handlers/anyOf.js

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,33 @@ const anyOfErrorHandler = async (normalizedErrors, instance, localization) => {
1717
}
1818

1919
const alternatives = [];
20+
const instanceLocation = Instance.uri(instance);
21+
2022
for (const alternative of anyOf) {
21-
alternatives.push(await getErrors(alternative, instance, localization));
23+
const typeErrors = alternative[instanceLocation]["https://json-schema.org/keyword/type"];
24+
const match = !typeErrors || Object.values(typeErrors).every((isValid) => isValid);
25+
26+
if (match) {
27+
alternatives.push(await getErrors(alternative, instance, localization));
28+
}
2229
}
2330

24-
errors.push({
25-
message: localization.getAnyOfErrorMessage(),
26-
alternatives: alternatives,
27-
instanceLocation: Instance.uri(instance),
28-
schemaLocations: [schemaLocation]
29-
});
31+
if (alternatives.length === 0) {
32+
for (const alternative of anyOf) {
33+
alternatives.push(await getErrors(alternative, instance, localization));
34+
}
35+
}
36+
37+
if (alternatives.length === 1) {
38+
errors.push(...alternatives[0]);
39+
} else {
40+
errors.push({
41+
message: localization.getAnyOfErrorMessage(),
42+
alternatives: alternatives,
43+
instanceLocation: Instance.uri(instance),
44+
schemaLocations: [schemaLocation]
45+
});
46+
}
3047
}
3148

3249
return errors;

src/error-handlers/const.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/error-handlers/dependentRequired.js

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/error-handlers/draft-04/dependencies.js

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
import { getSchema } from "@hyperjump/json-schema/experimental";
2-
import * as Schema from "@hyperjump/browser";
3-
import * as Instance from "@hyperjump/json-schema/instance/experimental";
41
import { getErrors } from "../../json-schema-errors.js";
52

63
/**
@@ -22,25 +19,6 @@ const dependenciesErrorHandler = async (normalizedErrors, instance, localization
2219
const dependentSchemaErrors = await getErrors(dependentSchemaOutput, instance, localization);
2320
errors.push(...dependentSchemaErrors);
2421
}
25-
26-
const dependencies = await getSchema(schemaLocation);
27-
for await (const [propertyName, dependency] of Schema.entries(dependencies)) {
28-
if (!Instance.has(propertyName, instance)) {
29-
continue;
30-
}
31-
32-
if (Schema.typeOf(dependency) !== "array") {
33-
continue;
34-
}
35-
36-
const dependentRequired = /** @type {string[]} */ (Schema.value(dependency));
37-
const missing = dependentRequired.filter((required) => !Instance.has(required, instance));
38-
errors.push({
39-
message: localization.getRequiredErrorMessage(missing),
40-
instanceLocation: Instance.uri(instance),
41-
schemaLocations: [schemaLocation]
42-
});
43-
}
4422
}
4523

4624
return errors;

src/error-handlers/draft-04/maximum.js

Lines changed: 0 additions & 56 deletions
This file was deleted.

src/error-handlers/draft-04/minimum.js

Lines changed: 0 additions & 56 deletions
This file was deleted.

src/error-handlers/enum.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/error-handlers/exclusiveMaximum.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/error-handlers/exclusiveMinimum.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)