From 7e7cf34bd15420978f2018dab67a3a848aed37bd Mon Sep 17 00:00:00 2001 From: waneka Date: Wed, 22 Mar 2017 09:47:37 -0700 Subject: [PATCH 1/3] Improve Readme to include valid key values --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 33feec6..47aecb4 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,11 @@ cronExp.build(); // '* * * * *' ``` +The cron values are stored with the following keys, which must match identically when getting and setting: +```JavaScript +'minute', 'hour', 'dayOfTheMonth', 'month', 'dayOfTheWeek' +``` + API includes basic getters and setters: ```JavaScript cronExp.get('minute'); From e515a1a475e0289d1b3fd467db0905c3960de991 Mon Sep 17 00:00:00 2001 From: waneka Date: Wed, 22 Mar 2017 09:48:50 -0700 Subject: [PATCH 2/3] Fix bug with using setAll validateValue expects a string, not an array. --- cron-builder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cron-builder.js b/cron-builder.js index 6cd20fd..eb09363 100644 --- a/cron-builder.js +++ b/cron-builder.js @@ -41,7 +41,7 @@ var CronValidator = (function() { for (var measureOfTime in expression) { if (expression.hasOwnProperty(measureOfTime)) { - this.validateValue(measureOfTime, expression[measureOfTime]); + this.validateValue(measureOfTime, expression[measureOfTime][0]); } } }, From 904d5e7270bc6a2316603907ce645f0a431aa024 Mon Sep 17 00:00:00 2001 From: waneka Date: Wed, 22 Mar 2017 09:49:25 -0700 Subject: [PATCH 3/3] Improve error handling for validate value type checking for value, and null checking for both arguments --- cron-builder.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cron-builder.js b/cron-builder.js index eb09363..c5f8b99 100644 --- a/cron-builder.js +++ b/cron-builder.js @@ -89,6 +89,14 @@ var CronValidator = (function() { throw new Error('Invalid value; Only numbers 0-9, "-", and "*" chars are allowed'); } + if (!measureOfTime || !value) { + throw new Error('Missing arguments; Both measureOfTime and value are required arguments'); + } + + if (typeof(value) !== 'string') { + throw new Error('value argument must be a string'); + } + if (value !== '*') { // check to see if value is within range if value is not '*' if (value.indexOf('-') >= 0) { @@ -102,7 +110,6 @@ var CronValidator = (function() { throw new Error('Invalid value; top of range is not valid for "' + measureOfTime + '". Limit is ' + validatorObj[measureOfTime].max + '.'); } } else { - if (parseInt(value) < validatorObj[measureOfTime].min) { throw new Error('Invalid value; given value is not valid for "' + measureOfTime + '". Minimum value is "' + validatorObj[measureOfTime].min + '".'); } @@ -113,7 +120,6 @@ var CronValidator = (function() { } }; - return { measureOfTimeValues: MeasureOfTimeValues, validateExpression: validateExpression,