@onesy/date
Version:
Time and date utils library
42 lines (41 loc) • 1.97 kB
JavaScript
;
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;