typed-ocpp
Version:
A library for type-aware parsing, serialization and validation of OCPP 1.6, OCPP 2.0 and OCPP 2.1 messages
61 lines • 2.42 kB
JavaScript
import { assign, EMPTY_ARR } from '../common/utils.js';
import * as schemas_ from './schemas.js';
import { validateCall as validateCall_ } from './call.js';
import { validateCallError as validateCallError_ } from './callerror.js';
import { validateCallResult as validateCallResult_, checkCallResult as checkCallResult_ } from './callresult.js';
import { Action as Action_, MessageType as MessageType_, ErrorCode as ErrorCode_ } from './utils.js';
import { compile } from '../common/ajv.js';
Object.values(schemas_).forEach((schema) => {
compile(schema);
});
;
export var OCPP20;
(function (OCPP20) {
OCPP20.MessageType = MessageType_;
OCPP20.Action = Action_;
OCPP20.ErrorCode = ErrorCode_;
OCPP20.schemas = schemas_;
OCPP20.checkCallResult = checkCallResult_;
OCPP20.validateCall = validateCall_;
OCPP20.validateCallError = validateCallError_;
OCPP20.validateCallResult = validateCallResult_;
OCPP20.validate = assign((data) => {
switch (Array.isArray(data) ? data[0] : null) {
case MessageType_.CALL:
if (!validateCall_(data)) {
OCPP20.validate.errors = validateCall_.errors;
return false;
}
OCPP20.validate.errors = EMPTY_ARR;
return true;
case MessageType_.CALLERROR:
if (!validateCallError_(data)) {
OCPP20.validate.errors = validateCallError_.errors;
return false;
}
OCPP20.validate.errors = EMPTY_ARR;
return true;
case MessageType_.CALLRESULT:
if (!validateCallResult_(data)) {
OCPP20.validate.errors = validateCallResult_.errors;
return false;
}
OCPP20.validate.errors = EMPTY_ARR;
return true;
default:
OCPP20.validate.errors = ['Invalid OCPP message: invalid message type'];
return false;
}
}, { errors: EMPTY_ARR });
OCPP20.isCall = (msg) => {
return msg[0] === MessageType_.CALL;
};
OCPP20.isCallError = (msg) => {
return msg[0] === MessageType_.CALLERROR;
};
OCPP20.isCallResult = (msg) => {
return msg[0] === MessageType_.CALLRESULT;
};
})(OCPP20 || (OCPP20 = {}));
;
//# sourceMappingURL=index.js.map