12345678910111213141516171819202122 |
- 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
|