ISOWeekParser.cjs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use strict";
  2. exports.ISOWeekParser = void 0;
  3. var _index = require("../../../setISOWeek.cjs");
  4. var _index2 = require("../../../startOfISOWeek.cjs");
  5. var _constants = require("../constants.cjs");
  6. var _Parser = require("../Parser.cjs");
  7. var _utils = require("../utils.cjs");
  8. // ISO week of year
  9. class ISOWeekParser extends _Parser.Parser {
  10. priority = 100;
  11. parse(dateString, token, match) {
  12. switch (token) {
  13. case "I":
  14. return (0, _utils.parseNumericPattern)(
  15. _constants.numericPatterns.week,
  16. dateString,
  17. );
  18. case "Io":
  19. return match.ordinalNumber(dateString, { unit: "week" });
  20. default:
  21. return (0, _utils.parseNDigits)(token.length, dateString);
  22. }
  23. }
  24. validate(_date, value) {
  25. return value >= 1 && value <= 53;
  26. }
  27. set(date, _flags, value) {
  28. return (0, _index2.startOfISOWeek)((0, _index.setISOWeek)(date, value));
  29. }
  30. incompatibleTokens = [
  31. "y",
  32. "Y",
  33. "u",
  34. "q",
  35. "Q",
  36. "M",
  37. "L",
  38. "w",
  39. "d",
  40. "D",
  41. "e",
  42. "c",
  43. "t",
  44. "T",
  45. ];
  46. }
  47. exports.ISOWeekParser = ISOWeekParser;