index.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import type {ErrorObject, Vocabulary} from "../../types"
  2. import limitNumber, {LimitNumberError} from "./limitNumber"
  3. import multipleOf, {MultipleOfError} from "./multipleOf"
  4. import limitLength from "./limitLength"
  5. import pattern, {PatternError} from "./pattern"
  6. import limitProperties from "./limitProperties"
  7. import required, {RequiredError} from "./required"
  8. import limitItems from "./limitItems"
  9. import uniqueItems, {UniqueItemsError} from "./uniqueItems"
  10. import constKeyword, {ConstError} from "./const"
  11. import enumKeyword, {EnumError} from "./enum"
  12. const validation: Vocabulary = [
  13. // number
  14. limitNumber,
  15. multipleOf,
  16. // string
  17. limitLength,
  18. pattern,
  19. // object
  20. limitProperties,
  21. required,
  22. // array
  23. limitItems,
  24. uniqueItems,
  25. // any
  26. {keyword: "nullable", schemaType: "boolean"},
  27. constKeyword,
  28. enumKeyword,
  29. ]
  30. export default validation
  31. type LimitError = ErrorObject<
  32. "maxItems" | "minItems" | "minProperties" | "maxProperties" | "minLength" | "maxLength",
  33. {limit: number},
  34. number | {$data: string}
  35. >
  36. export type ValidationKeywordError =
  37. | LimitError
  38. | LimitNumberError
  39. | MultipleOfError
  40. | PatternError
  41. | RequiredError
  42. | UniqueItemsError
  43. | ConstError
  44. | EnumError