UNPKG

1.51 kBPlain TextView Raw
1import { Configuration, Parser, Refiner } from "./chrono";
2
3import ExtractTimezoneAbbrRefiner from "./common/refiners/ExtractTimezoneAbbrRefiner";
4import ExtractTimezoneOffsetRefiner from "./common/refiners/ExtractTimezoneOffsetRefiner";
5import OverlapRemovalRefiner from "./common/refiners/OverlapRemovalRefiner";
6import ForwardDateRefiner from "./common/refiners/ForwardDateRefiner";
7import UnlikelyFormatFilter from "./common/refiners/UnlikelyFormatFilter";
8import ISOFormatParser from "./common/parsers/ISOFormatParser";
9import MergeWeekdayComponentRefiner from "./common/refiners/MergeWeekdayComponentRefiner";
10
11export function includeCommonConfiguration(configuration: Configuration, strictMode = false): Configuration {
12 configuration.parsers.unshift(new ISOFormatParser());
13
14 configuration.refiners.unshift(new MergeWeekdayComponentRefiner());
15 configuration.refiners.unshift(new ExtractTimezoneOffsetRefiner());
16 configuration.refiners.unshift(new OverlapRemovalRefiner());
17
18 // Unlike ExtractTimezoneOffsetRefiner, this refiner relies on knowing both date and time in cases where the tz
19 // is ambiguous (in terms of DST/non-DST). It therefore needs to be applied as late as possible in the parsing.
20 configuration.refiners.push(new ExtractTimezoneAbbrRefiner());
21 configuration.refiners.push(new OverlapRemovalRefiner());
22 configuration.refiners.push(new ForwardDateRefiner());
23 configuration.refiners.push(new UnlikelyFormatFilter(strictMode));
24 return configuration;
25}