summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/options.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/options.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/options.js273
1 files changed, 273 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/options.js b/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/options.js
new file mode 100644
index 00000000..1811cf72
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/options.js
@@ -0,0 +1,273 @@
+var parser = require('./parsers/parser');
+var refiner = require('./refiners/refiner');
+
+
+exports.mergeOptions = function(options) {
+
+ var addedTypes = {};
+ var mergedOption = {
+ parsers: [],
+ refiners: []
+ };
+
+ options.forEach(function (option) {
+
+ if (option.call) {
+ option = option.call();
+ }
+
+ if (option.parsers) {
+ option.parsers.forEach(function (p) {
+ if (!addedTypes[p.constructor]) {
+ mergedOption.parsers.push(p);
+ addedTypes[p.constructor] = true;
+ }
+ });
+ }
+
+ if (option.refiners) {
+ option.refiners.forEach(function (r) {
+ if (!addedTypes[r.constructor]) {
+ mergedOption.refiners.push(r);
+ addedTypes[r.constructor] = true;
+ }
+ });
+ }
+ });
+
+ return mergedOption;
+};
+
+
+exports.commonPostProcessing = function() {
+ return {
+ refiners: [
+ // These should be after all other refiners
+ new refiner.ExtractTimezoneOffsetRefiner(),
+ new refiner.ExtractTimezoneAbbrRefiner(),
+ new refiner.UnlikelyFormatFilter()
+ ]
+ }
+};
+
+
+// -------------------------------------------------------------
+
+exports.strictOption = function () {
+ var strictConfig = {
+ strict: true
+ };
+
+ return exports.mergeOptions([
+ exports.en(strictConfig),
+ exports.de(strictConfig),
+ exports.es(strictConfig),
+ exports.fr(strictConfig),
+ exports.ja(strictConfig),
+ exports.zh,
+ exports.commonPostProcessing
+ ]);
+};
+
+exports.casualOption = function () {
+ return exports.mergeOptions([
+ exports.en.casual,
+ // Some German abbriviate overlap with common English
+ exports.de({ strict: true }),
+ exports.es.casual,
+ exports.fr.casual,
+ exports.ja.casual,
+ exports.zh,
+ exports.commonPostProcessing
+ ]);
+};
+
+// -------------------------------------------------------------
+
+exports.de = function(config) {
+ return {
+ parsers: [
+ new parser.DEDeadlineFormatParser(config),
+ new parser.DEMonthNameLittleEndianParser(config),
+ new parser.DEMonthNameParser(config),
+ new parser.DESlashDateFormatParser(config),
+ new parser.DETimeAgoFormatParser(config),
+ new parser.DETimeExpressionParser(config)
+ ],
+ refiners: [
+ new refiner.OverlapRemovalRefiner(),
+ new refiner.ForwardDateRefiner(),
+ new refiner.DEMergeDateTimeRefiner(),
+ new refiner.DEMergeDateRangeRefiner()
+ ]
+ }
+};
+
+exports.de.casual = function() {
+ var option = exports.de({
+ strict: false
+ });
+ option.parsers.unshift(new parser.DECasualDateParser());
+ option.parsers.unshift(new parser.DEWeekdayParser());
+ return option;
+};
+
+
+
+// -------------------------------------------------------------
+
+
+exports.en = function(config) {
+ return {
+ parsers: [
+ new parser.ENISOFormatParser(config),
+ new parser.ENDeadlineFormatParser(config),
+ new parser.ENMonthNameLittleEndianParser(config),
+ new parser.ENMonthNameMiddleEndianParser(config),
+ new parser.ENMonthNameParser(config),
+ new parser.ENSlashDateFormatParser(config),
+ new parser.ENSlashDateFormatStartWithYearParser(config),
+ new parser.ENSlashMonthFormatParser(config),
+ new parser.ENTimeAgoFormatParser(config),
+ new parser.ENTimeLaterFormatParser(config),
+ new parser.ENTimeExpressionParser(config)
+ ],
+ refiners: [
+ new refiner.OverlapRemovalRefiner(),
+ new refiner.ForwardDateRefiner(),
+
+ // English
+ new refiner.ENMergeDateTimeRefiner(),
+ new refiner.ENMergeDateRangeRefiner(),
+ new refiner.ENPrioritizeSpecificDateRefiner()
+ ]
+ }
+};
+
+exports.en.casual = function(config) {
+ config = config || {};
+ config.strict = false;
+ var option = exports.en(config);
+
+ // en
+ option.parsers.unshift(new parser.ENCasualDateParser());
+ option.parsers.unshift(new parser.ENCasualTimeParser());
+ option.parsers.unshift(new parser.ENWeekdayParser());
+ option.parsers.unshift(new parser.ENRelativeDateFormatParser());
+ return option;
+};
+
+
+exports.en_GB = function(config) {
+ config = config || {};
+ config.littleEndian = true;
+ return exports.en(config);
+}
+
+exports.en_GB.casual = function(config) {
+ config = config || {};
+ config.littleEndian = true;
+ return exports.en.casual(config);
+}
+
+// -------------------------------------------------------------
+
+exports.ja = function() {
+ return {
+ parsers: [
+ new parser.JPStandardParser()
+ ],
+ refiners: [
+ new refiner.OverlapRemovalRefiner(),
+ new refiner.ForwardDateRefiner(),
+ new refiner.JPMergeDateRangeRefiner()
+ ]
+ }
+};
+
+exports.ja.casual = function() {
+ var option = exports.ja();
+ option.parsers.unshift(new parser.JPCasualDateParser());
+ return option;
+};
+
+
+// -------------------------------------------------------------
+
+
+exports.es = function(config) {
+ return {
+ parsers: [
+ new parser.ESTimeAgoFormatParser(config),
+ new parser.ESDeadlineFormatParser(config),
+ new parser.ESTimeExpressionParser(config),
+ new parser.ESMonthNameLittleEndianParser(config),
+ new parser.ESSlashDateFormatParser(config)
+ ],
+ refiners: [
+ new refiner.OverlapRemovalRefiner(),
+ new refiner.ForwardDateRefiner()
+ ]
+ }
+};
+
+exports.es.casual = function() {
+ var option = exports.es({
+ strict: false
+ });
+
+ option.parsers.unshift(new parser.ESCasualDateParser());
+ option.parsers.unshift(new parser.ESWeekdayParser());
+ return option;
+};
+
+
+// -------------------------------------------------------------
+
+exports.fr = function(config) {
+ return {
+ parsers: [
+ new parser.FRDeadlineFormatParser(config),
+ new parser.FRMonthNameLittleEndianParser(config),
+ new parser.FRSlashDateFormatParser(config),
+ new parser.FRTimeAgoFormatParser(config),
+ new parser.FRTimeExpressionParser(config)
+ ],
+ refiners: [
+ new refiner.OverlapRemovalRefiner(),
+ new refiner.ForwardDateRefiner(),
+ new refiner.FRMergeDateRangeRefiner(),
+ new refiner.FRMergeDateTimeRefiner()
+ ]
+ }
+};
+
+exports.fr.casual = function() {
+ var option = exports.fr({
+ strict: false
+ });
+
+ option.parsers.unshift(new parser.FRCasualDateParser());
+ option.parsers.unshift(new parser.FRWeekdayParser());
+ option.parsers.unshift(new parser.FRRelativeDateFormatParser());
+ return option;
+};
+
+
+// -------------------------------------------------------------
+
+exports.zh = function() {
+ return {
+ parsers: [
+ new parser.ZHHantDateParser(),
+ new parser.ZHHantWeekdayParser(),
+ new parser.ZHHantTimeExpressionParser(),
+ new parser.ZHHantCasualDateParser(),
+ new parser.ZHHantDeadlineFormatParser()
+ ],
+ refiners: [
+ new refiner.OverlapRemovalRefiner(),
+ new refiner.ForwardDateRefiner()
+ ]
+ }
+}; \ No newline at end of file