get() fixed when results are in arrays

This commit is contained in:
Sebastian Hildebrandt
2020-10-02 13:36:42 +02:00
parent 1ed7115168
commit fbdfd233f0
5 changed files with 31 additions and 10 deletions
+1 -1
View File
@@ -253,7 +253,7 @@ function parseBlk(lines) {
let data = [];
lines.filter(line => line !== '').forEach((line) => {
line = util.decodeEscapeSequence(line);
line = decodeURIComponent(line.replace(/\\x/g, '%'));
line = line.replace(/\\/g, '\\\\');
let disk = JSON.parse(line);
data.push({
+23 -8
View File
@@ -331,13 +331,28 @@ function get(valueObject, callback) {
result[key] = data[i];
} else {
const keys = valueObject[key].replace(/,/g, ' ').replace(/ +/g, ' ').split(' ');
const partialRes = {};
keys.forEach(k => {
if ({}.hasOwnProperty.call(data[i], k)) {
partialRes[k] = data[i][k];
}
});
result[key] = partialRes;
if (Array.isArray(data[i])) {
// result is in an array, go through all elements of array and pick only the right ones
const partialArray = [];
data[i].forEach(element => {
const partialRes = {};
keys.forEach(k => {
if ({}.hasOwnProperty.call(element, k)) {
partialRes[k] = element[k];
}
});
partialArray.push(partialRes);
});
result[key] = partialArray;
} else {
const partialRes = {};
keys.forEach(k => {
if ({}.hasOwnProperty.call(data[i], k)) {
partialRes[k] = data[i][k];
}
});
result[key] = partialRes;
}
}
i++;
}
@@ -355,7 +370,7 @@ function observe(valueObject, interval, callback) {
const result = setInterval(() => {
get(valueObject).then(data => {
if (JSON.stringify(_data) !== JSON.stringify(data)) {
_data = Object.assign({}, data );
_data = Object.assign({}, data);
callback(data);
}
});