+ public jsonIncomingRequestResponseValidateFunctions: Map<
+ IncomingRequestCommand,
+ ValidateFunction<JsonType>
+ >
+
+ private readonly version: OCPPVersion
+ private readonly ajv: Ajv
+ private readonly jsonRequestValidateFunctions: Map<RequestCommand, ValidateFunction<JsonType>>
+
+ public abstract jsonIncomingRequestResponseSchemas: Map<
+ IncomingRequestCommand,
+ JSONSchemaType<JsonType>
+ >
+
+ protected constructor (version: OCPPVersion) {
+ this.version = version
+ this.ajv = new Ajv({
+ keywords: ['javaType'],
+ multipleOfPrecision: 2
+ })
+ ajvFormats(this.ajv)
+ this.jsonRequestValidateFunctions = new Map<RequestCommand, ValidateFunction<JsonType>>()
+ this.jsonIncomingRequestResponseValidateFunctions = new Map<
+ IncomingRequestCommand,
+ ValidateFunction<JsonType>
+ >()
+ this.responseHandler = this.responseHandler.bind(this) as <
+ ReqType extends JsonType,
+ ResType extends JsonType
+ >(
+ chargingStation: ChargingStation,
+ commandName: RequestCommand,
+ payload: ResType,
+ requestPayload: ReqType
+ ) => Promise<void>
+ this.validateResponsePayload = this.validateResponsePayload.bind(this) as <T extends JsonType>(
+ chargingStation: ChargingStation,
+ commandName: RequestCommand,
+ schema: JSONSchemaType<T>,
+ payload: T
+ ) => boolean