bigint.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { setResponseValueAndErrors } from "../errorMessages.js";
  2. export function parseBigintDef(def, refs) {
  3. const res = {
  4. type: "integer",
  5. format: "int64",
  6. };
  7. if (!def.checks)
  8. return res;
  9. for (const check of def.checks) {
  10. switch (check.kind) {
  11. case "min":
  12. if (refs.target === "jsonSchema7") {
  13. if (check.inclusive) {
  14. setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
  15. }
  16. else {
  17. setResponseValueAndErrors(res, "exclusiveMinimum", check.value, check.message, refs);
  18. }
  19. }
  20. else {
  21. if (!check.inclusive) {
  22. res.exclusiveMinimum = true;
  23. }
  24. setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
  25. }
  26. break;
  27. case "max":
  28. if (refs.target === "jsonSchema7") {
  29. if (check.inclusive) {
  30. setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
  31. }
  32. else {
  33. setResponseValueAndErrors(res, "exclusiveMaximum", check.value, check.message, refs);
  34. }
  35. }
  36. else {
  37. if (!check.inclusive) {
  38. res.exclusiveMaximum = true;
  39. }
  40. setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
  41. }
  42. break;
  43. case "multipleOf":
  44. setResponseValueAndErrors(res, "multipleOf", check.value, check.message, refs);
  45. break;
  46. }
  47. }
  48. return res;
  49. }