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