@citrineos/data
Version:
The OCPP data module which includes all persistence layer implementation.
50 lines • 2.19 kB
JavaScript
;
// Copyright Contributors to the CitrineOS Project
//
// SPDX-License-Identifier: Apache 2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.MeterValueMapper = void 0;
class MeterValueMapper {
static toMeterValueType(meterValue) {
return {
timestamp: meterValue.timestamp,
sampledValue: MeterValueMapper.toSampledValueTypes(meterValue.sampledValue),
customData: meterValue.customData,
};
}
static toSampledValueTypes(sampledValues) {
if (!(sampledValues instanceof Array) || sampledValues.length === 0) {
throw new Error(`Invalid sampledValues: ${JSON.stringify(sampledValues)}`);
}
const sampledValueTypes = [];
for (const sampledValue of sampledValues) {
sampledValueTypes.push({
value: sampledValue.value,
context: sampledValue.context,
measurand: sampledValue.measurand,
phase: sampledValue.phase,
location: sampledValue.location,
signedMeterValue: sampledValue.signedMeterValue
? {
signedMeterData: sampledValue.signedMeterValue.signedMeterData,
signingMethod: sampledValue.signedMeterValue.signingMethod,
encodingMethod: sampledValue.signedMeterValue.encodingMethod,
publicKey: sampledValue.signedMeterValue.publicKey,
customData: sampledValue.signedMeterValue.customData,
}
: undefined,
unitOfMeasure: sampledValue.unitOfMeasure
? {
unit: sampledValue.unitOfMeasure.unit,
multiplier: sampledValue.unitOfMeasure.multiplier,
customData: sampledValue.unitOfMeasure.customData,
}
: undefined,
customData: sampledValue.customData,
});
}
return sampledValueTypes;
}
}
exports.MeterValueMapper = MeterValueMapper;
//# sourceMappingURL=MeterValueMapper.js.map