File size: 520 Bytes
1df763a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import type {MacroKeywordDefinition} from "ajv"

export default function getDef(): MacroKeywordDefinition {
  return {
    keyword: "prohibited",
    type: "object",
    schemaType: "array",
    macro: function (schema: string[]) {
      if (schema.length === 0) return true
      if (schema.length === 1) return {not: {required: schema}}
      return {not: {anyOf: schema.map((p) => ({required: [p]}))}}
    },
    metaSchema: {
      type: "array",
      items: {type: "string"},
    },
  }
}

module.exports = getDef