UNPKG

@idris-maps/yyyy-mm-dd

Version:

A date library dealing only with days in the YYYY-MM-DD format

36 lines (35 loc) 1.29 kB
"use strict"; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); var toYYYYMM = function (day) { var _a = day.split('-'), yyyy = _a[0], mm = _a[1]; return yyyy + "-" + mm; }; var pad = function (n) { return n < 10 ? "0" + n : String(n); }; var addMonth = function (yyyymm) { var _a = yyyymm.split('-'), yyyy = _a[0], mm = _a[1]; var m = Number(mm); var y = Number(yyyy); return m === 12 ? y + 1 + "-01" : yyyy + "-" + pad(m + 1); }; var _monthsInRange = function (_a) { var start = _a.start, end = _a.end; var lastMonth = toYYYYMM(end); var loop = function (day, months) { var next = addMonth(day); if (toYYYYMM(next) === lastMonth) { return __spreadArrays(months, [next]); } return loop(next, __spreadArrays(months, [next])); }; return loop(start, [start]).map(toYYYYMM); }; exports.default = _monthsInRange;