ISOTimezoneParser.cjs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. exports.ISOTimezoneParser = void 0;
  3. var _index = require("../../../constructFrom.cjs");
  4. var _index2 = require("../../../_lib/getTimezoneOffsetInMilliseconds.cjs");
  5. var _constants = require("../constants.cjs");
  6. var _Parser = require("../Parser.cjs");
  7. var _utils = require("../utils.cjs");
  8. // Timezone (ISO-8601)
  9. class ISOTimezoneParser extends _Parser.Parser {
  10. priority = 10;
  11. parse(dateString, token) {
  12. switch (token) {
  13. case "x":
  14. return (0, _utils.parseTimezonePattern)(
  15. _constants.timezonePatterns.basicOptionalMinutes,
  16. dateString,
  17. );
  18. case "xx":
  19. return (0, _utils.parseTimezonePattern)(
  20. _constants.timezonePatterns.basic,
  21. dateString,
  22. );
  23. case "xxxx":
  24. return (0, _utils.parseTimezonePattern)(
  25. _constants.timezonePatterns.basicOptionalSeconds,
  26. dateString,
  27. );
  28. case "xxxxx":
  29. return (0, _utils.parseTimezonePattern)(
  30. _constants.timezonePatterns.extendedOptionalSeconds,
  31. dateString,
  32. );
  33. case "xxx":
  34. default:
  35. return (0, _utils.parseTimezonePattern)(
  36. _constants.timezonePatterns.extended,
  37. dateString,
  38. );
  39. }
  40. }
  41. set(date, flags, value) {
  42. if (flags.timestampIsSet) return date;
  43. return (0, _index.constructFrom)(
  44. date,
  45. date.getTime() -
  46. (0, _index2.getTimezoneOffsetInMilliseconds)(date) -
  47. value,
  48. );
  49. }
  50. incompatibleTokens = ["t", "T", "X"];
  51. }
  52. exports.ISOTimezoneParser = ISOTimezoneParser;