@northscaler/service-support
Version:
Artifacts that assist in writing service layers effectively
38 lines (30 loc) • 3.15 kB
JavaScript
;
const Enumeration = require('@northscaler/enum-support');
/**
* Enumeration object of date formats.
* Values are:
* * `ISO_8601`
* * `UNIX_MILLISECONDS`
* * `UNIX_SECONDS`
*/
const DateFormat = Enumeration.new({
name: 'DateFormat',
values: ['ISO_8601', 'UNIX_MILLISECONDS', 'UNIX_SECONDS']
}, {
format(date) {
if (!date) return date;
if (!(date instanceof Date)) return date;
switch (this) {
case DateFormat.ISO_8601:
return date.toISOString();
case DateFormat.UNIX_MILLISECONDS:
return date.getTime();
case DateFormat.UNIX_SECONDS:
return date.getTime() / 1000;
default:
throw new DateFormat.$ERROR$();
}
}
});
module.exports = DateFormat;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYWluL2VudW1zL0RhdGVGb3JtYXQuanMiXSwibmFtZXMiOlsiRW51bWVyYXRpb24iLCJyZXF1aXJlIiwiRGF0ZUZvcm1hdCIsIm5ldyIsIm5hbWUiLCJ2YWx1ZXMiLCJmb3JtYXQiLCJkYXRlIiwiRGF0ZSIsIklTT184NjAxIiwidG9JU09TdHJpbmciLCJVTklYX01JTExJU0VDT05EUyIsImdldFRpbWUiLCJVTklYX1NFQ09ORFMiLCIkRVJST1IkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsTUFBTUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsMkJBQUQsQ0FBM0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRixXQUFXLENBQUNHLEdBQVosQ0FBZ0I7QUFDakNDLEVBQUFBLElBQUksRUFBRSxZQUQyQjtBQUVqQ0MsRUFBQUEsTUFBTSxFQUFFLENBQ04sVUFETSxFQUVOLG1CQUZNLEVBR04sY0FITTtBQUZ5QixDQUFoQixFQU9oQjtBQUNEQyxFQUFBQSxNQUFNLENBQUVDLElBQUYsRUFBUTtBQUNaLFFBQUksQ0FBQ0EsSUFBTCxFQUFXLE9BQU9BLElBQVA7QUFDWCxRQUFJLEVBQUVBLElBQUksWUFBWUMsSUFBbEIsQ0FBSixFQUE2QixPQUFPRCxJQUFQOztBQUU3QixZQUFRLElBQVI7QUFDRSxXQUFLTCxVQUFVLENBQUNPLFFBQWhCO0FBQ0UsZUFBT0YsSUFBSSxDQUFDRyxXQUFMLEVBQVA7O0FBQ0YsV0FBS1IsVUFBVSxDQUFDUyxpQkFBaEI7QUFDRSxlQUFPSixJQUFJLENBQUNLLE9BQUwsRUFBUDs7QUFDRixXQUFLVixVQUFVLENBQUNXLFlBQWhCO0FBQ0UsZUFBT04sSUFBSSxDQUFDSyxPQUFMLEtBQWlCLElBQXhCOztBQUNGO0FBQ0UsY0FBTSxJQUFJVixVQUFVLENBQUNZLE9BQWYsRUFBTjtBQVJKO0FBVUQ7O0FBZkEsQ0FQZ0IsQ0FBbkI7QUF5QkFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmQsVUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuY29uc3QgRW51bWVyYXRpb24gPSByZXF1aXJlKCdAbm9ydGhzY2FsZXIvZW51bS1zdXBwb3J0JylcblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvYmplY3Qgb2YgZGF0ZSBmb3JtYXRzLlxuICogVmFsdWVzIGFyZTpcbiAqICogYElTT184NjAxYFxuICogKiBgVU5JWF9NSUxMSVNFQ09ORFNgXG4gKiAqIGBVTklYX1NFQ09ORFNgXG4gKi9cbmNvbnN0IERhdGVGb3JtYXQgPSBFbnVtZXJhdGlvbi5uZXcoe1xuICBuYW1lOiAnRGF0ZUZvcm1hdCcsXG4gIHZhbHVlczogW1xuICAgICdJU09fODYwMScsXG4gICAgJ1VOSVhfTUlMTElTRUNPTkRTJyxcbiAgICAnVU5JWF9TRUNPTkRTJ1xuICBdXG59LCB7XG4gIGZvcm1hdCAoZGF0ZSkge1xuICAgIGlmICghZGF0ZSkgcmV0dXJuIGRhdGVcbiAgICBpZiAoIShkYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHJldHVybiBkYXRlXG5cbiAgICBzd2l0Y2ggKHRoaXMpIHtcbiAgICAgIGNhc2UgRGF0ZUZvcm1hdC5JU09fODYwMTpcbiAgICAgICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKVxuICAgICAgY2FzZSBEYXRlRm9ybWF0LlVOSVhfTUlMTElTRUNPTkRTOlxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKClcbiAgICAgIGNhc2UgRGF0ZUZvcm1hdC5VTklYX1NFQ09ORFM6XG4gICAgICAgIHJldHVybiBkYXRlLmdldFRpbWUoKSAvIDEwMDBcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBEYXRlRm9ybWF0LiRFUlJPUiQoKVxuICAgIH1cbiAgfVxufSlcblxubW9kdWxlLmV4cG9ydHMgPSBEYXRlRm9ybWF0XG4iXX0=