/* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ // @ts-nocheck import { startOfISOWeek } from '../../../startOfISOWeek/index.ts'; import { constructFrom } from '../../../constructFrom/index.ts'; import { Parser } from '../Parser.ts'; import type { ParseFlags, ParseResult } from '../types.ts'; import { parseNDigitsSigned } from '../utils.ts'; // ISO week-numbering year export class ISOWeekYearParser extends Parser { priority = 130; parse(dateString: string, token: string): ParseResult { if (token === 'R') { return parseNDigitsSigned(4, dateString); } return parseNDigitsSigned(token.length, dateString); } set(date: DateType, _flags: ParseFlags, value: number): DateType { const firstWeekOfYear = constructFrom(date, 0); firstWeekOfYear.setFullYear(value, 0, 4); firstWeekOfYear.setHours(0, 0, 0, 0); return startOfISOWeek(firstWeekOfYear); } incompatibleTokens: string[] = ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']; } /* eslint-enable */