UNPKG

@onesy/date

Version:

Time and date utils library

43 lines (42 loc) 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const OnesyDate_1 = __importDefault(require("./OnesyDate")); // circular dependency issue fix function add(value, unit, onesyDate_ = OnesyDate_1.default.onesyDate) { if (onesyDate_ && onesyDate_.valid) { const onesyDate = new OnesyDate_1.default(onesyDate_); switch (unit) { case 'day': return new OnesyDate_1.default(onesyDate.value.setDate(onesyDate.day + value)); } } } function endOf(onesyDate_ = OnesyDate_1.default.onesyDate, unit = 'day') { if (onesyDate_ && onesyDate_.valid) { const onesyDate = new OnesyDate_1.default(onesyDate_); switch (unit) { case 'second': return new OnesyDate_1.default(onesyDate.value.setMilliseconds(999)); case 'minute': return new OnesyDate_1.default(onesyDate.value.setSeconds(59, 999)); case 'hour': return new OnesyDate_1.default(onesyDate.value.setMinutes(59, 59, 999)); case 'day': return new OnesyDate_1.default(onesyDate.value.setHours(23, 59, 59, 999)); case 'week': return new OnesyDate_1.default(endOf(add((onesyDate.dayWeek === 0 ? 0 : 7 - onesyDate.dayWeek), 'day', onesyDate), 'day')); case 'month': return new OnesyDate_1.default(new Date(onesyDate.value.setMonth(onesyDate.month, 0)).setHours(23, 59, 59, 999)); case 'year': return new OnesyDate_1.default(new Date(onesyDate.value.setMonth(12, 0)).setHours(23, 59, 59, 999)); default: break; } } } exports.default = endOf;