From 5117cf819db77f19c455b8586a0aead117d933f4 Mon Sep 17 00:00:00 2001 From: itmor Date: Fri, 29 May 2020 13:52:29 +0300 Subject: [PATCH] add isValidDateArg --- build/calendar-array.min.js | 2 +- src/calendar-array.js | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/build/calendar-array.min.js b/build/calendar-array.min.js index 95e6a15..a939d78 100644 --- a/build/calendar-array.min.js +++ b/build/calendar-array.min.js @@ -1 +1 @@ -"use strict";function _classCallCheck(a,r){if(!(a instanceof r))throw new TypeError("Cannot call a class as a function")}var CalendarArray=function a(){_classCallCheck(this,a)};"undefined"!=typeof module?module.exports=CalendarArray:window.CalendarArray=CalendarArray; \ No newline at end of file +"use strict";function _typeof(r){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}function _createForOfIteratorHelper(r,e){var t;if("undefined"==typeof Symbol||null==r[Symbol.iterator]){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,a=function(){};return{s:a,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,l=!1;return{s:function(){t=r[Symbol.iterator]()},n:function(){var r=t.next();return i=r.done,r},e:function(r){l=!0,o=r},f:function(){try{i||null==t.return||t.return()}finally{if(l)throw o}}}}function _unsupportedIterableToArray(r,e){if(r){if("string"==typeof r)return _arrayLikeToArray(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,e):void 0}}function _arrayLikeToArray(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t0))throw new Error("Empty args array, pass an array with a date");var e,t=_createForOfIteratorHelper(r);try{for(t.s();!(e=t.n()).done;){var n=e.value;if(!Array.isArray(n))throw new TypeError("type: ".concat(_typeof(n)," <- the argument is of the wrong type, array expected"));if(0===n.length)throw new Error("length: ".concat(n.length," <- array is empty"));var a,o=_createForOfIteratorHelper(n);try{for(o.s();!(a=o.n()).done;){var i=a.value;if("number"!=typeof i)throw new TypeError("type: ".concat(_typeof(i)," <- invalid date type in this array of dates, expected number"))}}catch(r){o.e(r)}finally{o.f()}}}catch(r){t.e(r)}finally{t.f()}return!0};"undefined"!=typeof module?module.exports=new CalendarArray:window.calendarArray=new CalendarArray; \ No newline at end of file diff --git a/src/calendar-array.js b/src/calendar-array.js index 9f18070..b4c082c 100644 --- a/src/calendar-array.js +++ b/src/calendar-array.js @@ -1,10 +1,44 @@ class CalendarArray { + getCalendar(...dates) { + if (this.#isValidDateArg(dates)) { + console.log('is valid'); + } + } + /* + Validates getCalendar arguments. + - sample correct arguments + [[2020, 3], [2012], [2007]] + */ + #isValidDateArg(dates) { + if (dates.length > 0) { + for (let date of dates) { + + if (!Array.isArray(date)) { + throw new TypeError(`type: ${typeof date} <- the argument is of the wrong type, array expected`); + + } else if (date.length === 0) { + throw new Error(`length: ${date.length} <- array is empty`); + } else { + + for (let value of date) { + if (typeof value !== 'number') { + throw new TypeError(`type: ${typeof value} <- invalid date type in this array of dates, expected number`); + } + } + } + } + } else { + throw new Error('Empty args array, pass an array with a date'); + } + + return true; + } } // export globals if (typeof module !== 'undefined') { module.exports = new CalendarArray(); } else { - window.CalendarArray = new CalendarArray(); + window.calendarArray = new CalendarArray(); }