1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| import type {CodeKeywordDefinition, AnySchema} from "../../types"
| import type {KeywordCxt} from "../../compile/validate"
| import {alwaysValidSchema} from "../../compile/util"
|
| const def: CodeKeywordDefinition = {
| keyword: "allOf",
| schemaType: "array",
| code(cxt: KeywordCxt) {
| const {gen, schema, it} = cxt
| /* istanbul ignore if */
| if (!Array.isArray(schema)) throw new Error("ajv implementation error")
| const valid = gen.name("valid")
| schema.forEach((sch: AnySchema, i: number) => {
| if (alwaysValidSchema(it, sch)) return
| const schCxt = cxt.subschema({keyword: "allOf", schemaProp: i}, valid)
| cxt.ok(valid)
| cxt.mergeEvaluated(schCxt)
| })
| },
| }
|
| export default def
|
|