homebridge-virtual-accessories
Version:
Virtual HomeKit accessories for Homebridge.
54 lines • 2.12 kB
JavaScript
/* eslint-disable curly */
import { Utils } from '../utils/utils.js';
/**
*
*/
export class DurationConfiguration {
static DAYS_MAX_VALUE = 7;
static HOURS_MAX_VALUE = 23;
static MINUTES_MAX_VALUE = 59;
static SECONDS_MAX_VALUE = 59;
days;
hours = 0;
minutes = 0;
seconds = 0;
errorFields = [];
fieldNames = Utils.proxiedPropertiesOf(this);
isValid(prefix, maxDays) {
const DAYS_MAX_VALUE = (maxDays !== undefined) ? maxDays : DurationConfiguration.DAYS_MAX_VALUE;
const isValidDays = (Utils.required(this.days) &&
(this.days >= 0 && this.days <= DAYS_MAX_VALUE));
// Do not exceed maximum value (DAYS_MAX_VALUE)
if (isValidDays && this.days === DAYS_MAX_VALUE) {
this.hours = 0;
this.minutes = 0;
this.seconds = 0;
}
const isValidHours = (Utils.required(this.hours) &&
(this.hours >= 0 && this.hours <= DurationConfiguration.HOURS_MAX_VALUE));
const isValidMinutes = (Utils.required(this.minutes) &&
(this.minutes >= 0 && this.minutes <= DurationConfiguration.MINUTES_MAX_VALUE));
const isValidSeconds = (Utils.required(this.seconds) &&
(this.seconds >= 0 && this.seconds <= DurationConfiguration.SECONDS_MAX_VALUE));
if (!isValidDays)
this.errorFields.push(prefix + '.' + this.fieldNames.days);
if (!isValidHours)
this.errorFields.push(prefix + '.' + this.fieldNames.hours);
if (!isValidMinutes)
this.errorFields.push(prefix + '.' + this.fieldNames.minutes);
if (!isValidSeconds)
this.errorFields.push(prefix + '.' + this.fieldNames.seconds);
return [
(isValidDays &&
isValidHours &&
isValidMinutes &&
isValidSeconds),
this.errorFields,
];
}
toSeconds() {
const seconds = Utils.daysHoursMinutesSecondsToSeconds(this.days, this.hours, this.minutes, this.seconds);
return seconds;
}
}
//# sourceMappingURL=configurationDuration.js.map