UNPKG

@golemio/energetics

Version:
29 lines 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractFetchMeasurementsTask = void 0; const constants_1 = require("../../constants"); const EnapoMeasurementsDataNormalizer_1 = require("../../helper/EnapoMeasurementsDataNormalizer"); const integration_engine_1 = require("@golemio/core/dist/integration-engine"); const MEASUREMENTS_BATCH_SIZE = 5000; class AbstractFetchMeasurementsTask extends integration_engine_1.AbstractTask { constructor() { super(constants_1.WORKER_NAME); } async saveConsumptionData(data, skipFilter = false) { for (let i = 0; i < data.length; i += MEASUREMENTS_BATCH_SIZE) { let batch = data.slice(i, i + MEASUREMENTS_BATCH_SIZE); if (!skipFilter) { batch = EnapoMeasurementsDataNormalizer_1.MeasurementsDataNormalizer.filter(batch); } // Remove duplicated measurements from the batch batch = batch.filter((item, index, self) => index === self.findIndex((t) => t.timestamp.getTime() === item.timestamp.getTime() && t.addr === item.addr && t.variable === item.variable && t.meter === item.meter)); await this.measurementRepository.bulkSave(batch); } } } exports.AbstractFetchMeasurementsTask = AbstractFetchMeasurementsTask; //# sourceMappingURL=AbstractFetchMeasurementsTask.js.map