Files
CalendarApi/frontend/node_modules/date-fns/parse/_lib/parsers/EraParser.js
Michilis 75105b8b46 Add OpenAPI docs, frontend, migrations, and API updates
- OpenAPI: add missing endpoints (add-from-url, subscriptions, public availability)
- OpenAPI: CalendarSubscription schema, Subscriptions tag
- Frontend app
- Migrations: count_for_availability, subscriptions_sync, user_preferences, calendar_settings
- Config, rate limit, auth, calendar, booking, ICS, availability, user service updates

Made-with: Cursor
2026-03-02 14:07:55 +00:00

40 lines
922 B
JavaScript

import { Parser } from "../Parser.js";
export class EraParser extends Parser {
priority = 140;
parse(dateString, token, match) {
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, flags, value) {
flags.era = value;
date.setFullYear(value, 0, 1);
date.setHours(0, 0, 0, 0);
return date;
}
incompatibleTokens = ["R", "u", "t", "T"];
}