Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
static validateDate(input) {
// Try to recognize the input as a date-time. This works for responses such as "11/14/2018", "today at 9pm", "tomorrow", "Sunday at 5pm", and so on.
// The recognizer returns a list of potential recognition results, if any.
try {
const results = Recognizers.recognizeDateTime(input, Recognizers.Culture.English);
const now = new Date();
const earliest = now.getTime() + (60 * 60 * 1000);
let output;
results.forEach(result => {
// result.resolution is a dictionary, where the "values" entry contains the processed input.
result.resolution.values.forEach(resolution => {
// The processed input contains a "value" entry if it is a date-time value, or "start" and
// "end" entries if it is a date-time range.
const datevalue = resolution.value || resolution.start;
// If only time is given, assume it's for today.
const datetime = resolution.type === 'time'
? new Date(`${ now.toLocaleDateString() } ${ datevalue }`)
: new Date(datevalue);
if (datetime && earliest < datetime.getTime()) {
output = { success: true, date: datetime.toLocaleDateString() };
return;
// Currency recognizer - This function will find any currency presented
// E.g "Interest expense in the 1988 third quarter was $ 75.3 million" will return "75300000 Dollar"
...Recognizers.recognizeCurrency(input, culture),
// Dimension recognizer - This function will find any dimension presented
// E.g "The six-mile trip to my airport hotel that had taken 20 minutes earlier in the day took more than three hours." will return "6 Mile"
...Recognizers.recognizeDimension(input, culture),
// Temperature recognizer - This function will find any temperature presented
// E.g "Set the temperature to 30 degrees celsius" will return "30 C"
...Recognizers.recognizeTemperature(input, culture),
// DateTime recognizer - This function will find any Date even if its write in colloquial language -
// E.g "I'll go back 8pm today" will return "2017-10-04 20:00:00"
...Recognizers.recognizeDateTime(input, culture),
// Add PhoneNumber recognizer - This recognizer will find any phone number presented
// E.g "My phone number is ( 19 ) 38294427."
...Recognizers.recognizePhoneNumber(input, culture),
// Add IP recognizer - This recognizer will find any Ipv4/Ipv6 presented
// E.g "My Ip is 8.8.8.8"
...Recognizers.recognizeIpAddress(input, culture),
// URL recognizer -This recognizer will find all the urls
// E.g "bing.com"
...Recognizers.recognizeURL(input, culture),
// GUID recognizer - This recognizer will find all the GUID presented
// E.g "My GUID number is {123e4567-e89b-12d3-a456-426655440000}"
...Recognizers.recognizeGUID(input, culture),