_setExpirationDate()

in src/server/ServerCache.ts [112:143]


  _setExpirationDate() {
    let dates: DateTime[] = [];
    if (this.duration) {
      const now = DateTime.utc();
      dates.push(now.plus(this.duration));
    }
    if (this.interval) {
      const now = DateTime.utc();
      const { weekday: weekdayString, hour, minute } = this.interval;
      const weekday = weekdays.get(weekdayString);
      if (!weekday) {
        return;
      }
      let intervalDate = now.set({
        weekday,
        hour: hour || 0,
        minute: minute || 0,
        second: 0,
        millisecond: 0,
      });
      if (intervalDate <= now) {
        intervalDate = intervalDate.plus({ weeks: 1 });
      }
      dates.push(intervalDate);
    }
    this.expirationDate = DateTime.min(...dates);
    console.debug(
      `${this.name || "Unnamed"} cache expiration date set to ${
        this.expirationDate?.toISO() || "null"
      }`
    );
  }