UNPKG

@onesy/date

Version:

Time and date utils library

64 lines (63 loc) 2.65 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const OnesyDate_1 = __importStar(require("./OnesyDate")); function is(value = OnesyDate_1.default.onesyDate, query, value1 = OnesyDate_1.default.onesyDate, unit = 'milliseconds', value2 = OnesyDate_1.default.onesyDate) { if (value && value.valid) { if (value1 && value1.valid) { const diffs = {}; OnesyDate_1.units.forEach(unit_ => diffs[unit_] = Math.floor(value[unit_] - value1[unit_])); const queryValue = diffs[unit]; switch (query) { case 'before': return queryValue < 0; case 'after': return queryValue > 0; case 'same': return queryValue === 0; case 'between': if (value2 && value2.valid) { return ((is(value2, 'after or same', value) && is(value2, 'before or same', value1)) || is(value2, 'after or same', value1) && is(value2, 'before or same', value)); } return false; case 'before or same': return queryValue <= 0; case 'after or same': return queryValue >= 0; default: break; } } switch (query) { case 'leap-year': return ((value.year % 4 === 0) && (value.year % 100 !== 0)) || (value.year % 400 === 0); case 'leap-month': return value.month === 2 && value.daysInMonth === 29; default: return false; } } } exports.default = is;