UNPKG

date-fns

Version:

Modern JavaScript date utility library

48 lines (41 loc) 975 B
import { setISOWeek } from "../../../setISOWeek.js"; import { startOfISOWeek } from "../../../startOfISOWeek.js"; import { numericPatterns } from "../constants.js"; import { Parser } from "../Parser.js"; import { parseNDigits, parseNumericPattern } from "../utils.js"; // ISO week of year export class ISOWeekParser extends Parser { priority = 100; parse(dateString, token, match) { switch (token) { case "I": return parseNumericPattern(numericPatterns.week, dateString); case "Io": return match.ordinalNumber(dateString, { unit: "week" }); default: return parseNDigits(token.length, dateString); } } validate(_date, value) { return value >= 1 && value <= 53; } set(date, _flags, value) { return startOfISOWeek(setISOWeek(date, value)); } incompatibleTokens = [ "y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "e", "c", "t", "T", ]; }