--- /dev/null
+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