| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| const util_1 = require("../../compile/util"); |
| const codegen_1 = require("../../compile/codegen"); |
| const metadata_1 = require("./metadata"); |
| const nullable_1 = require("./nullable"); |
| const error_1 = require("./error"); |
| const def = { |
| keyword: "values", |
| schemaType: "object", |
| error: (0, error_1.typeError)("object"), |
| code(cxt) { |
| (0, metadata_1.checkMetadata)(cxt); |
| const { gen, data, schema, it } = cxt; |
| if ((0, util_1.alwaysValidSchema)(it, schema)) |
| return; |
| const [valid, cond] = (0, nullable_1.checkNullableObject)(cxt, data); |
| gen.if(cond); |
| gen.assign(valid, validateMap()); |
| gen.elseIf((0, codegen_1.not)(valid)); |
| cxt.error(); |
| gen.endIf(); |
| cxt.ok(valid); |
| function validateMap() { |
| const _valid = gen.name("valid"); |
| if (it.allErrors) { |
| const validMap = gen.let("valid", true); |
| validateValues(() => gen.assign(validMap, false)); |
| return validMap; |
| } |
| gen.var(_valid, true); |
| validateValues(() => gen.break()); |
| return _valid; |
| function validateValues(notValid) { |
| gen.forIn("key", data, (key) => { |
| cxt.subschema({ |
| keyword: "values", |
| dataProp: key, |
| dataPropType: util_1.Type.Str, |
| }, _valid); |
| gen.if((0, codegen_1.not)(_valid), notValid); |
| }); |
| } |
| } |
| }, |
| }; |
| exports.default = def; |
| //# sourceMappingURL=values.js.map |