Factor out a type definition
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / Requests.ts
index 486436196285289a336e6b6929d3a5eb0279d987..1a0d0ffbde9cfb2bd76e36cb8c9afcf565f3ec85 100644 (file)
@@ -1,11 +1,47 @@
-import { IncomingRequestCommand } from './1.6/Requests';
+import { OCPP16AvailabilityType, OCPP16BootNotificationRequest, OCPP16IncomingRequestCommand, OCPP16RequestCommand } from './1.6/Requests';
+
+import { JsonType } from '../JsonType';
 import { MessageType } from './MessageType';
-import OCPPError from '../../charging-station/OcppError';
+import { OCPP16DiagnosticsStatus } from './1.6/DiagnosticsStatus';
+import OCPPError from '../../exception/OCPPError';
 
-export default interface Requests {
-  [id: string]: Request;
+export interface SendParams {
+  skipBufferingOnError?: boolean,
+  triggerMessage?: boolean
 }
 
-export type Request = [(payload?, requestPayload?) => void, (error?: OCPPError) => void, Record<string, unknown>];
+export type IncomingRequestHandler = (commandPayload: JsonType) => JsonType | Promise<JsonType>;
+
+export type ResponseType = JsonType | OCPPError | string;
+
+export type BootNotificationRequest = OCPP16BootNotificationRequest;
+
+export type AvailabilityType = OCPP16AvailabilityType;
+
+export const AvailabilityType = {
+  ...OCPP16AvailabilityType
+};
+
+export type RequestCommand = OCPP16RequestCommand;
+
+export const RequestCommand = {
+  ...OCPP16RequestCommand
+};
+
+export type IncomingRequestCommand = OCPP16IncomingRequestCommand;
+
+export const IncomingRequestCommand = {
+  ...OCPP16IncomingRequestCommand
+};
+
+export type DiagnosticsStatus = OCPP16DiagnosticsStatus;
+
+export const DiagnosticsStatus = {
+  ...OCPP16DiagnosticsStatus
+};
+
+export type Request = [MessageType, string, RequestCommand, JsonType, JsonType];
+
+export type IncomingRequest = [MessageType, string, IncomingRequestCommand, JsonType, JsonType];
 
-export type IncomingRequest = [MessageType, string, IncomingRequestCommand, string, string];
+export type CachedRequest = [(payload: JsonType, requestPayload: JsonType) => void, (error: OCPPError, requestStatistic?: boolean) => void, RequestCommand | IncomingRequestCommand, JsonType | OCPPError];