UNPKG

@hv-kit/hexpress

Version:

facilitates typescript backend development with express

348 lines 12.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DateDiff = exports.StringToDate2 = exports.StringToDate = exports.DateToString = exports.GetCurrentDate = exports.GetCustomTime2 = exports.GetCustomTime = void 0; const timez_1 = __importDefault(require("@hivi/timez/timez")); const config_1 = require("./config"); const padLeft = (data, base = 10, chr = '0') => { const len = (String(base || 10).length - String(data).length) + 1; return len > 0 ? new Array(len).join(chr || '0') + data : data; }; function GetCustomTime(initialDateStr, lang = 'en', format = undefined) { let initialDate; initialDate = new timez_1.default(initialDateStr, format).toDate(); const currentDate = new Date(); const difference = (initialDate && currentDate) ? Math.abs(currentDate - initialDate) : 0; const differenceList = { second: { value: difference / 10 ** 3, limit: 60, sup: false, sup_str: { fr: 'séconde', en: 'second', }, sup_str_multi: { fr: 's', en: 's', }, exists: undefined, }, minute: { value: difference / (6 * 10 ** 4), limit: 60, sup: false, sup_str: { fr: 'minute', en: 'minute', }, sup_str_multi: { fr: 's', en: 's', }, exists: undefined, }, hour: { value: difference / (36 * 10 ** 5), limit: 24, sup: false, sup_str: { fr: 'heure', en: 'your', }, sup_str_multi: { fr: 's', en: 's', }, exists: undefined, }, day: { value: difference / (864 * 10 ** 5), limit: 7, sup: false, sup_str: { fr: 'jour', en: 'day', }, sup_str_multi: { fr: 's', en: 's', }, exists: undefined, }, week: { value: difference / ((864 * 10 ** 5) * 7), limit: 4.5, sup: false, sup_str: { fr: 'semaine', en: 'week', }, sup_str_multi: { fr: 's', en: 's', }, exists: undefined, }, month: { value: difference / (26298 * 10 ** 5), limit: 12, sup: false, sup_str: { fr: 'mois', en: 'month', }, sup_str_multi: { fr: '', en: 's', }, exists: undefined, }, year: { value: difference / (315576 * 10 ** 5), limit: 100, sup: false, sup_str: { fr: 'année', en: 'year', }, sup_str_multi: { fr: 's', en: 's', }, exists: undefined, }, century: { value: difference / ((315576 * 10 ** 5) * 100), limit: 100, sup: true, sup_str: { fr: 'siècle', en: 'century', }, sup_str_multi: { fr: 's', en: 's', }, exists: undefined, }, }; const inf = { fr: 'il y a', en: 'there is', }; // console.log('---- GetCustomTime > old - differenceList:: ', differenceList); Object.keys(differenceList).forEach((key, index) => { const initialValue = differenceList[key]; if (initialValue.sup) { initialValue.exists = initialValue.value >= initialValue.limit; } else { initialValue.exists = initialValue.value < initialValue.limit && initialValue.value >= 1; } const val = Math.floor(initialValue.value); let sup = initialValue.sup_str[lang]; sup = (val > 1) ? sup + initialValue.sup_str_multi[lang] : sup; initialValue.final_value = `${inf[lang]} ${val} ${sup}`; differenceList[key] = initialValue; }); // console.log('---- GetCustomTime > ICI ----'); // console.log('---- GetCustomTime > initialDateStr:: ', initialDateStr); // console.log('---- GetCustomTime > initialDate:: ', initialDate); // console.log('---- GetCustomTime > typeof initialDate:: ', typeof initialDate); // console.log('---- GetCustomTime > currentDate:: ', currentDate); // console.log('---- GetCustomTime > typeof currentDate:: ', typeof currentDate); // console.log('---- GetCustomTime > difference:: ', difference); // console.log('---- GetCustomTime > typeof difference:: ', typeof difference); // console.log('---- GetCustomTime > differenceList:: ', differenceList); const result = (typeof (differenceList) === 'object' && Array.isArray(differenceList) === false) ? Object.values(differenceList).find((x) => x.exists) : {}; // console.log('---- GetCustomTime > result:: ', result); return (result) ? result.final_value : undefined; } exports.GetCustomTime = GetCustomTime; function GetCustomTime2(initialDateStr, lang = 'en', format = undefined, showTime = false, simplified = true, simplifiedLength = 3) { showTime = (typeof showTime === 'boolean') ? showTime : false; simplified = (typeof simplified === 'boolean') ? simplified : false; simplifiedLength = (typeof simplifiedLength === 'number' && simplifiedLength > 0) ? simplifiedLength : 3; lang = (typeof lang === 'string' && ['en', 'fr'].includes(lang)) ? lang : 'en'; let initialDate = new timez_1.default(initialDateStr, format).toDate(); const weekDays = [ { fr: 'lundi', en: 'monday', }, { fr: 'mardi', en: 'tuesday', }, { fr: 'mercredi', en: 'wednesday', }, { fr: 'jeudi', en: 'thursday', }, { fr: 'vendredi', en: 'friday', }, { fr: 'samedi', en: 'saturday', }, { fr: 'dimanche', en: 'sunday', }, ]; const months = [ { fr: 'janvier', en: 'january', }, { fr: 'fevrier', en: 'febuary', }, { fr: 'mars', en: 'march', }, { fr: 'avril', en: 'april', }, { fr: 'mai', en: 'may', }, { fr: 'juin', en: 'june', }, { fr: 'juillet', en: 'july', }, { fr: 'août', en: 'august', }, { fr: 'septembre', en: 'september', }, { fr: 'octobre', en: 'october', }, { fr: 'novembre', en: 'november', }, { fr: 'decembre', en: 'december', }, ]; let initialDateWeekDay = initialDate.getUTCDay() - 1; initialDateWeekDay = (initialDateWeekDay > 0) ? initialDateWeekDay : 6; initialDateWeekDay = (!simplified) ? weekDays[initialDateWeekDay][lang] : `${weekDays[initialDateWeekDay][lang].substring(0, simplifiedLength)}.`; let initialDateMonth = initialDate.getUTCMonth(); initialDateMonth = (!simplified) ? months[initialDateMonth][lang] : `${months[initialDateMonth][lang].substring(0, simplifiedLength)}.`; const initialDateTime = (showTime) ? [ padLeft(initialDate.getUTCHours().toString()), padLeft(initialDate.getUTCMinutes().toString()), padLeft(initialDate.getUTCSeconds().toString()), ].join(':') : ''; const dateFinal = [ initialDateWeekDay, [ [ padLeft(initialDate.getUTCDate()), initialDateMonth, padLeft(initialDate.getFullYear()), ].join(' '), initialDateTime, ].join(' '), ].join(' '); // console.log('---- ICI ----'); // console.log(`---- initialDate:: ${initialDate}`); // console.log(`---- initialDateWeekDay:: ${initialDateWeekDay}`); // console.log(`---- initialDateMonth:: ${initialDateMonth}`); // console.log(`---- initialDateTime:: ${initialDateTime}`); // console.log(`---- dateFinal:: ${dateFinal}`); return dateFinal; } exports.GetCustomTime2 = GetCustomTime2; function GetCurrentDate(string = false, format = config_1.dateFormat4) { const res = new timez_1.default(undefined, format); try { return (string) ? res.toString() : res.toDate(); } catch (error) { console.log(`[ ERROR ] scripts.date - GetCurrentDate | error:: `, error); return undefined; } } exports.GetCurrentDate = GetCurrentDate; function DateToString(value, format = config_1.dateFormat4) { try { return new timez_1.default(value, format).toString(); } catch (error) { console.log(`[ ERROR ] scripts.date - DateToString | error:: `, error); return undefined; } } exports.DateToString = DateToString; function StringToDate(value, format = config_1.dateFormat4) { return new timez_1.default(value, format).toDate(); } exports.StringToDate = StringToDate; function StringToDate2(value) { return new timez_1.default(value).toDate(); } exports.StringToDate2 = StringToDate2; function DateDiff(date1, date2, showType = 'millisecond') { const showTypes = ['millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'year', 'century']; showType = (showTypes.includes(showType)) ? showType : 'millisecond'; const getMillisecond = (date1, date2) => { const res = date1.getTime() - date2.getTime(); return (res) ? res : undefined; }; const resMilliseconds = getMillisecond(date1, date2); // console.log(`> dateDiff | date1:: `, date1); // console.log(`> dateDiff | date1.getTime():: `, date1.getTime()); // console.log(`> dateDiff | date2:: `, date2); // console.log(`> dateDiff | date2.getTime():: `, date2.getTime()); const result = { millisecond: (resMilliseconds) ? resMilliseconds : undefined, second: (resMilliseconds) ? resMilliseconds / 1000 : undefined, minute: (resMilliseconds) ? (resMilliseconds / 1000) / 60 : undefined, hour: (resMilliseconds) ? ((resMilliseconds / 1000) / 60) / 60 : undefined, day: (resMilliseconds) ? (((resMilliseconds / 1000) / 60) / 60) / 24 : undefined, week: (resMilliseconds) ? ((((resMilliseconds / 1000) / 60) / 60) / 24) / 7 : undefined, month: (resMilliseconds) ? (((((resMilliseconds / 1000) / 60) / 60) / 24) / 7) / 4.3482 : undefined, year: (resMilliseconds) ? ((((((resMilliseconds / 1000) / 60) / 60) / 24) / 7) / 4.3482) / 12 : undefined, century: (resMilliseconds) ? (((((((resMilliseconds / 1000) / 60) / 60) / 24) / 7) / 4.3482) / 12) / 100 : undefined, }; return result[showType]; } exports.DateDiff = DateDiff; exports.default = { GetCustomTime, GetCustomTime2, GetCurrentDate, DateToString, StringToDate, StringToDate2, DateDiff, }; //# sourceMappingURL=date.js.map