flexmonster-mongo-connector
Version:
Custom data source API implementation for MongoDB
39 lines • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MapDataObject = void 0;
const MemoryCalculator_1 = require("../../../utils/MemoryCalculator");
class MapDataObject {
constructor(parsedData, startDate) {
this.data = parsedData;
this.dataSize = MemoryCalculator_1.MemoryCalculator.calculateMapDataSize(this.data);
this.timeForCalculation = new Date().getTime() - startDate.getTime();
}
getIterationKeys() {
return this.data.keys();
}
getChunk(iterator, chunkSize) {
let dataChunk = null;
let isFinished = false;
if (chunkSize >= this.data.size) {
dataChunk = Array.from(this.data, ([key, value]) => value);
isFinished = true;
}
else {
dataChunk = [];
let dataItem = iterator.next();
let currentChunkSize = 0;
while (!dataItem.done && currentChunkSize < chunkSize) {
dataChunk.push(this.data.get(dataItem.value));
currentChunkSize++;
dataItem = iterator.next();
}
isFinished = dataItem.done;
}
return {
data: dataChunk,
isFinished: isFinished
};
}
}
exports.MapDataObject = MapDataObject;
//# sourceMappingURL=MapDataObject.js.map