@functional-lib/kalendar
Version:
kalendar fp
83 lines (67 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.diffDays = exports.getWeek = exports.lte = exports.equals = exports.getMonday = exports.addDays = void 0;
var _date = require("./../lib/date");
var _utils = require("./../utils");
var _date2 = require("./../utils/date");
var day = function day(date) {
return {
value: date,
concat: function concat(amount) {
return new Date(new Date(date).setDate(date.getDate() + amount));
},
empty: function empty() {
return new Date(0);
}
};
};
var fillDays = function fillDays(length) {
return function (date) {
return Array.from({
length: length
}, function (_, i) {
return day(date).concat(i);
});
};
};
var monday = (0, _date.weeks)(function (d) {
return (0, _utils.compose)(_date2.daysUntilMonday, _utils.invert, day(d).concat)(d);
}).contramap(_date2.midnight).contramap(_date2.clone);
var week = (0, _date.weeks)(fillDays(7)).contramap(monday.f);
var diffDate = (0, _date.diff)(function (x, y) {
return x - y;
}).contramap(function (x) {
return new Date(x).getTime();
});
var toDay = function toDay(val) {
return val / (24 * 60 * 60 * 1000);
};
var addDays = function addDays(date) {
return day(date).concat;
};
exports.addDays = addDays;
var getMonday = monday.f;
exports.getMonday = getMonday;
var equals = function equals(dateA) {
return function (dateB) {
return (0, _date.date)(dateA).equals(dateB);
};
};
exports.equals = equals;
var lte = function lte(dateA) {
return function (dateB) {
return (0, _date.date)(dateA).lte(dateB);
};
};
exports.lte = lte;
var getWeek = week.f;
exports.getWeek = getWeek;
var diffDays = function diffDays(dateA) {
return function (dateB) {
return (0, _utils.compose)(toDay, Math.abs, Math.round)(diffDate.f(dateA, dateB));
};
};
exports.diffDays = diffDays;
//# sourceMappingURL=Kalendar.js.map