UNPKG

@onesy/date

Version:

Time and date utils library

42 lines (41 loc) 1.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const clamp_1 = __importDefault(require("@onesy/utils/clamp")); const OnesyDate_1 = __importDefault(require("./OnesyDate")); const add_1 = __importDefault(require("./add")); function set(value, unit, onesyDate_ = OnesyDate_1.default.onesyDate) { if (onesyDate_ && onesyDate_.valid) { const onesyDate = new OnesyDate_1.default(onesyDate_); switch (unit) { case 'millisecond': return new OnesyDate_1.default(onesyDate.value.setMilliseconds(value)); case 'milliseconds': return new OnesyDate_1.default(value); case 'second': return new OnesyDate_1.default(onesyDate.value.setSeconds(value)); case 'minute': return new OnesyDate_1.default(onesyDate.value.setMinutes(value)); case 'hour': return new OnesyDate_1.default(onesyDate.value.setHours(value)); case 'day': return new OnesyDate_1.default(onesyDate.value.setDate((0, clamp_1.default)(value, 0, 31))); case 'dayWeek': return (0, add_1.default)((0, clamp_1.default)(value, 0, 6) - onesyDate.dayWeek, 'day', onesyDate); case 'dayYear': return (0, add_1.default)((0, clamp_1.default)(value, 0, 366) - onesyDate.dayYear, 'day', onesyDate); case 'week': return (0, add_1.default)(value - onesyDate.week, 'week', onesyDate); case 'month': return new OnesyDate_1.default(onesyDate.value.setMonth(value)); case 'year': return new OnesyDate_1.default(onesyDate.value.setFullYear(value)); default: break; } } } exports.default = set;