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

95 lines
2.1 KiB
JavaScript
Raw Normal View History

2024-05-14 14:54:12 +00:00
"use strict";
exports.StandAloneMonthParser = void 0;
var _constants = require("../constants.js");
var _Parser = require("../Parser.js");
var _utils = require("../utils.js");
class StandAloneMonthParser extends _Parser.Parser {
priority = 110;
parse(dateString, token, match) {
const valueCallback = (value) => value - 1;
switch (token) {
// 1, 2, ..., 12
case "L":
return (0, _utils.mapValue)(
(0, _utils.parseNumericPattern)(
_constants.numericPatterns.month,
dateString,
),
valueCallback,
);
// 01, 02, ..., 12
case "LL":
return (0, _utils.mapValue)(
(0, _utils.parseNDigits)(2, dateString),
valueCallback,
);
// 1st, 2nd, ..., 12th
case "Lo":
return (0, _utils.mapValue)(
match.ordinalNumber(dateString, {
unit: "month",
}),
valueCallback,
);
// Jan, Feb, ..., Dec
case "LLL":
return (
match.month(dateString, {
width: "abbreviated",
context: "standalone",
}) ||
match.month(dateString, { width: "narrow", context: "standalone" })
);
// J, F, ..., D
case "LLLLL":
return match.month(dateString, {
width: "narrow",
context: "standalone",
});
// January, February, ..., December
case "LLLL":
default:
return (
match.month(dateString, { width: "wide", context: "standalone" }) ||
match.month(dateString, {
width: "abbreviated",
context: "standalone",
}) ||
match.month(dateString, { width: "narrow", context: "standalone" })
);
}
}
validate(_date, value) {
return value >= 0 && value <= 11;
}
set(date, _flags, value) {
date.setMonth(value, 1);
date.setHours(0, 0, 0, 0);
return date;
}
incompatibleTokens = [
"Y",
"R",
"q",
"Q",
"M",
"w",
"I",
"D",
"i",
"e",
"c",
"t",
"T",
];
}
exports.StandAloneMonthParser = StandAloneMonthParser;