import type { CodeKeywordDefinition , ErrorNoParams , AnySchema } from "../../types" ; import type { KeywordCxt } from "../../compile/validate" ; import { alwaysValidSchema } from "../../compile/util" ; export type NotKeywordError = ErrorNoParams < "not" , AnySchema > ; const def = { keyword : "not" , schemaType : [ "object" , "boolean" ] , trackErrors : true , code ( cxt ) { const { gen , schema , it } = cxt ; if ( alwaysValidSchema ( it , schema ) ) { cxt . fail ( ) ; return ; } const valid = gen . name ( "valid" ) ; cxt . subschema ( { keyword : "not" , compositeRule : true , createErrors : false , allErrors : false , } , valid ) ; cxt . failResult ( valid , ( ) => cxt . reset ( ) , ( ) => cxt . error ( ) ) ; } , error : { message : "must NOT be valid" } , } ; export default def ;