import type { CodeKeywordDefinition , AnySchema } from "../../types" ; import type { KeywordCxt } from "../../compile/validate" ; import { alwaysValidSchema } from "../../compile/util" ; const def = { keyword : "allOf" , schemaType : "array" , code ( cxt ) { const { gen , schema , it } = cxt ; if ( ! Array . isArray ( schema ) ) throw new Error ( "ajv implementation error" ) ; const valid = gen . name ( "valid" ) ; schema . forEach ( ( sch , i ) => { if ( alwaysValidSchema ( it , sch ) ) return ; const schCxt = cxt . subschema ( { keyword : "allOf" , schemaProp : i } , valid ) ; cxt . ok ( valid ) ; cxt . mergeEvaluated ( schCxt ) ; } ) ; } , } ; export default def ;