import { DateAdapter, DateTime, RecurrenceRuleResult } from '@rschedule/core'; import { INormFrequencyRuleOptions } from '../Frequency'; import { RecurrenceRuleBase } from './recurrence-rule-base'; /** * Contains shared logic for ByHourOfDay, ByMinuteOfHour, * BySecondOfMinute, and ByMillisecondOfSecond rule pipes */ export default abstract class ByTimeOfUnitRule< T extends INormFrequencyRuleOptions > extends RecurrenceRuleBase { protected abstract readonly baseGranularity: DateAdapter.TimeUnit; protected abstract readonly granularity: DateAdapter.TimeUnit; protected abstract readonly option: number[]; run(date: DateTime): RecurrenceRuleResult; }