chrono-node
Advanced tools
Comparing version 1.4.5 to 1.4.6
@@ -14,3 +14,3 @@ { | ||
"license": "MIT", | ||
"version": "1.4.5", | ||
"version": "1.4.6", | ||
"directories": { | ||
@@ -17,0 +17,0 @@ "source": "./src", |
@@ -31,14 +31,6 @@ # Chrono | ||
#### Other Options: | ||
### Swift | ||
Doing something else? No worries. Try these: | ||
Try using the community-made [chrono-swift] wrapper. | ||
Platform | Installation | ||
---------|---- | ||
CDN | Via [jsDelivr]:<br> `<script src="https://cdn.jsdelivr.net/npm/chrono-node@VERSION/chrono.min.js"></script>` | ||
Rails | Install from [Rails Assets] by adding this to your Gemfile:<br> `gem 'rails-assets-chrono', source: 'https://rails-assets.org'` | ||
Swift | Try using the community-made [chrono-swift] wrapper. | ||
[Rails Assets]: https://rails-assets.org/ | ||
[jsDelivr]: https://www.jsdelivr.com/projects/chrono | ||
[chrono-swift]: https://github.com/neilsardesai/chrono-swift | ||
@@ -45,0 +37,0 @@ |
@@ -68,2 +68,5 @@ | ||
exports.nl = new Chrono( options.mergeOptions([ | ||
options.nl.casual, options.en, options.commonPostProcessing])); | ||
exports.pt = new Chrono( options.mergeOptions([ | ||
@@ -70,0 +73,0 @@ options.pt.casual, options.en, options.commonPostProcessing])); |
@@ -64,2 +64,3 @@ var parser = require('./parsers/parser'); | ||
exports.de(strictConfig), | ||
exports.nl(strictConfig), | ||
exports.pt(strictConfig), | ||
@@ -78,3 +79,4 @@ exports.es(strictConfig), | ||
// Some German abbriviate overlap with common English | ||
exports.de({ strict: true }), | ||
exports.de({ strict: true }), | ||
exports.nl, | ||
exports.pt, | ||
@@ -123,3 +125,34 @@ exports.es, | ||
exports.nl = function(config) { | ||
return { | ||
parsers: [ | ||
new parser.NLMonthNameLittleEndianParser(config), | ||
new parser.NLMonthNameParser(config), | ||
new parser.NLSlashDateFormatParser(config), | ||
new parser.NLTimeExpressionParser(config), | ||
], | ||
refiners: [ | ||
new refiner.OverlapRemovalRefiner(), | ||
new refiner.ForwardDateRefiner(), | ||
new refiner.NLMergeDateTimeRefiner(), | ||
new refiner.NLMergeDateRangeRefiner() | ||
] | ||
} | ||
}; | ||
exports.nl.casual = function() { | ||
var option = exports.nl({ | ||
strict: false | ||
}); | ||
option.parsers.unshift(new parser.NLCasualDateParser()); | ||
option.parsers.unshift(new parser.NLCasualTimeParser()); | ||
option.parsers.unshift(new parser.NLWeekdayParser()); | ||
return option; | ||
}; | ||
// ------------------------------------------------------------- | ||
exports.en = function(config) { | ||
@@ -219,4 +252,4 @@ return { | ||
exports.pt.casual = function() { | ||
var option = exports.pt({ | ||
strict: false | ||
var option = exports.pt({ | ||
strict: false | ||
}); | ||
@@ -249,4 +282,4 @@ | ||
exports.es.casual = function() { | ||
var option = exports.es({ | ||
strict: false | ||
var option = exports.es({ | ||
strict: false | ||
}); | ||
@@ -308,2 +341,2 @@ | ||
} | ||
}; | ||
}; |
@@ -12,25 +12,25 @@ /* | ||
var FIRST_REG_PATTERN = new RegExp("(^|\\s|T)" + | ||
"(?:(?:um|von)\\s*)?" + | ||
"(\\d{1,4}|mittags?|mitternachts?)" + | ||
"(?:" + | ||
"(?:\\.|\\:|\\:)(\\d{1,2})" + | ||
"(?:" + | ||
"(?:\\:|\\:)(\\d{2})" + | ||
")?" + | ||
"(?:(?:um|von)\\s*)?" + | ||
"(\\d{1,4}|mittags?|mitternachts?)" + | ||
"(?:" + | ||
"(?:\\.|\\:|\\:)(\\d{1,2})" + | ||
"(?:" + | ||
"(?:\\:|\\:)(\\d{2})" + | ||
")?" + | ||
")?" + | ||
"(?:\\s*uhr)?" + | ||
"(?:\\s*(morgens|vormittags|mittags|nachmittags|abends|nachts))?" + | ||
"(?:\\s*(morgens|vormittags|mittags|nachmittags|abends|nachts))?" + | ||
"(?=\\W|$)", 'i'); | ||
var SECOND_REG_PATTERN = new RegExp("^\\s*" + | ||
"(\\-|\\–|\\~|\\〜|bis|\\?)\\s*" + | ||
var SECOND_REG_PATTERN = new RegExp("^\\s*" + | ||
"(\\-|\\–|\\~|\\〜|bis|\\?)\\s*" + | ||
"(\\d{1,4})" + | ||
"(?:" + | ||
"(?:\\.|\\:|\\:)(\\d{1,2})" + | ||
"(?:" + | ||
"(?:\\.|\\:|\\:)(\\d{1,2})" + | ||
")?" + | ||
")?" + | ||
"(?:\\s*(morgens|vormittags|mittags|nachmittags|abends|nachts))?" + | ||
"(?:" + | ||
"(?:\\.|\\:|\\:)(\\d{1,2})" + | ||
"(?:" + | ||
"(?:\\.|\\:|\\:)(\\d{1,2})" + | ||
")?" + | ||
")?" + | ||
"(?:\\s*(morgens|vormittags|mittags|nachmittags|abends|nachts))?" + | ||
"(?=\\W|$)", 'i'); | ||
@@ -48,5 +48,5 @@ | ||
this.pattern = function() { return FIRST_REG_PATTERN; } | ||
this.extract = function(text, ref, match, opt){ | ||
this.extract = function(text, ref, match, opt){ | ||
// This pattern can be overlaped Ex. [12] AM, 1[2] AM | ||
@@ -64,3 +64,3 @@ if (match.index > 0 && text[match.index-1].match(/\w/)) return null; | ||
result.start.imply('year', refMoment.year()); | ||
var hour = 0; | ||
@@ -71,3 +71,3 @@ var minute = 0; | ||
// ----- Second | ||
if(match[SECOND_GROUP] != null){ | ||
if(match[SECOND_GROUP] != null){ | ||
var second = parseInt(match[SECOND_GROUP]); | ||
@@ -78,9 +78,9 @@ if(second >= 60) return null; | ||
} | ||
// ----- Hours | ||
if (/mittags?/i.test(match[HOUR_GROUP])) { | ||
meridiem = 1; | ||
meridiem = 1; | ||
hour = 12; | ||
} else if (/mitternachts?/i.test(match[HOUR_GROUP])) { | ||
meridiem = 0; | ||
meridiem = 0; | ||
hour = 0; | ||
@@ -90,11 +90,11 @@ } else { | ||
} | ||
// ----- Minutes | ||
if(match[MINUTE_GROUP] != null){ | ||
if(match[MINUTE_GROUP] != null){ | ||
minute = parseInt(match[MINUTE_GROUP]); | ||
} else if(hour > 100) { | ||
} else if(hour > 100) { | ||
minute = hour%100; | ||
hour = parseInt(hour/100); | ||
} | ||
} | ||
if(minute >= 60) { | ||
@@ -107,18 +107,18 @@ return null; | ||
} | ||
if (hour >= 12) { | ||
if (hour >= 12) { | ||
meridiem = 1; | ||
} | ||
// ----- AM & PM | ||
// ----- AM & PM | ||
if (match[AM_PM_HOUR_GROUP] != null) { | ||
if (hour > 12) return null; | ||
var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase(); | ||
var ampm = match[AM_PM_HOUR_GROUP].toLowerCase(); | ||
if (ampm === 'morgens' || ampm === 'vormittags') { | ||
meridiem = 0; | ||
meridiem = 0; | ||
if(hour == 12) hour = 0; | ||
} else { | ||
meridiem = 1; | ||
meridiem = 1; | ||
if(hour != 12) hour += 12; | ||
} | ||
} | ||
} | ||
@@ -137,3 +137,3 @@ result.start.assign('hour', hour); | ||
} | ||
// ============================================================== | ||
@@ -145,3 +145,3 @@ // Extracting the 'to' chunk | ||
// Not accept number only result | ||
if (result.text.match(/^\d+$/)) { | ||
if (result.text.match(/^\d+$/)) { | ||
return null; | ||
@@ -168,3 +168,3 @@ } | ||
// ----- Second | ||
if(match[SECOND_GROUP] != null){ | ||
if(match[SECOND_GROUP] != null){ | ||
var second = parseInt(match[SECOND_GROUP]); | ||
@@ -177,9 +177,9 @@ if(second >= 60) return null; | ||
hour = parseInt(match[2]); | ||
// ----- Minute | ||
if (match[MINUTE_GROUP]!= null) { | ||
minute = parseInt(match[MINUTE_GROUP]); | ||
if(minute >= 60) return result; | ||
} else if (hour > 100) { | ||
@@ -198,7 +198,7 @@ | ||
} | ||
if (hour >= 12) { | ||
if (hour >= 12) { | ||
meridiem = 1; | ||
} | ||
// ----- AM & PM | ||
// ----- AM & PM | ||
if (match[AM_PM_HOUR_GROUP] != null) { | ||
@@ -208,5 +208,5 @@ | ||
var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase(); | ||
var ampm = match[AM_PM_HOUR_GROUP].toLowerCase(); | ||
if (ampm === 'morgens' || ampm === 'vormittags') { | ||
meridiem = 0; | ||
meridiem = 0; | ||
if(hour == 12) { | ||
@@ -219,11 +219,11 @@ hour = 0; | ||
} else { | ||
meridiem = 1; | ||
meridiem = 1; | ||
if(hour != 12) hour += 12; | ||
} | ||
if (!result.start.isCertain('meridiem')) { | ||
if (meridiem == 0) { | ||
result.start.imply('meridiem', 0); | ||
if (result.start.get('hour') == 12) { | ||
@@ -236,5 +236,5 @@ result.start.assign('hour', 0); | ||
result.start.imply('meridiem', 1); | ||
if (result.start.get('hour') != 12) { | ||
result.start.assign('hour', result.start.get('hour') + 12); | ||
result.start.assign('hour', result.start.get('hour') + 12); | ||
} | ||
@@ -264,5 +264,5 @@ } | ||
} | ||
return result; | ||
} | ||
} |
@@ -133,1 +133,9 @@ const dayjs = require('dayjs'); | ||
exports.DECasualDateParser = require('./de/DECasualDateParser').Parser; | ||
exports.NLMonthNameParser = require('./nl/NLMonthNameParser').Parser; | ||
exports.NLMonthNameLittleEndianParser = require('./nl/NLMonthNameLittleEndianParser').Parser; | ||
exports.NLSlashDateFormatParser = require('./nl/NLSlashDateFormatParser').Parser; | ||
exports.NLWeekdayParser = require('./nl/NLWeekdayParser').Parser; | ||
exports.NLTimeExpressionParser = require('./nl/NLTimeExpressionParser').Parser; | ||
exports.NLCasualDateParser = require('./nl/NLCasualDateParser').Parser; | ||
exports.NLCasualTimeParser = require('./nl/NLCasualTimeParser').Parser; |
@@ -50,1 +50,5 @@ | ||
exports.DEMergeDateTimeRefiner = require('./de/DEMergeDateTimeRefiner').Refiner; | ||
// nl refiners | ||
exports.NLMergeDateRangeRefiner = require('./nl/NLMergeDateRangeRefiner').Refiner; | ||
exports.NLMergeDateTimeRefiner = require('./nl/NLMergeDateTimeRefiner').Refiner; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2252996
163
25774
289