import { fileURLToPath } from 'node:url';
import chalk from 'chalk';
-import moment from 'moment';
+import { addSeconds, isAfter } from 'date-fns';
import type { ChargingStation } from './ChargingStation';
import { BaseError } from '../exception';
event: ChargingStationWorkerMessageEvents,
eventsToWait: number,
): Promise<number> => {
- return new Promise((resolve) => {
+ return new Promise<number>((resolve) => {
let events = 0;
if (eventsToWait === 0) {
resolve(events);
templateFile: string,
logMsgToAppend = '',
): void => {
- if (!isUndefined(template[key])) {
+ if (!isUndefined(template[key as keyof ChargingStationTemplate])) {
const logMsg = `Deprecated template key '${key}' usage in file '${templateFile}'${
isNotEmptyString(logMsgToAppend) ? `. ${logMsgToAppend}` : ''
}`;
deprecatedKey: string,
key?: string,
): void => {
- if (!isUndefined(template[deprecatedKey])) {
+ if (!isUndefined(template[deprecatedKey as keyof ChargingStationTemplate])) {
if (!isUndefined(key)) {
- template[key!] = template[deprecatedKey] as unknown;
+ (template as unknown as Record<string, unknown>)[key!] =
+ template[deprecatedKey as keyof ChargingStationTemplate];
}
- delete template[deprecatedKey];
+ delete template[deprecatedKey as keyof ChargingStationTemplate];
}
};
matchingChargingProfile: ChargingProfile;
} | null => {
const debugLogMsg = `${logPrefix} ${moduleName}.getLimitFromChargingProfiles: Matching charging profile found for power limitation: %j`;
- const currentMoment = moment();
const currentDate = new Date();
for (const chargingProfile of chargingProfiles) {
// Set helpers
if (
chargingProfile.chargingProfileKind === ChargingProfileKindType.RECURRING &&
chargingProfile.recurrencyKind === RecurrencyKindType.DAILY &&
- currentMoment.isAfter(chargingSchedule.startSchedule)
+ isAfter(currentDate, chargingSchedule.startSchedule!)
) {
if (!(chargingSchedule?.startSchedule instanceof Date)) {
logger.warn(
currentDate.getDate(),
);
// Check if the start of the schedule is yesterday
- if (moment(chargingSchedule.startSchedule).isAfter(currentMoment)) {
+ if (isAfter(chargingSchedule.startSchedule, currentDate)) {
chargingSchedule.startSchedule.setDate(currentDate.getDate() - 1);
}
- } else if (moment(chargingSchedule.startSchedule).isAfter(currentMoment)) {
+ } else if (isAfter(chargingSchedule.startSchedule!, currentDate)) {
return null;
}
// Check if the charging profile is active
if (
- moment(chargingSchedule.startSchedule)
- .add(chargingSchedule.duration, 's')
- .isAfter(currentMoment)
+ isAfter(addSeconds(chargingSchedule.startSchedule!, chargingSchedule.duration!), currentDate)
) {
let lastButOneSchedule: ChargingSchedulePeriod | undefined;
// Search the right schedule period
}
// Find the right schedule period
if (
- moment(chargingSchedule.startSchedule)
- .add(schedulePeriod.startPeriod, 's')
- .isAfter(currentMoment)
+ isAfter(
+ addSeconds(chargingSchedule.startSchedule!, schedulePeriod.startPeriod),
+ currentDate,
+ )
) {
// Found the schedule: last but one is the correct one
const result = {