/* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ // @ts-nocheck import type { Match } from '../../../locale/types.ts'; import type { Era } from '../../../types.ts'; import { Parser } from '../Parser.ts'; import type { ParseFlags, ParseResult } from '../types.ts'; export class EraParser extends Parser { priority = 140; parse(dateString: string, token: string, match: Match): ParseResult { switch (token) { // AD, BC case 'G': case 'GG': case 'GGG': return match.era(dateString, { width: 'abbreviated' }) || match.era(dateString, { width: 'narrow' }); // A, B case 'GGGGG': return match.era(dateString, { width: 'narrow' }); // Anno Domini, Before Christ case 'GGGG': default: return ( match.era(dateString, { width: 'wide' }) || match.era(dateString, { width: 'abbreviated' }) || match.era(dateString, { width: 'narrow' }) ); } } set(date: DateType, flags: ParseFlags, value: number): DateType { flags.era = value; date.setFullYear(value, 0, 1); date.setHours(0, 0, 0, 0); return date; } incompatibleTokens: string[] = ['R', 'u', 't', 'T']; } /* eslint-enable */