ajvFormats(this.ajv);
this.ocppResponseService = ocppResponseService;
this.requestHandler = this.requestHandler.bind(this) as <
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
ReqType extends JsonType,
ResType extends JsonType,
>(
handleSendMessageError(chargingStation, commandName, error as Error, {
throwError: true,
});
+ return null;
}
}
);
} catch (error) {
handleSendMessageError(chargingStation, commandName, error as Error);
+ return null;
}
}
messageId: string,
messagePayload: JsonType,
commandName: RequestCommand,
- params: RequestParams = defaultRequestParams,
+ params?: RequestParams,
): Promise<ResponseType> {
params = {
...defaultRequestParams,
handleSendMessageError(chargingStation, commandName, error as Error, {
throwError: params.throwError,
});
+ return null;
}
}
);
return true;
}
- const validate = this.ajv.compile(this.jsonSchemas.get(commandName as RequestCommand));
+ const validate = this.ajv.compile(this.jsonSchemas.get(commandName as RequestCommand)!);
payload = cloneObject<T>(payload);
OCPPServiceUtils.convertDateToISOString<T>(payload);
if (validate(payload)) {
);
// OCPPError usage here is debatable: it's an error in the OCPP stack but not targeted to sendError().
throw new OCPPError(
- OCPPServiceUtils.ajvErrorsToErrorType(validate.errors),
+ OCPPServiceUtils.ajvErrorsToErrorType(validate.errors!),
'Request PDU is invalid',
commandName,
JSON.stringify(validate.errors, null, 2),
const validate = this.ajv.compile(
this.ocppResponseService.jsonIncomingRequestResponseSchemas.get(
commandName as IncomingRequestCommand,
- ),
+ )!,
);
payload = cloneObject<T>(payload);
OCPPServiceUtils.convertDateToISOString<T>(payload);
);
// OCPPError usage here is debatable: it's an error in the OCPP stack but not targeted to sendError().
throw new OCPPError(
- OCPPServiceUtils.ajvErrorsToErrorType(validate.errors),
+ OCPPServiceUtils.ajvErrorsToErrorType(validate.errors!),
'Response PDU is invalid',
commandName,
JSON.stringify(validate.errors, null, 2),
messagePayload: JsonType | OCPPError,
messageType: MessageType,
commandName: RequestCommand | IncomingRequestCommand,
- params: RequestParams = defaultRequestParams,
+ params?: RequestParams,
): Promise<ResponseType> {
params = {
...defaultRequestParams,
const self = this;
// Send a message through wsConnection
return promiseWithTimeout(
- new Promise((resolve, reject) => {
+ new Promise<ResponseType>((resolve, reject) => {
/**
* Function that will receive the request's response
*
PerformanceStatistics.endMeasure(commandName, beginId);
}
const wsClosedOrErrored = !wsOpened || sendError === true;
- if (wsClosedOrErrored && params.skipBufferingOnError === false) {
+ if (wsClosedOrErrored && params?.skipBufferingOnError === false) {
// Buffer
chargingStation.bufferMessage(messageToSend);
// Reject and keep request in the cache
public abstract requestHandler<ReqType extends JsonType, ResType extends JsonType>(
chargingStation: ChargingStation,
commandName: RequestCommand,
+ // FIXME: should be ReqType
commandParams?: JsonType,
params?: RequestParams,
): Promise<ResType>;