@hotmeshio/hotmesh
Version:
Permanent-Memory Workflows & AI Agents
172 lines (171 loc) • 6.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DateHandler = void 0;
const utils_1 = require("../../../modules/utils");
class DateHandler {
/**
* It is so common in mapping operations to use a string (ISO) date as input. This helper
* method allows for a more-concise mapping ruleset by avoiding date initialization boilerplate
* code and instead handles the ISO, Milliseconds, and ECMAScript Date input types.
* @param input
* @returns
*/
static getDateInstance(input) {
const ISO_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z)?$/;
if (typeof input === 'string') {
if (ISO_REGEX.test(input)) {
return new Date(input);
}
const milliseconds = parseInt(input, 10);
if (!isNaN(milliseconds)) {
return new Date(milliseconds);
}
}
else if (input instanceof Date) {
return input;
}
else if (typeof input === 'number') {
return new Date(input);
}
throw new Error('Invalid date format');
}
fromISOString(isoString) {
return new Date(isoString);
}
now() {
return Date.now();
}
parse(dateString) {
return Date.parse(dateString);
}
getDate(date) {
return DateHandler.getDateInstance(date).getDate();
}
getDay(date) {
return DateHandler.getDateInstance(date).getDay();
}
getFullYear(date) {
return DateHandler.getDateInstance(date).getFullYear();
}
getHours(date) {
return DateHandler.getDateInstance(date).getHours();
}
getMilliseconds(date) {
return DateHandler.getDateInstance(date).getMilliseconds();
}
getMinutes(date) {
return DateHandler.getDateInstance(date).getMinutes();
}
getMonth(date) {
return DateHandler.getDateInstance(date).getMonth();
}
getSeconds(date) {
return DateHandler.getDateInstance(date).getSeconds();
}
getTime(date) {
return DateHandler.getDateInstance(date).getTime();
}
getTimezoneOffset(date) {
return DateHandler.getDateInstance(date).getTimezoneOffset();
}
getUTCDate(date) {
return DateHandler.getDateInstance(date).getUTCDate();
}
getUTCDay(date) {
return DateHandler.getDateInstance(date).getUTCDay();
}
getUTCFullYear(date) {
return DateHandler.getDateInstance(date).getUTCFullYear();
}
getUTCHours(date) {
return DateHandler.getDateInstance(date).getUTCHours();
}
getUTCMilliseconds(date) {
return DateHandler.getDateInstance(date).getUTCMilliseconds();
}
getUTCMinutes(date) {
return DateHandler.getDateInstance(date).getUTCMinutes();
}
getUTCMonth(date) {
return DateHandler.getDateInstance(date).getUTCMonth();
}
getUTCSeconds(date) {
return DateHandler.getDateInstance(date).getUTCSeconds();
}
setMilliseconds(date, ms) {
return DateHandler.getDateInstance(date).setMilliseconds(ms);
}
setMinutes(date, minutes, seconds, ms) {
return DateHandler.getDateInstance(date).setMinutes(minutes, seconds, ms);
}
setMonth(date, month, day) {
return DateHandler.getDateInstance(date).setMonth(month, day);
}
setSeconds(date, seconds, ms) {
return DateHandler.getDateInstance(date).setSeconds(seconds, ms);
}
setTime(date, time) {
return DateHandler.getDateInstance(date).setTime(time);
}
setUTCDate(date, day) {
return DateHandler.getDateInstance(date).setUTCDate(day);
}
setUTCFullYear(date, year, month, day) {
return DateHandler.getDateInstance(date).setUTCFullYear(year, month, day);
}
setUTCHours(date, hours, minutes, seconds, ms) {
return DateHandler.getDateInstance(date).setUTCHours(hours, minutes, seconds, ms);
}
setUTCMilliseconds(date, ms) {
return DateHandler.getDateInstance(date).setUTCMilliseconds(ms);
}
setUTCMinutes(date, minutes, seconds, ms) {
return DateHandler.getDateInstance(date).setUTCMinutes(minutes, seconds, ms);
}
setUTCMonth(date, month, day) {
return DateHandler.getDateInstance(date).setUTCMonth(month, day);
}
setUTCSeconds(date, seconds, ms) {
return DateHandler.getDateInstance(date).setUTCSeconds(seconds, ms);
}
setDate(date, day) {
return DateHandler.getDateInstance(date).setDate(day);
}
setFullYear(date, year, month, day) {
return DateHandler.getDateInstance(date).setFullYear(year, month, day);
}
setHours(date, hours, minutes, seconds, ms) {
return DateHandler.getDateInstance(date).setHours(hours, minutes, seconds, ms);
}
toDateString(date) {
return DateHandler.getDateInstance(date).toDateString();
}
toISOString(date) {
return DateHandler.getDateInstance(date).toISOString();
}
toISOXString(date) {
return (0, utils_1.formatISODate)(date ? DateHandler.getDateInstance(date) : new Date());
}
toJSON(date) {
return DateHandler.getDateInstance(date).toJSON();
}
toLocaleDateString(date, locales, options) {
return DateHandler.getDateInstance(date).toLocaleDateString(locales, options);
}
toLocaleString(date, locales, options) {
return DateHandler.getDateInstance(date).toLocaleString(locales, options);
}
toLocaleTimeString(date, locales, options) {
return DateHandler.getDateInstance(date).toLocaleTimeString(locales, options);
}
toString(date) {
return DateHandler.getDateInstance(date).toString();
}
UTC(year, month, date, hours, minutes, seconds, ms) {
return Date.UTC(year, month, date, hours, minutes, seconds, ms);
}
valueOf(date) {
return DateHandler.getDateInstance(date).valueOf();
}
}
exports.DateHandler = DateHandler;