/* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ // @ts-nocheck import type { Match } from '../../../locale/types.ts'; import { setDay } from '../../../setDay/index.ts'; import { Parser } from '../Parser.ts'; import type { ParseFlags, ParseResult, ParserOptions } from '../types.ts'; // Day of week export class DayParser extends Parser { priority = 90; parse(dateString: string, token: string, match: Match): ParseResult { switch (token) { // Tue case 'E': case 'EE': case 'EEE': return ( match.day(dateString, { width: 'abbreviated', context: 'formatting', }) || match.day(dateString, { width: 'short', context: 'formatting' }) || match.day(dateString, { width: 'narrow', context: 'formatting' }) ); // T case 'EEEEE': return match.day(dateString, { width: 'narrow', context: 'formatting', }); // Tu case 'EEEEEE': return ( match.day(dateString, { width: 'short', context: 'formatting' }) || match.day(dateString, { width: 'narrow', context: 'formatting' }) ); // Tuesday case 'EEEE': default: return ( match.day(dateString, { width: 'wide', context: 'formatting' }) || match.day(dateString, { width: 'abbreviated', context: 'formatting', }) || match.day(dateString, { width: 'short', context: 'formatting' }) || match.day(dateString, { width: 'narrow', context: 'formatting' }) ); } } validate(_date: DateType, value: number): boolean { return value >= 0 && value <= 6; } set(date: DateType, _flags: ParseFlags, value: number, options: ParserOptions): DateType { date = setDay(date, value, options); date.setHours(0, 0, 0, 0); return date; } incompatibleTokens: string[] = ['D', 'i', 'e', 'c', 't', 'T']; } /* eslint-enable */