From 6b525ec51aeafc9e555fa211aff8e7bd80134661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joel=20Zand=C3=A9n?= Date: Wed, 8 Apr 2020 14:04:55 +0200 Subject: [PATCH] Add check for the origin of the rrule (or rruleSet) object and create dateEnv markers if the origin was a string --- packages/rrule/src/main.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/rrule/src/main.ts b/packages/rrule/src/main.ts index 976b645de1..903718032c 100644 --- a/packages/rrule/src/main.ts +++ b/packages/rrule/src/main.ts @@ -39,14 +39,18 @@ let recurring: RecurringType = { return null }, - expand(rrule: RRule, framingRange: DateRange): DateMarker[] { + expand(rrule: RRule, framingRange: DateRange, dateEnv: DateEnv): DateMarker[] { // we WANT an inclusive start and in exclusive end, but the js rrule lib will only do either BOTH // inclusive or BOTH exclusive, which is stupid: https://github.com/jakubroztocil/rrule/issues/84 // Workaround: make inclusive, which will generate extra occurences, and then trim. - return rrule.between(framingRange.start, framingRange.end, true) - .filter(function(date) { - return date.valueOf() < framingRange.end.valueOf() - }) + if (rrule['fromString'] === true) { + return rrule.between(framingRange.start, framingRange.end, true) + .map(date => dateEnv.createMarker(date)) + .filter(date => date.valueOf() < framingRange.end.valueOf()) + } else { + return rrule.between(framingRange.start, framingRange.end, true) + .filter(date => date.valueOf() < framingRange.end.valueOf()) + } } }