2 Object.defineProperty(exports, "__esModule", { value: true });
3 const validate_1 = require("../../compile/validate");
4 const code_1 = require("../code");
5 const util_1 = require("../../compile/util");
6 const additionalProperties_1 = require("./additionalProperties");
12 const { gen, schema, parentSchema, data, it } = cxt;
13 if (it.opts.removeAdditional === "all" && parentSchema.additionalProperties === undefined) {
14 additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, "additionalProperties"));
16 const allProps = (0, code_1.allSchemaProperties)(schema);
17 for (const prop of allProps) {
18 it.definedProperties.add(prop);
20 if (it.opts.unevaluated && allProps.length && it.props !== true) {
21 it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);
23 const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));
24 if (properties.length === 0)
26 const valid = gen.name("valid");
27 for (const prop of properties) {
28 if (hasDefault(prop)) {
29 applyPropertySchema(prop);
32 gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));
33 applyPropertySchema(prop);
35 gen.else().var(valid, true);
38 cxt.it.definedProperties.add(prop);
41 function hasDefault(prop) {
42 return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;
44 function applyPropertySchema(prop) {
46 keyword: "properties",
53 exports.default = def;
54 //# sourceMappingURL=properties.js.map