1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| "use strict";
| Object.defineProperty(exports, "__esModule", { value: true });
| const codegen_1 = require("../../compile/codegen");
| const util_1 = require("../../compile/util");
| const error = {
| message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,
| params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,
| };
| const def = {
| keyword: "unevaluatedItems",
| type: "array",
| schemaType: ["boolean", "object"],
| error,
| code(cxt) {
| const { gen, schema, data, it } = cxt;
| const items = it.items || 0;
| if (items === true)
| return;
| const len = gen.const("len", (0, codegen_1._) `${data}.length`);
| if (schema === false) {
| cxt.setParams({ len: items });
| cxt.fail((0, codegen_1._) `${len} > ${items}`);
| }
| else if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) {
| const valid = gen.var("valid", (0, codegen_1._) `${len} <= ${items}`);
| gen.if((0, codegen_1.not)(valid), () => validateItems(valid, items));
| cxt.ok(valid);
| }
| it.items = true;
| function validateItems(valid, from) {
| gen.forRange("i", from, len, (i) => {
| cxt.subschema({ keyword: "unevaluatedItems", dataProp: i, dataPropType: util_1.Type.Num }, valid);
| if (!it.allErrors)
| gen.if((0, codegen_1.not)(valid), () => gen.break());
| });
| }
| },
| };
| exports.default = def;
| //# sourceMappingURL=unevaluatedItems.js.map
|
|