1234567891011121314151617181920212223242526272829303132333435363738 |
- 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: CodeKeywordDefinition = {
- keyword: "not",
- schemaType: ["object", "boolean"],
- trackErrors: true,
- code(cxt: KeywordCxt) {
- 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
|