params.js 803 B

123456789101112131415161718192021222324252627282930
  1. /**
  2. * Frontend route parameter validation helpers (RHL-021).
  3. *
  4. * Conventions:
  5. * - branch: "NL" + digits (e.g. NL01, NL200) - existence is validated separately for admin/dev
  6. * - year: "YYYY"
  7. * - month: "MM" (01-12)
  8. * - day: "DD" (01-31)
  9. */
  10. const BRANCH_RE = /^NL\d+$/;
  11. const YEAR_RE = /^\d{4}$/;
  12. const MONTH_RE = /^(0[1-9]|1[0-2])$/;
  13. const DAY_RE = /^(0[1-9]|[12]\d|3[01])$/;
  14. export function isValidBranchParam(value) {
  15. return typeof value === "string" && BRANCH_RE.test(value);
  16. }
  17. export function isValidYearParam(value) {
  18. return typeof value === "string" && YEAR_RE.test(value);
  19. }
  20. export function isValidMonthParam(value) {
  21. return typeof value === "string" && MONTH_RE.test(value);
  22. }
  23. export function isValidDayParam(value) {
  24. return typeof value === "string" && DAY_RE.test(value);
  25. }