@hv-kit/hexpress
Version:
facilitates typescript backend development with express
348 lines • 12.2 kB
JavaScript
;
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