massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / table / node_modules / ajv / lib / vocabularies / applicator / not.ts
1 import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from "../../types"
2 import type {KeywordCxt} from "../../compile/validate"
3 import {alwaysValidSchema} from "../../compile/util"
4
5 export type NotKeywordError = ErrorNoParams<"not", AnySchema>
6
7 const def: CodeKeywordDefinition = {
8   keyword: "not",
9   schemaType: ["object", "boolean"],
10   trackErrors: true,
11   code(cxt: KeywordCxt) {
12     const {gen, schema, it} = cxt
13     if (alwaysValidSchema(it, schema)) {
14       cxt.fail()
15       return
16     }
17
18     const valid = gen.name("valid")
19     cxt.subschema(
20       {
21         keyword: "not",
22         compositeRule: true,
23         createErrors: false,
24         allErrors: false,
25       },
26       valid
27     )
28
29     cxt.failResult(
30       valid,
31       () => cxt.reset(),
32       () => cxt.error()
33     )
34   },
35   error: {message: "must NOT be valid"},
36 }
37
38 export default def