Skip to content

Commit 655a541

Browse files
committed
Normalization format cleanup
1 parent 49b413c commit 655a541

3 files changed

Lines changed: 9 additions & 13 deletions

File tree

src/json-schema-errors.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export const evaluateSchema = (schemaLocation, instance, context) => {
9292

9393
let valid = true;
9494
/** @type API.NormalizedOutput */
95-
const output = { [instanceLocation]: {} };
95+
const output = {};
9696

9797
for (const plugin of context.plugins) {
9898
plugin.beforeSchema?.(schemaLocation, instance, context);
@@ -101,6 +101,7 @@ export const evaluateSchema = (schemaLocation, instance, context) => {
101101
const schemaNode = context.ast[schemaLocation];
102102
if (typeof schemaNode === "boolean") {
103103
if (context.errorIndex[schemaLocation]?.[instanceLocation]) {
104+
output[instanceLocation] ??= {};
104105
output[instanceLocation] = {
105106
"https://json-schema.org/validation": {
106107
[schemaLocation]: schemaNode
@@ -139,6 +140,7 @@ export const evaluateSchema = (schemaLocation, instance, context) => {
139140
mergeOutput(output, suboutput);
140141
}
141142
} else {
143+
output[instanceLocation] ??= {};
142144
output[instanceLocation][normalizedKeywordUri] ??= {};
143145
output[instanceLocation][normalizedKeywordUri][keywordLocation] = isKeywordValid || (keywordOutput ?? false);
144146
}

src/normalization-handlers/if.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
import { evaluateSchema } from "../json-schema-errors.js";
2-
31
/**
42
* @import { NormalizationHandler } from "../index.d.ts"
53
*/
64

75
/** @type NormalizationHandler<string> */
86
const ifNormalizationHandler = {
9-
evaluate(ifLocation, instance, context) {
10-
return [evaluateSchema(ifLocation, instance, context)];
7+
evaluate() {
8+
return [];
119
},
1210
simpleApplicator: true
1311
};

src/normalization-handlers/properties.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { evaluateSchema } from "../json-schema-errors.js";
22
import * as Instance from "@hyperjump/json-schema/instance/experimental";
3-
import * as JsonPointer from "@hyperjump/json-pointer";
43

54
/**
65
* @import { NormalizationHandler, NormalizedOutput } from "../index.d.ts"
@@ -16,13 +15,10 @@ const propertiesNormalizationHandler = {
1615
return outputs;
1716
}
1817

19-
for (const propertyName in properties) {
20-
const propertyNode = Instance.step(propertyName, instance);
21-
if (!propertyNode) {
22-
outputs.push({
23-
[JsonPointer.append(propertyName, Instance.uri(instance))]: {}
24-
});
25-
} else {
18+
for (const [propertyNameNode, propertyNode] of Instance.entries(instance)) {
19+
const propertyName = Instance.value(propertyNameNode);
20+
21+
if (properties[propertyName]) {
2622
outputs.push(evaluateSchema(properties[propertyName], propertyNode, context));
2723
}
2824
}

0 commit comments

Comments
 (0)