UNPKG

@citrineos/data

Version:

The OCPP data module which includes all persistence layer implementation.

48 lines 2.15 kB
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project // // SPDX-License-Identifier: Apache-2.0 import { OCPP2_0_1 } from '@citrineos/base'; import { MeterValue } from '../../model/index.js'; export 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; } } //# sourceMappingURL=MeterValueMapper.js.map