index.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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: "type", schemaType: ["string", "array"]},
  27. {keyword: "nullable", schemaType: "boolean"},
  28. constKeyword,
  29. enumKeyword,
  30. ]
  31. export default validation
  32. type LimitError = ErrorObject<
  33. "maxItems" | "minItems" | "minProperties" | "maxProperties" | "minLength" | "maxLength",
  34. {limit: number},
  35. number | {$data: string}
  36. >
  37. export type ValidationKeywordError =
  38. | LimitError
  39. | LimitNumberError
  40. | MultipleOfError
  41. | PatternError
  42. | RequiredError
  43. | UniqueItemsError
  44. | ConstError
  45. | EnumError