110 lines
6.0 KiB
JavaScript
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(),
|
|
};
|