timepiece/node_modules/date-fns/parse/_lib/parsers.mjs

110 lines
6.0 KiB
JavaScript

import { EraParser } from "./parsers/EraParser.mjs";
import { YearParser } from "./parsers/YearParser.mjs";
import { LocalWeekYearParser } from "./parsers/LocalWeekYearParser.mjs";
import { ISOWeekYearParser } from "./parsers/ISOWeekYearParser.mjs";
import { ExtendedYearParser } from "./parsers/ExtendedYearParser.mjs";
import { QuarterParser } from "./parsers/QuarterParser.mjs";
import { StandAloneQuarterParser } from "./parsers/StandAloneQuarterParser.mjs";
import { MonthParser } from "./parsers/MonthParser.mjs";
import { StandAloneMonthParser } from "./parsers/StandAloneMonthParser.mjs";
import { LocalWeekParser } from "./parsers/LocalWeekParser.mjs";
import { ISOWeekParser } from "./parsers/ISOWeekParser.mjs";
import { DateParser } from "./parsers/DateParser.mjs";
import { DayOfYearParser } from "./parsers/DayOfYearParser.mjs";
import { DayParser } from "./parsers/DayParser.mjs";
import { LocalDayParser } from "./parsers/LocalDayParser.mjs";
import { StandAloneLocalDayParser } from "./parsers/StandAloneLocalDayParser.mjs";
import { ISODayParser } from "./parsers/ISODayParser.mjs";
import { AMPMParser } from "./parsers/AMPMParser.mjs";
import { AMPMMidnightParser } from "./parsers/AMPMMidnightParser.mjs";
import { DayPeriodParser } from "./parsers/DayPeriodParser.mjs";
import { Hour1to12Parser } from "./parsers/Hour1to12Parser.mjs";
import { Hour0to23Parser } from "./parsers/Hour0to23Parser.mjs";
import { Hour0To11Parser } from "./parsers/Hour0To11Parser.mjs";
import { Hour1To24Parser } from "./parsers/Hour1To24Parser.mjs";
import { MinuteParser } from "./parsers/MinuteParser.mjs";
import { SecondParser } from "./parsers/SecondParser.mjs";
import { FractionOfSecondParser } from "./parsers/FractionOfSecondParser.mjs";
import { ISOTimezoneWithZParser } from "./parsers/ISOTimezoneWithZParser.mjs";
import { ISOTimezoneParser } from "./parsers/ISOTimezoneParser.mjs";
import { TimestampSecondsParser } from "./parsers/TimestampSecondsParser.mjs";
import { TimestampMillisecondsParser } from "./parsers/TimestampMillisecondsParser.mjs";
/*
* | | Unit | | Unit |
* |-----|--------------------------------|-----|--------------------------------|
* | a | AM, PM | A* | Milliseconds in day |
* | b | AM, PM, noon, midnight | B | Flexible day period |
* | c | Stand-alone local day of week | C* | Localized hour w/ day period |
* | d | Day of month | D | Day of year |
* | e | Local day of week | E | Day of week |
* | f | | F* | Day of week in month |
* | g* | Modified Julian day | G | Era |
* | h | Hour [1-12] | H | Hour [0-23] |
* | i! | ISO day of week | I! | ISO week of year |
* | j* | Localized hour w/ day period | J* | Localized hour w/o day period |
* | k | Hour [1-24] | K | Hour [0-11] |
* | l* | (deprecated) | L | Stand-alone month |
* | m | Minute | M | Month |
* | n | | N | |
* | o! | Ordinal number modifier | O* | Timezone (GMT) |
* | p | | P | |
* | q | Stand-alone quarter | Q | Quarter |
* | r* | Related Gregorian year | R! | ISO week-numbering year |
* | s | Second | S | Fraction of second |
* | t! | Seconds timestamp | T! | Milliseconds timestamp |
* | u | Extended year | U* | Cyclic year |
* | v* | Timezone (generic non-locat.) | V* | Timezone (location) |
* | w | Local week of year | W* | Week of month |
* | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |
* | y | Year (abs) | Y | Local week-numbering year |
* | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |
*
* Letters marked by * are not implemented but reserved by Unicode standard.
*
* Letters marked by ! are non-standard, but implemented by date-fns:
* - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)
* - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,
* i.e. 7 for Sunday, 1 for Monday, etc.
* - `I` is ISO week of year, as opposed to `w` which is local week of year.
* - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.
* `R` is supposed to be used in conjunction with `I` and `i`
* for universal ISO week-numbering date, whereas
* `Y` is supposed to be used in conjunction with `w` and `e`
* for week-numbering date specific to the locale.
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here
export const parsers = {
G: new EraParser(),
y: new YearParser(),
Y: new LocalWeekYearParser(),
R: new ISOWeekYearParser(),
u: new ExtendedYearParser(),
Q: new QuarterParser(),
q: new StandAloneQuarterParser(),
M: new MonthParser(),
L: new StandAloneMonthParser(),
w: new LocalWeekParser(),
I: new ISOWeekParser(),
d: new DateParser(),
D: new DayOfYearParser(),
E: new DayParser(),
e: new LocalDayParser(),
c: new StandAloneLocalDayParser(),
i: new ISODayParser(),
a: new AMPMParser(),
b: new AMPMMidnightParser(),
B: new DayPeriodParser(),
h: new Hour1to12Parser(),
H: new Hour0to23Parser(),
K: new Hour0To11Parser(),
k: new Hour1To24Parser(),
m: new MinuteParser(),
s: new SecondParser(),
S: new FractionOfSecondParser(),
X: new ISOTimezoneWithZParser(),
x: new ISOTimezoneParser(),
t: new TimestampSecondsParser(),
T: new TimestampMillisecondsParser(),
};