chore: version 1.3.2
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / OCPPIncomingRequestService.ts
index d0ff0229350ea4b03c20ea4d5dabd6becaa6f533..7c88547a6c63ce285e2009e6561b9d813fc99b53 100644 (file)
@@ -1,8 +1,8 @@
+import { EventEmitter } from 'node:events'
+
 import _Ajv, { type ValidateFunction } from 'ajv'
 import _ajvFormats from 'ajv-formats'
 
-import { OCPPConstants } from './OCPPConstants.js'
-import { OCPPServiceUtils } from './OCPPServiceUtils.js'
 import { type ChargingStation, getIdTagsFile } from '../../charging-station/index.js'
 import { OCPPError } from '../../exception/index.js'
 import type {
@@ -13,6 +13,8 @@ import type {
   OCPPVersion
 } from '../../types/index.js'
 import { logger, setDefaultErrorParams } from '../../utils/index.js'
+import { OCPPConstants } from './OCPPConstants.js'
+import { OCPPServiceUtils } from './OCPPServiceUtils.js'
 type Ajv = _Ajv.default
 // eslint-disable-next-line @typescript-eslint/no-redeclare
 const Ajv = _Ajv.default
@@ -20,16 +22,17 @@ const ajvFormats = _ajvFormats.default
 
 const moduleName = 'OCPPIncomingRequestService'
 
-export abstract class OCPPIncomingRequestService {
+export abstract class OCPPIncomingRequestService extends EventEmitter {
   private static instance: OCPPIncomingRequestService | null = null
   private readonly version: OCPPVersion
   protected readonly ajv: Ajv
-  protected abstract jsonSchemasValidateFunction: Map<
+  protected abstract payloadValidateFunctions: Map<
   IncomingRequestCommand,
   ValidateFunction<JsonType>
   >
 
   protected constructor (version: OCPPVersion) {
+    super()
     this.version = version
     this.ajv = new Ajv({
       keywords: ['javaType'],
@@ -77,7 +80,7 @@ export abstract class OCPPIncomingRequestService {
     if (chargingStation.stationInfo?.ocppStrictCompliance === false) {
       return true
     }
-    const validate = this.jsonSchemasValidateFunction.get(commandName)
+    const validate = this.payloadValidateFunctions.get(commandName)
     if (validate?.(payload) === true) {
       return true
     }