timepiece/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js

58 lines
1.5 KiB
JavaScript
Raw Normal View History

2024-05-14 14:54:12 +00:00
"use strict";
exports.ISOTimezoneParser = void 0;
var _index = require("../../../constructFrom.js");
var _index2 = require("../../../_lib/getTimezoneOffsetInMilliseconds.js");
var _constants = require("../constants.js");
var _Parser = require("../Parser.js");
var _utils = require("../utils.js");
// Timezone (ISO-8601)
class ISOTimezoneParser extends _Parser.Parser {
priority = 10;
parse(dateString, token) {
switch (token) {
case "x":
return (0, _utils.parseTimezonePattern)(
_constants.timezonePatterns.basicOptionalMinutes,
dateString,
);
case "xx":
return (0, _utils.parseTimezonePattern)(
_constants.timezonePatterns.basic,
dateString,
);
case "xxxx":
return (0, _utils.parseTimezonePattern)(
_constants.timezonePatterns.basicOptionalSeconds,
dateString,
);
case "xxxxx":
return (0, _utils.parseTimezonePattern)(
_constants.timezonePatterns.extendedOptionalSeconds,
dateString,
);
case "xxx":
default:
return (0, _utils.parseTimezonePattern)(
_constants.timezonePatterns.extended,
dateString,
);
}
}
set(date, flags, value) {
if (flags.timestampIsSet) return date;
return (0, _index.constructFrom)(
date,
date.getTime() -
(0, _index2.getTimezoneOffsetInMilliseconds)(date) -
value,
);
}
incompatibleTokens = ["t", "T", "X"];
}
exports.ISOTimezoneParser = ISOTimezoneParser;