UNPKG

@dotgov/core

Version:

DGS core.

86 lines 12.3 kB
export class Helper { static validValue(val) { const type = typeof val; if (val === undefined) { return false; } else if (type === 'string') { return val !== ''; } else if (type === 'number') { return Number.isFinite(val); } else { return true; } } /** * @param _date * @param showTime Decide if we should show the time as well or not * @param forControl Decide if should return format dd/mm/yyyy * @returns YYYY-MM-DD HH:mm */ static formatDate(_date, showTime = true, forControl = false) { if (!_date) { return; } const date = Helper.convertToDate(_date); const pad = n => (n <= 9 ? `0${n}` : n); const time = ` ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`; if (forControl) { return `${pad(date.getDate())}/${pad(date.getMonth() + 1)}/${date.getFullYear()}${showTime ? time : ''}`.trim(); } // For .post send MM/dd/yyyy HH:mm:ss. return `${pad(date.getMonth() + 1)}/${pad(date.getDate())}/${date.getFullYear()}${showTime ? time : ''}`.trim(); } static stringToDate(strDate, dayFirst = false) { // IE11 fix, if match: "2018-03-14 04:31:56.142" // Invalid date fix: 01/02/2018 => 01, 02, 2017; 2018-02-01 => 2018, 02, 01 let res = strDate.match(/\d+/gim).map(res => Number(res)); let [MM, dd, YYYY, HH, mm, ss] = res; if (dayFirst) { [dd, MM, YYYY] = res; } else if (MM > 12) { // First was year, transforming to correspond. [YYYY, MM, dd] = res; } const sanitize = num => (num !== undefined ? num : 0); return new Date(sanitize(YYYY), sanitize(Number(MM) - 1), sanitize(dd), sanitize(HH), sanitize(mm), sanitize(ss)); } static convertToDate(d) { if (d === undefined || d === null) { return NaN; } const isDate = d.constructor === Date; const isArray = d.constructor === Array; const isNum = d.constructor === Number; const isString = d.constructor === String; const isObject = typeof d === 'object'; return ((isDate && d) || (isArray && new Date(d[0], d[1], d[2])) || (isNum && new Date(d)) || (isString && Helper.stringToDate(d)) || (isObject && new Date(d.year, d.month, d.date)) || NaN); } static camelize(str) { const capitalize = _str => _str.charAt(0).toUpperCase() + _str.toLowerCase().slice(1); const string = str .toLowerCase() .replace(/[^A-Za-z0-9]/g, ' ') .split(' ') .reduce((result, word) => result + capitalize(word.toLowerCase())); return string.charAt(0).toLowerCase() + string.slice(1); } static isValidUrl(uri) { try { new URL(uri); } catch (_) { return false; } return true; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zaGFyZWQvaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxNQUFNO0lBQ2pCLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRztRQUNuQixNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsQ0FBQztRQUN4QixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDckIsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM1QixPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7U0FDbkI7YUFBTSxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFVLEVBQUUsUUFBUSxHQUFHLElBQUksRUFBRSxVQUFVLEdBQUcsS0FBSztRQUMvRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFB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dGljIHZhbGlkVmFsdWUodmFsKSB7XHJcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbDtcclxuICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiB2YWwgIT09ICcnO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnbnVtYmVyJykge1xyXG4gICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHZhbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBfZGF0ZVxyXG4gICAqIEBwYXJhbSBzaG93VGltZSBEZWNpZGUgaWYgd2Ugc2hvdWxkIHNob3cgdGhlIHRpbWUgYXMgd2VsbCBvciBub3RcclxuICAgKiBAcGFyYW0gZm9yQ29udHJvbCBEZWNpZGUgaWYgc2hvdWxkIHJldHVybiBmb3JtYXQgZGQvbW0veXl5eVxyXG4gICAqIEByZXR1cm5zIFlZWVktTU0tREQgSEg6bW1cclxuICAgKi9cclxuICBzdGF0aWMgZm9ybWF0RGF0ZShfZGF0ZTogYW55LCBzaG93VGltZSA9IHRydWUsIGZvckNvbnRyb2wgPSBmYWxzZSkge1xyXG4gICAgaWYgKCFfZGF0ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRlID0gSGVscGVyLmNvbnZlcnRUb0RhdGUoX2RhdGUpO1xyXG4gICAgY29uc3QgcGFkID0gbiA9PiAobiA8PSA5ID8gYDAke259YCA6IG4pO1xyXG4gICAgY29uc3QgdGltZSA9IGAgJHtwYWQoZGF0ZS5nZXRIb3VycygpKX06JHtwYWQoZGF0ZS5nZXRNaW51dGVzKCkpfToke3BhZChkYXRlLmdldFNlY29uZHMoKSl9YDtcclxuICAgIGlmIChmb3JDb250cm9sKSB7XHJcbiAgICAgIHJldHVybiBgJHtwYWQoZGF0ZS5nZXREYXRlKCkpfS8ke3BhZChkYXRlLmdldE1vbnRoKCkgKyAxKX0vJHtkYXRlLmdldEZ1bGxZZWFyKCl9JHtcclxuICAgICAgICBzaG93VGltZSA/IHRpbWUgOiAnJ1xyXG4gICAgICB9YC50cmltKCk7XHJcbiAgICB9XHJcbiAgICAvLyBGb3IgLnBvc3Qgc2VuZCBNTS9kZC95eXl5IEhIOm1tOnNzLlxyXG4gICAgcmV0dXJuIGAke3BhZChkYXRlLmdldE1vbnRoKCkgKyAxKX0vJHtwYWQoZGF0ZS5nZXREYXRlKCkpfS8ke2RhdGUuZ2V0RnVsbFllYXIoKX0ke1xyXG4gICAgICBzaG93VGltZSA/IHRpbWUgOiAnJ1xyXG4gICAgfWAudHJpbSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHN0cmluZ1RvRGF0ZShzdHJEYXRlOiBzdHJpbmcsIGRheUZpcnN0OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIC8vIElFMTEgZml4LCBpZiBtYXRjaDogXCIyMDE4LTAzLTE0IDA0OjMxOjU2LjE0MlwiXHJcbiAgICAvLyBJbnZhbGlkIGRhdGUgZml4OiAwMS8wMi8yMDE4ID0+IDAxLCAwMiwgMjAxNzsgMjAxOC0wMi0wMSA9PiAyMDE4LCAwMiwgMDFcclxuICAgIGxldCByZXMgPSBzdHJEYXRlLm1hdGNoKC9cXGQrL2dpbSkubWFwKHJlcyA9PiBOdW1iZXIocmVzKSk7XHJcbiAgICBsZXQgW01NLCBkZCwgWVlZWSwgSEgsIG1tLCBzc10gPSByZXM7XHJcbiAgICBpZiAoZGF5Rmlyc3QpIHtcclxuICAgICAgW2RkLCBNTSwgWVlZWV0gPSByZXM7XHJcbiAgICB9IGVsc2UgaWYgKE1NID4gMTIpIHtcclxuICAgICAgLy8gRmlyc3Qgd2FzIHllYXIsIHRyYW5zZm9ybWluZyB0byBjb3JyZXNwb25kLlxyXG4gICAgICBbWVlZWSwgTU0sIGRkXSA9IHJlcztcclxuICAgIH1cclxuICAgIGNvbnN0IHNhbml0aXplID0gbnVtID0+IChudW0gIT09IHVuZGVmaW5lZCA/IG51bSA6IDApO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKFxyXG4gICAgICBzYW5pdGl6ZShZWVlZKSxcclxuICAgICAgc2FuaXRpemUoTnVtYmVyKE1NKSAtIDEpLFxyXG4gICAgICBzYW5pdGl6ZShkZCksXHJcbiAgICAgIHNhbml0aXplKEhIKSxcclxuICAgICAgc2FuaXRpemUobW0pLFxyXG4gICAgICBzYW5pdGl6ZShzcyksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNvbnZlcnRUb0RhdGUoZDogYW55KSB7XHJcbiAgICBpZiAoZCA9PT0gdW5kZWZpbmVkIHx8IGQgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIE5hTjtcclxuICAgIH1cclxuICAgIGNvbnN0IGlzRGF0ZSA9IGQuY29uc3RydWN0b3IgPT09IERhdGU7XHJcbiAgICBjb25zdCBpc0FycmF5ID0gZC5jb25zdHJ1Y3RvciA9PT0gQXJyYXk7XHJcbiAgICBjb25zdCBpc051bSA9IGQuY29uc3RydWN0b3IgPT09IE51bWJlcjtcclxuICAgIGNvbnN0IGlzU3RyaW5nID0gZC5jb25zdHJ1Y3RvciA9PT0gU3RyaW5nO1xyXG4gICAgY29uc3QgaXNPYmplY3QgPSB0eXBlb2YgZCA9PT0gJ29iamVjdCc7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAoaXNEYXRlICYmIGQpIHx8XHJcbiAgICAgIChpc0FycmF5ICYmIG5ldyBEYXRlKGRbMF0sIGRbMV0sIGRbMl0pKSB8fFxyXG4gICAgICAoaXNOdW0gJiYgbmV3IERhdGUoZCkpIHx8XHJcbiAgICAgIChpc1N0cmluZyAmJiBIZWxwZXIuc3RyaW5nVG9EYXRlKGQpKSB8fFxyXG4gICAgICAoaXNPYmplY3QgJiYgbmV3IERhdGUoZC55ZWFyLCBkLm1vbnRoLCBkLmRhdGUpKSB8fFxyXG4gICAgICBOYU5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY2FtZWxpemUoc3RyOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNhcGl0YWxpemUgPSBfc3RyID0+IF9zdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBfc3RyLnRvTG93ZXJDYXNlKCkuc2xpY2UoMSk7XHJcbiAgICBjb25zdCBzdHJpbmcgPSBzdHJcclxuICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnICcpXHJcbiAgICAgIC5zcGxpdCgnICcpXHJcbiAgICAgIC5yZWR1Y2UoKHJlc3VsdCwgd29yZCkgPT4gcmVzdWx0ICsgY2FwaXRhbGl6ZSh3b3JkLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgIHJldHVybiBzdHJpbmcuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBpc1ZhbGlkVXJsKHVyaTogc3RyaW5nKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBuZXcgVVJMKHVyaSk7XHJcbiAgICB9IGNhdGNoIChfKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTsgIFxyXG4gICAgfVxyXG4gIFxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=