UNPKG

@resk/core

Version:

An innovative TypeScript framework that empowers developers to build applications with a fully decorator-based architecture for efficient resource management. By combining the power of decorators with a resource-oriented design, DecorRes enhances code cla

1 lines 6.96 kB
'use strict';var Y=require('moment'),g=require('../isEmpty'),D=require('../isNonNullString'),o=require('../defaultStr'),i18n=require('../../i18n'),f=require('./isDateObj'),isNumber=require('../isNumber');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Y__default=/*#__PURE__*/_interopDefault(Y);var g__default=/*#__PURE__*/_interopDefault(g);var D__default=/*#__PURE__*/_interopDefault(D);var o__default=/*#__PURE__*/_interopDefault(o);var f__default=/*#__PURE__*/_interopDefault(f);const e=class e{static parseString(t,a){if(D__default.default(t)&&D__default.default(a))try{const n=Y__default.default(t,a,!0);if(n.isValid())return {date:n.toDate(),matchedFormat:a,isValid:!0}}catch(n){}try{if(Array.isArray(a)&&(a!=null&&a.length))for(const n of a){const r=S(t,n);if(r)return r}for(const n of e.DATE_FORMATS){const r=S(t,n);if(r)return r}return {date:null,matchedFormat:null,isValid:!1,error:"Unable to parse date string with any known format"}}catch(n){return {date:null,matchedFormat:null,isValid:false,error:n instanceof Error?n.message:"Unknown error occurred while parsing date"}}}static toIsoString(t){const a=t?e.parseDate(t):new Date;return a?a.toISOString():""}static isoStringToDate(t){return new Date(t)}static parseDate(t,a){if(e.isDateObj(t))return t;if(!D__default.default(a)){const n=e.parseString(t);return n!=null&&n.isValid?n.date:null}if(g__default.default(t))return null;try{const n=Y__default.default(t,a,!0);if(n!=null&&n.isValid())return n.toDate()}catch(n){console.error(n," parsing date with moment : ",t," format is : ",a);}return null}static toSQLDateTimeFormat(t){if(!e.isDateObj(t))return "";const a=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),u=String(t.getSeconds()).padStart(2,"0");return `${a}-${n}-${r} ${s}:${i}:${u}`}static get DEFAULT_DATE_TIME_FORMAT(){return o__default.default(i18n.i18n.getNestedTranslation("dates.defaultDateTimeFormat"),"YYYY-MM-DD HH:mm")}static get DEFAULT_DATE_FORMAT(){return o__default.default(i18n.i18n.getNestedTranslation("dates.defaultDateFormat"),"YYYY-MM-DD")}static toSQLDateFormat(t){if(!e.isDateObj(t))return "";const a=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return `${a}-${n}-${r}`}static toSQLTimeFormat(t){if(!e.isDateObj(t))return "";const a=String(t.getHours()).padStart(2,"0"),n=String(t.getMinutes()).padStart(2,"0"),r=String(t.getSeconds()).padStart(2,"0");return `${a}:${n}:${r}`}static get DEFAULT_TIME_FORMAT(){return o__default.default(i18n.i18n.getNestedTranslation("dates.defaultTimeFormat"),"HH:mm")}static isValidDate(t,a){if(t==null||typeof t=="boolean")return false;if(e.isDateObj(t))return true;if(D__default.default(t))return !!e.parseDate(t,a);if(t!=null&&t.toString&&(t==null?void 0:t.toString())==parseInt(t).toString())return false;const n=new Date(t);return e.isDateObj(n)}static addToDate(t,a,n){if(isNumber.isNumber(t)||(t=0),g__default.default(a)&&(a=new Date),e.isValidDate(a)&&D__default.default(a)&&(a=new Date(a)),e.isValidDate(a)||(a=D__default.default(a)?new Date(a):new Date),D__default.default(n)&&typeof a["set"+n]=="function"&&typeof a["get"+n]=="function"){const r="set"+n,s="get"+n;a=new Date(a[r](a[s]()+t));}return a}static addDays(t,a){return e.addToDate(t,a,"Date")}static addMilliseconds(t,a){return isNumber.isNumber(t)||(t=0),e.isDateObj(a)||(a=new Date),a=a||new Date,new Date(a.getTime()+t)}static addSeconds(t,a){return isNumber.isNumber(t)||(t=0),e.addMilliseconds(t*1e3,a)}static addMinutes(t,a){return isNumber.isNumber(t)||(t=0),e.addMilliseconds(t*6e4,a)}static addHours(t,a){return isNumber.isNumber(t)||(t=0),e.addMilliseconds(t*36e5,a)}static addMonths(t,a,n){return e.addToDate(t,a,"Month")}static addWeeks(t,a){return t=(isNumber.isNumber(t)?t:0)*7,e.addToDate(t,a,"Date")}static addYears(t,a){isNumber.isNumber(t)||(t=0);const n=new Date(e.addToDate(0,a)),r=n.getFullYear();return r+t<0?t=0:t+=r,n.setFullYear(t),new Date(n)}static formatDate(t,a){try{const n=Y__default.default(t);if(n.isValid())return n.format(o__default.default(a,e.DEFAULT_DATE_TIME_FORMAT))}catch(n){}return o__default.default(e.isValidDate(t)?t==null?void 0:t.toString():"")}static getUTCDateTimeDetails(t){const a=t?Y__default.default.utc(t):Y__default.default.utc();return {year:a.year(),day:a.day(),month:a.month(),monthString:a.format("MM"),hours:a.hours(),date:a.date(),minutes:a.minutes(),seconds:a.seconds(),monthName:a.format("MMMM"),dayName:a.format("dddd"),dayNameShort:a.format("ddd")}}};e.DATE_FORMATS=["YYYY-MM-DD","YYYY-MM-DDTHH:mm:ss","YYYY-MM-DDTHH:mm:ssZ","YYYY-MM-DDTHH:mm:ss.SSSZ","YYYY-MM-DDTHH:mm:ss[Z]","YYYY-MM-DDTHH:mm:ss.SSS[Z]","YYYY-MM-DDTHH:mm:ss.SSSZ ","YYYY-MM-DDTHH:mm:ss.SSS","YYYY-MM-DD HH:mm:ss","YYYY-MM-DD HH:mm:ss.SSSZ","YYYY-MM-DDTHH:mm:ss.SSS[Z]","YYYY-MM-DD HH:mm:ssZ","YYYY-MM-DD HH:mmZ","MM/DD/YYYY","MM-DD-YYYY","MM.DD.YYYY","MM/DD/YY","MMMM DD, YYYY","MMM DD, YYYY","DD/MM/YYYY","DD-MM-YYYY","DD.MM.YYYY","DD/MM/YY","DD MMMM YYYY","DD MMM YYYY","HH:mm:ss.SSSZ","HH:mm:ssZ","HH:mmZ","YYYYMMDD","YYYYMMDDTHHMM","YYYYMMDDTHHMMSS","HH:mm:ss","HH:mm","hh:mm A","h:mm A","HH:mm:ss.SSS","YYYY-DDD","YYYY-Www","YYYY-Www-D","YYYY/MM/DD","YYYY.MM.DD","MMM D, YYYY","MMMM D, YYYY","D MMM YYYY","D MMMM YYYY","MMM D YYYY","ddd, DD MMM YYYY HH:mm:ss ZZ","ddd, DD MMM YYYY HH:mm:ss","dddd, MMMM D, YYYY","dddd, D MMMM YYYY","hh:mm:ss A","H:mm:ss","YYYY-[W]WW","YYYY-[W]WW-E","YYYY-MM-DDTHH:mm:ss.SSS","DD-MM-YYYY HH:mm:ss","YYYY/MM/DD HH:mm:ss","YYYY.MM.DD HH:mm:ss","DD/MM/YYYY HH:mm:ss","MMM D YYYY, h:mm a","MMMM D YYYY, h:mm a","h:mm A MMM D, YYYY","MMMM D, YYYY","YY-MM-DD","DD-MM-YY","MM/DD/YY","MMM DD, YY","D MMM YY","D MMMM YY","YYYY MMM D","YYYY-MM-DD HH:mm","YYYY-MM-DD HH:mm:ss.SSS"],e.SQL_DATE_FORMAT="YYYY-MM-DD",e.SQL_DATE_TIME_FORMAT="YYYY-MM-DD HH:mm:ss",e.SQL_TIME_FORMAT="HH:mm:ss",e.getCurrentMonthDaysRange=t=>{const a=e.isValidDate(t)?new Date(t):new Date().resetHours2Minutes2Seconds(),n=new Date(a.getFullYear(),a.getMonth(),1),r=new Date(a.getFullYear(),a.getMonth()+1,0);return {first:n,last:r}},e.getPreviousWeekDaysRange=t=>{const a=e.isValidDate(t)?new Date(t):new Date().resetHours2Minutes2Seconds(),n=new Date(a.getTime()-60*60*24*7*1e3),r=new Date(n),s=n.getDay(),i=n.getDate()-s+(s===0?-6:1),u=new Date(n.setDate(i)),d=new Date(r.setDate(i+6));return {first:u,last:d}},e.getCurrentWeekDaysRange=t=>{const a=e.isValidDate(t)?new Date(t):new Date().resetHours2Minutes2Seconds(),n=a.getDay(),r=a.getDate()-n+(n==0?-6:1),s=new Date(a),i=new Date(a.setDate(r));return s.setDate(s.getDate()+6),{first:i,last:s}},e.isDateObj=f__default.default;let l=e;const S=(m,t)=>{const a=Y__default.default(m,t,true);try{if(a.isValid()&&a.format(t)===m||Y__default.default.utc(a,!0).format(t)===m)return {date:a.toDate(),matchedFormat:t,isValid:!0}}catch(n){}return null};exports.DateHelper=l;