import FlaggerActivator from "../activator/FlaggerActivator"; import FlaggerConstraintInterface from "./FlaggerConstraintInterface"; import {z} from "zod"; import FlaggerConstraint from "./FlaggerConstraint"; import FlaggerSerializableConstraint from "./FlaggerSerializableConstraint"; import InvalidDateFormatInString from "../external/deserializers/exception/InvalidDateFormatInString"; const FlaggerDateIntervalConstraintConfig = z.object({ startDate: z.date(), endDate: z.date() }); type FlaggerDateIntervalConstraintConfigType = z.infer; export default class FlaggerDateIntervalConstraint extends FlaggerConstraint implements FlaggerConstraintInterface, FlaggerSerializableConstraint { constructor(config: z.infer) { super(config, FlaggerDateIntervalConstraintConfig); } public async canBeActivated(): Promise { const currDate = new Date(); return currDate > this.config.startDate && currDate < this.config.endDate; } serialize() { return [ this.config.startDate, this.config.endDate ]; } }