X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FChargingStationUtils.ts;h=09e0b8e420334aaadf0aeb29ca21013fe6fea102;hb=a675e34bb7d1711aace56f6ed8cdb4f91453e39d;hp=0fae41f7ddd259b209d7d1a8132e3a00a8f9dbb7;hpb=f568f36861d62d759a95b17fbe10380eca88a71b;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStationUtils.ts b/src/charging-station/ChargingStationUtils.ts index 0fae41f7..09e0b8e4 100644 --- a/src/charging-station/ChargingStationUtils.ts +++ b/src/charging-station/ChargingStationUtils.ts @@ -4,7 +4,7 @@ import { basename, dirname, join } from 'node:path'; 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'; @@ -538,7 +538,7 @@ export const waitChargingStationEvents = async ( event: ChargingStationWorkerMessageEvents, eventsToWait: number, ): Promise => { - return new Promise((resolve) => { + return new Promise((resolve) => { let events = 0; if (eventsToWait === 0) { resolve(events); @@ -623,7 +623,7 @@ const warnDeprecatedTemplateKey = ( 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}` : '' }`; @@ -637,11 +637,12 @@ const convertDeprecatedTemplateKey = ( 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)[key!] = + template[deprecatedKey as keyof ChargingStationTemplate]; } - delete template[deprecatedKey]; + delete template[deprecatedKey as keyof ChargingStationTemplate]; } }; @@ -660,7 +661,6 @@ const getLimitFromChargingProfiles = ( 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 @@ -675,7 +675,7 @@ const getLimitFromChargingProfiles = ( if ( chargingProfile.chargingProfileKind === ChargingProfileKindType.RECURRING && chargingProfile.recurrencyKind === RecurrencyKindType.DAILY && - currentMoment.isAfter(chargingSchedule.startSchedule) + isAfter(currentDate, chargingSchedule.startSchedule!) ) { if (!(chargingSchedule?.startSchedule instanceof Date)) { logger.warn( @@ -689,17 +689,15 @@ const getLimitFromChargingProfiles = ( 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 @@ -718,9 +716,10 @@ const getLimitFromChargingProfiles = ( } // 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 = {